2016-09-05 34 views
0

這個問題很清楚,我是Solr及其所有精彩功能的新手。我爲我的noobness道歉。爲什麼Solr存儲一個字段的原始/預先分析內容而不僅僅是索引?

但是爲什麼Solr除了索引之外還存儲原始內容?這只是浪費。我確實意識到,只有當該字段的屬性爲stored="true"時,它纔會存儲原始內容。

它在哪裏存儲原始內容?它以某種方式引用實際文檔嗎?

另外,有沒有什麼辦法可以直接查看Solr爲每個集合保存的索引文件?

鏈接將不勝感激。

回答

3

如果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 
... 
+0

什麼做.fdx和.si文件存儲呢? –

+0

因此,UpdateRequestProcessor負責存儲在字段中的內容,並且分析器負責在標記之後將內容保存在索引中。它是否正確? –

+0

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

相關問題