在SOLR中,stored=true和indexed=true的区别是什么?我知道stored=true在不修改字段的情况下存储字段的实际值,而indexed=true为计算目的存储字段的修改值。我想知道,它对演出有多大的影响。与stored=true和indexed=true相比,indexed=true和stored =false的组合是否降低了持久性和检索性能?
发布于 2015-03-02 10:51:48
如果您想搜索“遍历”该字段,则需要indexed = true。如果某个字段未编入索引,则无法从该字段中找到值/项。您的分析器链运行在该字段的数据上,如果是indexed = true。
如果需要从索引中读取字段的值/内容,则需要stored = true。例如,如果您喜欢使用突出显示功能,或者您希望使用solr作为数据库,而不仅仅是作为搜索索引。如果stored = true的意思是:只需存储原始内容并输出原始内容(如果需要)。
我想知道,它对演出有多大的影响。
内容(存储)和索引放在不同的文件中。因此,solr不需要在搜索时遍历内容文件,只是因为存储的是真。
存储数据需要一些时间,特别是如果数据很大的话。在检索方面,这取决于您把什么放入'fl‘。如果您不使用“fl”检索字段,则不需要花费阅读它的费用。
但是如果字段是存储的,那么solr就能够打印结果列表中的内容(取决于solr配置)。这意味着您的结果列表可能要大得多(取决于您的内容/字段大小)。如果solr也必须发送存储字段的内容,则构建列表并将列表传输到客户端可能要慢一些。
执行搜索的时间是相同的。但是,请求所需的所有时间都是添加了几项内容:搜索、构建结果列表、将列表传递给客户端等。因此,将所有字段--输出所有内容--存储到结果列表中可能会减慢solr请求,但不会对查询时间产生影响。
https://stackoverflow.com/questions/28806255
复制相似问题