Java 在Solr中使用ContentStreamUpdateRequest设置多值字段
我正在使用SolrJ+SolrCell对各种Word/Excel/PDF文件的内容进行索引,但有些字段(例如id、名称)我希望能够自行设置:Java 在Solr中使用ContentStreamUpdateRequest设置多值字段,java,solr,solrj,solr-cell,Java,Solr,Solrj,Solr Cell,我正在使用SolrJ+SolrCell对各种Word/Excel/PDF文件的内容进行索引,但有些字段(例如id、名称)我希望能够自行设置: ContentStreamUpdateRequest req = new ContentStreamUpdateRequest("/update/extract"); req.addFile(docFile, null); req.setParam("literal.id", docProperties.getId()); req.setParam("li
ContentStreamUpdateRequest req = new ContentStreamUpdateRequest("/update/extract");
req.addFile(docFile, null);
req.setParam("literal.id", docProperties.getId());
req.setParam("literal.name", docProperties.getName());
我对普通字段没有任何问题,但我发现当我尝试使用相同的setParam方法设置多值字段时,只存储输入数组中的最后一个元素:
if (docProperties.getCategories() != null) {
for (String category : docProperties.getCategories()) {
req.setParam("literal.categories", category);
}
}
例如,如果docProperties.getCategories()
为[“新闻”、“计算机”、“技术”],则多值类别字段中存储的唯一值为[“技术”]。实际上,我对此并不感到惊讶,因为我不认为使用setParam
方法是将值附加到多值字段的正确方法
然而,我不知道如何使用可用的方法来做到这一点。如果我使用的是SolrInputDocument,那么将数组传递给addField
方法就很简单了
String[] categoriesArray = {"News", "Computers", "Tech"};
ArrayList<String> categories = new ArrayList<String>(Arrays.asList(categoriesArray));
doc.addField("categories", categories );
String[]categoriesArray={“新闻”、“计算机”、“技术”};
ArrayList categories=新的ArrayList(Arrays.asList(categoriesArray));
文件添加字段(“类别”,类别);
有没有一种方法可以使用ContentStreamUpdateRequest执行类似的操作?从中,使用设置这些文字参数对多值字段有效