是否有可能將新字段更新爲現有文檔? 例如: 存在具有多個字段的文檔,例如,更新現有文檔的新字段
ID=99999
Field1:text
Field2:text
該文件已經在索引中,現在我要插入一個新的領域,以本文檔,而無需將舊數據:
ID=99999
Field3:text
現在,舊的文件將被刪除,新的帶有ID的文件將被創建。所以,如果我現在要查找的ID 99999的結果將是:
ID=99999
Field3:text
我讀這在Solr的維基
如何更新現有文檔的某一特定領域?
我想更新文檔中的特定字段,這可能嗎?我只需要爲一個特定的文檔索引一個字段。我必須爲此編制所有文件的索引嗎?
不,只是一個文件。假設你有一個CMS並且你編輯了一個文檔。只需使用整個文檔的add solr語句(不僅僅是一個字段),您將需要重新索引此文檔。
在Lucene中更新文檔的操作實際上是一個刪除,然後是添加。由於Lucene中沒有這種「只更新字段」的語義,因此您需要添加完整的文檔。
那麼有沒有解決方案呢?此功能是否會在更高版本中實現(我目前使用3.6.0)。作爲一種解決方法,我考慮編寫腳本或應用程序,它將收集現有字段,添加新字段並更新整個文檔。但我認爲這會受到影響。你還有其他建議嗎?
問候
非常感謝!你的第一個答案就是我想到的。你認爲這會受到很大的影響嗎?對於答案2:你能給我一個這個更新日誌的官方鏈接嗎?我無法找到此功能。尼斯鏈接:-) – 2012-08-03 09:27:22
取決於你進行更改的頻率,索引的大小,文檔的大小,你使用的硬件。由於任何變化都會導致IO,CPU等成本的增加,你將不得不試驗一下你的情況。對於第二部分,我無法在日誌中找到它:http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?view=markup但是Yonik Seeley確認在http:// grokbase.com/t/lucene/solr-user/127bc3svh7/updating-documents – Fuxi 2012-08-03 10:12:40
我的索引包含大約1,8百萬個文檔,每個文檔都有大約10-30個多值字段。問題是,如果由於高性能損失而無法使用應用程序,開發應用程序將花費太多時間。建議將版本更改爲4.0 alpha版本嗎?你有什麼經驗嗎?非常感謝:-) – 2012-08-03 10:28:45