2012-04-18 95 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验证这一点。)

相关问题