2

如果我将一个字段标记为“不存储”,Solr 会在任何地方保留该字段的原始内容,还是只保留它为索引本身剔除的“词袋”?

我是从文件安全的角度来问的。如果有人破解了运行我们的 Solr 索引的机器,他们是否可以将原始文本传递给 Solr 的“不存储”字段?

4

2 回答 2

3

不,Solr 索引不会以任何可检索或可查看的方式存储设置为的字段的原始值stored="false"Solr wiki 上的Common Field 选项说明了设置存储选项的以下行为。

如果字段的值在搜索期间应该是可检索的,则为真

如果有人侵入运行 Solr 索引的机器并根据上述内容运行 Solr 查询,他们将无法看到该字段的内容,因为 Solr 不会返回该字段。但是,如果他们可以访问磁盘以及 Lucene 编写的实际索引文件夹和分段文件,他们可以使用Luke - Lucene Index Toolbox检查索引文件夹来查看 Solr 为该字段中的每个文档存储的术语。

于 2012-04-19T01:00:43.133 回答
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 验证这一点。)

于 2012-04-19T15:18:07.710 回答