Solr schema.xml字段混淆

tri*_*ons 2 solr

我是solr的新手,所以我真的需要有人来帮助我理解下面的字段.如果存储= false,indexed = false,该字段的含义是什么?看下面的两个例子,有什么区别?如果没有存储该字段,它的用途是什么......

    <field name="test1" type="text" indexed="false"
        stored="false" required="false" />
Run Code Online (Sandbox Code Playgroud)

这个怎么样?

    <field name="test2" type="text" indexed="false"
        stored="false" required="false" multiValued="true" />
Run Code Online (Sandbox Code Playgroud)

非常感谢!

jav*_*nna 8

这比看起来容易:

  • indexed:你可以搜索它
  • stored:您可以在搜索结果中显示它

实际上,可能存在不用于搜索的字段,但您只想在结果中显示它们.另一方面,您可能希望在结果中显示字段,但不希望用于搜索.stored=false当您不需要显示某个字段时,这很重要,因为它可以提高性能.如果您存储了所有字段并且您有很多字段,Solr可能会慢慢返回结果.

当然,假设两者都没有多大意义,因为这个领域将变得完全没用.

两个字段之间的唯一区别是multiValued=true,这意味着第二个字段可以包含多个值.这意味着该字段的内容不仅仅是文本条目,还包括文本条目列表.


Par*_*ade 8

你可以从Solr wiki找到最好的解释.

如果要搜索字段,则应将indexed属性设置为true.

indexed = true:如果此字段应为"索引",则为True.如果(并且仅当)字段被索引,则它是可搜索的,可排序的和可表示的.

如果要在搜索结果中检索字段,则应将stored属性设置为true.

stored = true:如果在搜索期间应该可以检索字段的值,则为True

如果要在单个字段中存储多个值,则应将多值字段设置为true.

multivalued = true:如果此字段可能包含每个文档的多个值,则为True,即它是否可以在文档中多次出现