我是Apache Solr的新手 . 即使在阅读了documentation部分之后,我发现很难清楚地理解 multiValued
字段类型属性的功能和用法 .
内部Solr做什么/处理/处理标记为multiValued的字段?
Solr在多值字段和非多值字段之间的索引有何不同?
有人可以用一些好的例子解释一下吗?
Doc说:
multiValued = true | false如果此字段可能包含每个文档的多个值,即它是否可以在文档中多次出现,则为True
我是Apache Solr的新手 . 即使在阅读了documentation部分之后,我发现很难清楚地理解 multiValued
字段类型属性的功能和用法 .
内部Solr做什么/处理/处理标记为multiValued的字段?
Solr在多值字段和非多值字段之间的索引有何不同?
有人可以用一些好的例子解释一下吗?
Doc说:
multiValued = true | false如果此字段可能包含每个文档的多个值,即它是否可以在文档中多次出现,则为True
3 回答
当字段存在多个值时,多值字段很有用 . 一个简单的例子是标签,可以有多个需要索引的标签 . 因此,如果我们将标记字段设置为多值,则solr响应将返回列表而不是字符串值 . 需要注意的一点是,您需要为标签的每个值提交多行,例如:
获得所有值索引后,您可以按任意值搜索或过滤结果,例如 . 您可以使用查询来查找tag1的所有文档
或使用标签过滤掉结果
multiValued在模式中定义是否允许该字段具有多个值 .
例如:
如果我有一个名为ID的fieldType,它是multiValued = false索引文档,如下所示:
会导致在索引线程中抛出异常,并且不会对文档编制索引(架构验证将失败) .
另一方面,如果我有一个字段的多个值,我想设置multiValued = true以保证索引正确完成,例如:
在这种情况下,您可以将“keywords”定义为multiValued字段 .
我只使用复制域的多个值字段,所以这样想,除非它是一个复制域,否则所有字段都是单值的,例如我有以下字段:
我想只查询一个字段,并可能搜索上面的所有4个字段,然后我们需要使用copyfield . 首先创建一个新的字段调用'all',然后将所有内容复制到'all'
现在字段'all'需要多值 .