【发布时间】:2012-08-24 09:49:38
【问题描述】:
Solr 4 beta 已发布,GA 版本即将推出。部分文档更新已经存在了一段时间,如下所述:http://solr.pl/en/2012/07/09/solr-4-0-partial-documents-update/
但是,我还没有弄清楚如何使用 solrj api 来实现。
有谁知道 solrj 是否可行?或者 solrj 只是没有跟上这个功能?
更新: 正如我在邮件列表中描述的(请参阅回复 here),我发现在 solrj api 中,SolrInputField 的值可以是一个映射 - 它没有是一个简单的标量值。
如果是地图,solrj 会在字段的 xml 元素中添加一个额外的 update 属性。
例如,
这段代码:
SolrInputDocument doc = new SolrInputDocument();
Map<String, String> partialUpdate = new HashMap<String, String>();
partialUpdate.put("set", "foo");
doc.addField("id", "test_123");
doc.addField("description", partialUpdate);
生成此文档:
<doc boost="1.0">
<field name="id">test_123</field>
<field name="description" update="set">foo</field>
</doc>
在这个例子中,我使用了“set”这个词来表示这个附加属性,但它不起作用。 Solr 没有像我预期的那样更新该字段。 根据此链接: http://solr.pl/en/2012/07/09/solr-4-0-partial-documents-update/ 有效值为“set”和“add”。
有什么想法吗?
【问题讨论】:
-
这可能会对你有所帮助 [solr-update][1] [1]:stackoverflow.com/questions/8365713/…
-
@prashant 该问题的答案已过时。该问题的副本中有另一个答案,但它也无济于事
-
您甚至可以使用
ArrayList插入值列表,然后partialUpdate将被声明为Map<String, Object> partialUpdate = new HashMap<String, Object>();,键为add -
支持 java 代码示例。大多数其他示例只有纯 JSON。谢谢。