Solr schema.xml字段混淆

时间:2012-06-25 06:09:18

标签: solr

我是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" />

非常感谢!

2 个答案:

答案 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,即它是否可以在文档中多次出现