如果我只是在Solr中将一个字段设置为多值,为什么所有字段都设置为多值?

时间:2016-06-09 16:12:22

标签: solr

schema.xml我刚刚使用multiValued="true"声明了一个字段有多个值但是当我看到*:*查询的响应时,我得到{{1}内所有字段的值除[]字段外,(表示特定字段是多值)括号。它为什么会发生任何人都可以告诉我?你可以看到我在下面得到的回应类型:

id

这就是我在 { "id": "id1", "name": ["name1"], "gender": ["male"], "number":["9898989898"] } 中将该字段声明为多值的方式:

schema.xml

1 个答案:

答案 0 :(得分:0)

See my previous answer。由于id是文档的唯一关键字,因此它是默认情况下未定义为多值的少数几个字段之一,"无架构"托管架构。

由于5.x默认使用托管架构 - 如果在升级后第一次启动Solr时没有出现正确的schema.xml文件,则可能会发生这种情况。您可以使用solrconfig.xml中的ClassicIndexSchemaFactory更改此行为。

由于Solr内部,_version_字段是必需的 - 它必须存在于模式中,因为它用于部分更新(即其他人在您提交部件之前更新了文档) ,SolrCloud模式(哦,我已经从群集中的不同节点获得该版本)和UpdateLog(无需更新已经存在的内容)..以及可能还有一些其他功能。

另一个"魔法" field为_root_,用于实现子文档支持。