這個問題很清楚,我是Solr及其所有精彩功能的新手。我爲我的noobness道歉。爲什麼Solr存儲一個字段的原始/預先分析內容而不僅僅是索引?
但是爲什麼Solr除了索引之外還存儲原始內容?這只是浪費。我確實意識到,只有當該字段的屬性爲stored="true"
時,它纔會存儲原始內容。
它在哪裏存儲原始內容?它以某種方式引用實際文檔嗎?
另外,有沒有什麼辦法可以直接查看Solr爲每個集合保存的索引文件?
鏈接將不勝感激。
這個問題很清楚,我是Solr及其所有精彩功能的新手。我爲我的noobness道歉。爲什麼Solr存儲一個字段的原始/預先分析內容而不僅僅是索引?
但是爲什麼Solr除了索引之外還存儲原始內容?這只是浪費。我確實意識到,只有當該字段的屬性爲stored="true"
時,它纔會存儲原始內容。
它在哪裏存儲原始內容?它以某種方式引用實際文檔嗎?
另外,有沒有什麼辦法可以直接查看Solr爲每個集合保存的索引文件?
鏈接將不勝感激。
如果Solr沒有存儲文本,它將無法實際返回它找到的文本 - 這使得無法執行突出顯示等內容,或者直接使用Solr構建應用程序。您必須查看其他地方的實際內容以獲得每個結果,這可能不是您想要的結果(並且該內容可能不可用,例如,如果您正在構建搜索引擎 - 它不會真的無論如何,檢索搜索結果中的每個頁面以獲得相關信息都是有效的)。
您可以閱讀the API documentation for the Lucene60 codec中的索引文件格式,存儲的字段使用the stored fields format存儲。這些字段位於索引目錄中的.fdt文件中。
索引文件的集合/核心下通常在data/index/
目錄在磁盤上可用:
data/index$ ls
_zq.fdt _zr.fdx _zs.si
...
什麼做.fdx和.si文件存儲呢? –
因此,UpdateRequestProcessor負責存儲在字段中的內容,並且分析器負責在標記之後將內容保存在索引中。它是否正確? –
UpdateRequestProcessor是在字段數據移交索引之前發生的可選的處理鏈,是的。這不是真正的責任,但它是一種方式,您可以在交付分析/標記化/過濾之前添加額外的解析和腳本。 apidoc的URL [在答案中鏈接](https://lucene.apache.org/core/6_1_0/core/org/apache/lucene/codecs/lucene60/package-summary.html#File_Naming)指定每種文件類型:'.si:存儲關於段的元數據','.fdx:包含指向字段數據的指針'。 – MatsLindh