我试图使用solrinputdocument.addField(“fieldname”,“fieldvalue”)将3个字段更新为solrj; 它通常取代完整的文档,而不是单独更新这些字段。我使用solr 4.5和iam不确定是什么问题。我也尝试使用setfield for 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);
答案 0 :(得分:1)
假设您在schema.xml中定义了 _version _ 字段:
<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();
的示例