我是 Elasticsearch 新手。如果这是显而易见的,请原谅我。谷歌搜索但没有找到如何编写多值字段(字符串)的映射。我只找到了如何编写多值文档并在多值字段上搜索:http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_multi_value_fields_2.html
感谢您的帮助!
多值字段与 Elastic 的
multi_field
不同。这里描述的是:
https://www.elastic.co/guide/en/elasticsearch/reference/0.90/mapping-multi-field-type.html
当前文档在这里提到了多字段: https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html#_field_datatypes
据我了解,多值字段(我认为这也是您的意思)是包含多个值的字段,这些值将彼此分开搜索:
示例:字段
color
,多值,
keyword
包含以下值:“黑色”、“蓝色”、“白色”。当查询包含“white”时,就会有匹配。如果您有一个空格分隔的字段,其中包含三个标记“黑蓝白”,其中白色排在最后,那么分数将会有所不同。
在Elasticsearch中,没有专用的数组类型。默认情况下,任何字段都可以包含零个或多个值,但是数组中的所有值必须具有相同的数据类型。 (Elastic 只是隐式地将值添加到字段中。不会有像 SOLR 中那样带有显式https://www.elastic.co/guide/en/elasticsearch/reference/current/array.html)
multiValued=false
的错误处理。如果您想确保字段不包含值列表,则必须在导入期间进行检查。 如果一个或多个文档的某个字段有多个值,则无论特定文档有多少个值,该字段的值都会在 JSON 结果中显示为数组。因此该字段的结果类型在索引中是一致的,但不会反映在映射中。