2012-04-18 76 views
2

如果我將某個字段標記爲「不存儲」,Solr是否將該字段的原始內容保留在任何地方,還是隻保留它爲索引本身剔除的「單詞包」?Solr索引後是否存儲文檔的原始內容?

我從文件安全的角度問。如果有人破解運行我們Solr索引的機器,他們是否可以獲得傳遞給Solr的原始文本以用於此「不存儲」字段,或者不是?

回答

3

不,Solr索引不會以設置爲stored="false"的字段以任何可檢索或可查看的方式存儲原始值。 Solr wiki上的Common Field options指出了設置存儲選項的以下行爲。

如果此字段的值應搜索

期間可檢索如果有人破解到運行Solr的索引機器跑Solr的查詢基於上述,他們將無法看到作爲Solr的字段的內容不會返回該字段。但是,如果他們有權訪問磁盤以及由Lucene編寫的實際索引文件夾和段文件,則他們可以使用Luke - Lucene Index Toolbox來查看Solr爲該字段中的每個文檔存儲的術語,以檢查索引文件夾。

3

當某個字段是Storable.No時,只有足夠的信息存儲在Lucene中才能執行搜索。

但是,如果您構建的每個字段時指定WITH_POSITIONS_OFFSETS,通常有足夠的信息檢索:

lowercase(EXACTSTRINGINDEXED) - LUCENEDELIMITERS - STOPWORDS 

例如,如果您索引:

Jerry&Mary's Live Bait and Yellow Cab 

與治療分析儀「 「&」和「'」作爲分隔符,沒有對單個字母進行索引,並將'和'視爲停用詞,您會在索引中看到類似於:

jerry mary live bait [null word] yellow cab 

(如上所述,你可以用Luke驗證這一點。)