SOLR indexed = true和stored = true之间的差异

时间:2015-03-02 09:23:46

标签: java solr

在SOLR中,stored=trueindexed=true之间有什么区别。我知道stored=true存储字段的实际值而不修改它,indexed=true存储字段的修改值以用于计算目的。我想知道,直到它影响性能的程度。与stored=trueindexed=true相比,stored =falseindexed=true的组合是否会降低持久性和检索的效果?

1 个答案:

答案 0 :(得分:11)

如果您想搜索" over"则需要

indexed = true那个领域。如果字段未编入索引,则无法从该字段中找到值/术语。 如果indexed = true

,您的分析器链将遍历该字段上的数据 如果您需要从索引中读取字段的值/内容,则需要

stored = true。例如,如果您想使用突出显示功能,或者您希望将solr用作数据库,而不仅仅是作为搜索索引。如果stored = true表示:只需存储原始内容并输出原始内容(如果需要)。

  

我想知道,直到它影响表现的程度。

内容(存储)和索引放在不同的文件中。所以solr不需要在搜索时遍历内容文件,只是因为stored是真的。

存储数据需要一些时间,特别是如果数据很大。在检索方面,它取决于你投入的内容' fl'。如果您没有通过“f'”检索该字段,则不会产生阅读费用。

但是如果存储了该字段,那么solr能够在结果列表中打印内容(取决于您的solr配置)。这意味着,您的结果列表可能会更大(取决于您的内容/字段大小)。如果solr也必须发送存储字段的内容,那么构建列表并将列表传输到客户端可能会更慢。

执行搜索的时间是相同的。但是,请求所需的整个时间是添加了几个东西:搜索,构建结果列表,将列表传输到客户端等。因此,将所有内容输出到结果列表中的所有字段的输出可能会慢一些solr请求,但不会对查询时间产生影响。