繁体   English   中英

更新Solr中的特定字段

[英]Update specific field in Solr

我正在使用Solr6.2,想要更新文档中的特定字段,就像在关系数据库中那样:update table_a set field_x = filed_x + 1;

如何在Solr中做到这一点? 提前致谢。

为此,您需要将所有字段都设置为已存储,因为您随后可以使用Solr对“ 更新文档部分”的支持。

然后,您可以使用inc命令来增加文档中的字段:

{
    "id":"mydoc",
    "popularity":{"inc":20}
}

由于内部更新是“检索文档,更改值,重新索引文档”,因此必须将所有字段设置为已存储。 如果您在6.2中使用默认的无模式.. schema ..,则默认情况下将存储所有字段。 如果您使用的是自定义架构,或者已通过Schema API手动更改了字段,则必须确保将它们都设置为已存储。

更新:

对于SolrJ,这样的事情应该起作用( 来自Yonik的帖子 ):

SolrInputDocument doc = new SolrInputDocument();

doc.addField("id", "test");
Map<String, String> cmd2 = new HashMap<>();
cmd1.put("inc", "20");
doc.addField("field1", cmd1);
client.add(collection, doc);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM