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 的示例