在Solr中,當我將該字段設置爲'索引'而不是'存儲'時,它仍存儲在索引中。如果我反其道而行並將字段設置爲「存儲」但不是「索引」,如果我理解正確,它也會存儲在索引中。Solr的存儲和索引字段如何存儲在內部(在Lucene中)
我的問題是,在這些情況下,文檔如何在Lucene內部存儲?在Lucene中'儲存'字段的外觀如何,以及'索引'字段在Lucene內部的外觀如何。
這個問題的答案可能會幫助我理解爲什麼Solr中的原子更新只能處理存儲的字段和索引字段(如此處所述:https://wiki.apache.org/solr/Atomic_Updates#Stored_Values)。
爲了進一步擴展這一點,請考慮字段中值「value this value is value a value」。該索引將僅從內部docId的「this」,「is」,「a」和「value」引用。不可能從中重新創建原始值(這是一種簡單化,除了docId之外,還會有其他值附加到該標記,例如頻率(「termFreq」))。有關Lucene文檔,請參閱https://lucene.apache.org/core/5_3_1/core/org/apache/lucene/codecs/lucene53/package-summary.html#package_description) – MatsLindh
謝謝智韜! :)你說'存儲只是意味着它將被保存在文檔值部分,而不是倒排索引'。你能否告訴我更多關於這個'文檔價值部分' - 也許你可以指出一些文件? –
對不起,我混合了存儲的字段值和文檔值。他們是不同的。存儲字段值僅用於返回您的原始字段值,因爲有時原始值與索引值不同,例如在通過標記器之後。與Mats所說的一樣。文檔值是另一件事,也是文檔編號的關鍵,但用於分面或其他功能。請參閱https://cwiki.apache.org/confluence/display/solr/DocValues –