2

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

    <field name="test1" type="text" indexed="false"
        stored="false" required="false" />

这个怎么样?

    <field name="test2" type="text" indexed="false"
        stored="false" required="false" multiValued="true" />

非常感谢!

4

2 回答 2

9

您可以从Solr wiki找到最佳解释。

如果您希望字段可搜索,则应将 indexed 属性设置为 true。

indexed=true :如果该字段应该被“索引”,则为真。如果(且仅当)一个字段被索引,那么它是可搜索的、可排序的和可分面的。

如果要在搜索结果中检索该字段,则应将存储属性设置为 true。

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

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

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

于 2012-06-25T11:40:31.027 回答
8

这比看起来容易:

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

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

当然,两者都为 false 并没有多大意义,因为该字段将变得完全无用。

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

于 2012-06-25T08:34:00.690 回答