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

时间:2014-02-12 23:33:26

标签: solr

我试图使用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);

1 个答案:

答案 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();

取自solrj-4-0-0-alpha-atomic-updates

的示例