Elasticsearch使场的阵列

问题描述 投票:0回答:2

如何在elasticsearch定义一个字段总是返回数组。

我在elasticsearch现场关键字,有时有一个关键字

Elasticsearch然后返回该字段作为一个字符串,而不是一个列表,这打破解串器,因为它是期待一个列表,而不是一个字符串。

我这是怎么定义的关键字映射:

"KEYWORDS": {
  "type": "text",
  "fields": {
    "keyword": {
      "type": "text"

    }
  }
},
elasticsearch
2个回答
1
投票

你所想达到而索引文件应予以处理。由于没有用于阵列没有这样的特定的数据类型。因此,对于例如如果你想有一个字段的整数那家商店/回阵列中所有你需要的是定义字段类型整数,而索引始终确保针对该字段的值是即使值是一个数组。

所以,

PUT test
{
  "mappings": {
    "_doc": {
      "properties": {
        "intArray": {
          "type": "integer"
        }
      }
    }
  }
}

PUT test/_doc/1
{
   "intArray": [10, 12, 50]
}

PUT test/_doc/1
{
   "intArray": [7]
}

这同样适用于任何其它数据类型为好。


1
投票

在Elasticsearch,没有专门的array类型。默认情况下,任何字段可以包含0或多个值。

这使得不可能迫使Elasticsearch始终返回JSON阵列。例如。如果您的文档将只有1倍的值,它会返回为对 - field: value

我怕你应该在客户端这个转换/执法

© www.soinside.com 2019 - 2024. All rights reserved.