我是solr的新手,所以我真的需要有人来帮助我理解下面的字段。如果存储= false,indexed = false,该字段的含义是什么?看下面的两个例子,有什么区别?如果没有存储该字段,那么它的用途是什么......
<field name="test1" type="text" indexed="false"
stored="false" required="false" />
这个怎么样?
<field name="test2" type="text" indexed="false"
stored="false" required="false" multiValued="true" />
非常感谢!
答案 0 :(得分:8)
比看起来容易:
indexed
:您可以搜索stored
:您可以在搜索结果中显示实际上,可能存在不用于搜索的字段,但您只想在结果中显示它们。另一方面,您可能希望在结果中显示字段,但不希望用于搜索。当您不需要显示某个字段时,stored=false
很重要,因为它可以提高性能。如果您存储了所有字段并且有很多字段,Solr可能会慢慢返回结果。
当然,假设两者都没有多大意义,因为这个领域会变得毫无用处。
两个字段之间的唯一区别是multiValued=true
,这意味着第二个字段可以包含多个值。这意味着该字段的内容不仅仅是文本条目,还包括文本条目列表。
答案 1 :(得分:8)
您可以从Solr wiki.
找到最佳解释如果您想要搜索某个字段,则应将indexed属性设置为true。
indexed = true:如果此字段应为“索引”,则为True。如果(并且仅当)字段被索引,则它是可搜索的,可排序的和可表示的。
如果要在搜索结果中检索字段,则应将stored属性设置为true。
stored = true:如果在搜索期间应该可以检索字段的值
,则为True
如果要在单个字段中存储多个值,则应将多值字段设置为true。
multivalued = true:如果此字段可能包含每个文档的多个值,则为True,即它是否可以在文档中多次出现