[英]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.