SOLR indexed=true 和 stored=true 的区别

SOLR Difference between indexed=true and stored=true

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

如果您想搜索 "over" 该字段,则需要

indexed = true。如果一个字段没有被索引,那么你就不能从那个字段中找到 values/terms。 如果 indexed = true.

,您的分析器链会遍历该字段上的数据 如果需要从索引中读取字段的 values/content,则需要

stored = true。例如,如果您喜欢使用突出显示功能,或者如果您喜欢将 solr 用作数据库,而不仅仅是用作搜索索引。 if stored = true 表示:简单地存储原始内容并在需要时输出原始内容。

I would like to know, till what level it affects the performance.

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

存储数据需要一些时间,尤其是当数据很大时。在检索方面,这取决于您在 'fl' 中输入的内容。如果您不使用 'fl' 检索字段,则不会产生阅读费用。

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

执行搜索的时间相同。但是请求所需的整个时间是几件事情的补充:搜索、构建结果列表、将列表传输到客户端等。因此存储所有字段并将所有内容输出到结果列表中可能会减慢您的速度solr请求,但不会对查询时间产生影响。