簡體   English   中英

Solr / SolrNet:如何給定文檔唯一ID的文檔進行更新?

[英]Solr/SolrNet: How can I update a document given a document unique ID?

我需要與主要索引編制過程分開分別更新Solr索引中每個文檔的幾個字段。 根據文檔,“創建”和“更新”被映射到“ Add()”函數上。 http://code.google.com/p/solrnet/wiki/CRUD

因此,如果我添加一個已經存在的文檔,它將替換整個文檔還是僅替換我指定的字段?

如果它將替換整個文檔,那么我想進行更新的唯一方法就是通過唯一的ID搜索文檔,更新文檔對象,然后再次“添加”它。 由於需要更新操作的頻率,這聽起來不可行。 有更好的更新方法嗎?

謝謝!

不幸的是,Solr當前不支持為索引中給定文檔更新單個字段。 您描述的稍后的場景是檢索整個文檔內容(從Solr或原始來源)然后重新發送文檔(通過SolrNet添加),這是在Solr中更新文檔的唯一方法。

請參閱上一個問題: Solr索引上的“更新特定字段”,以獲取有關Solr不支持單個字段更新的更多詳細信息,以及有關向Solr添加此支持的JIRA問題。

Solr的較新版本現在支持文檔的部分更新,例如4.10很好。 請查看以下頁面以獲取更多信息: https : //cwiki.apache.org/confluence/display/solr/Updating+Parts+of+Documents

唯一的細節是您需要將字段聲明為stored = true,以允許部分更新。

我還將在此培訓中展示如何做: http : //www.pluralsight.com/courses/enterprise-search-using-apache-solr

在此特定模塊中:內容:架構,文檔和索引

如果您需要經常更新SOLR中的許多文檔,則可能需要重新考慮整個解決方案。 在使用SOLR且需要大量頻繁更新文檔的典型解決方案中,通常的做法是將文檔駐留在某些SQL或NoSQL數據庫中,並在其中進行修改。 然后,您可以使用DIH或類似的方法從數據庫中批量更新SOLR索引,可能只是刪除索引並重新索引所有內容。 SOLR可以非常快速地為文檔建立索引,因此這通常不是問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM