Solrdocument.addfield替换文档而不是更新字段



iam 尝试使用 solrinputdocument.addField("fieldname", "fieldvalue") 将 3 个字段更新到 solrj;它通常会替换整个文档,而不是单独更新这些字段。我正在使用solr 4.5,但不确定问题是什么。我还尝试使用setfield进行solrinputdocument.setField,但它不起作用。请帮忙。示例代码为:

String urlString = "http://serverip/solr/taag_webproducts/";
SolrServer solr = new HttpSolrServer(urlString);
UpdateRequest up = new UpdateRequest("/update");
solrinputdocument.addField(fieldname, fieldvalue);
 up.add(solrinputdocument);
 solr.request(up);

假设您在 schema 中定义了 _version_ 字段.xml:

<field name="_version_" type="long" indexed="true"  stored="true"/>

并且在组装 SolrInputDocument 时还有一个 id 字段(如以下示例所示)

要进行原子更新/部分更新,地图是关键

Map oper = new HashMap();
oper.put("set", 100);
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", "unique");
doc.addField("price", oper);
SolrServer server = getSolrServer();
server.add(doc);
server.commit();

取自 solrj-4-0-0-α-atomic-updates 的示例

最新更新