如何在elasticsearch定义一个字段总是返回数组。
我在elasticsearch现场关键字,有时有一个关键字
Elasticsearch然后返回该字段作为一个字符串,而不是一个列表,这打破解串器,因为它是期待一个列表,而不是一个字符串。
我这是怎么定义的关键字映射:
"KEYWORDS": {
"type": "text",
"fields": {
"keyword": {
"type": "text"
}
}
},
你所想达到而索引文件应予以处理。由于没有用于阵列没有这样的特定的数据类型。因此,对于例如如果你想有一个字段的整数那家商店/回阵列中所有你需要的是定义字段类型整数,而索引始终确保针对该字段的值是即使值是一个数组。
所以,
PUT test
{
"mappings": {
"_doc": {
"properties": {
"intArray": {
"type": "integer"
}
}
}
}
}
PUT test/_doc/1
{
"intArray": [10, 12, 50]
}
PUT test/_doc/1
{
"intArray": [7]
}
这同样适用于任何其它数据类型为好。
在Elasticsearch,没有专门的array
类型。默认情况下,任何字段可以包含0或多个值。
这使得不可能迫使Elasticsearch始终返回JSON阵列。例如。如果您的文档将只有1倍的值,它会返回为对 - field: value
我怕你应该在客户端这个转换/执法