Elasticsearch如何在映射中指定索引为false的关键字数组?

时间:2019-02-04 15:54:31

标签: elasticsearch

我正在尝试在Elasticsearch映射中指定索引为“ false”的“关键字”字段的数组,因为根据ES docs,没有类型为“ Array”,所以我正在考虑使用以下映射

PUT my_index
{
  "mappings": {
    "_doc": {
      "properties": {
        "arr_field": {
          "type":   "keyword", "index": false
        }
      }
    }
  }
}

这是正确的方法吗?

1 个答案:

答案 0 :(得分:1)

是的,数组没有这种特定的数据类型。如果您想拥有一个存储整数数组的字段,那么您所要做的就是将字段定义为整数类型,并且在建立索引时始终确保针对该字段的值是一个数组,即使该值是单个数组也是如此。

例如:

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

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

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

关键字数据类型也是如此。所以你在做什么是对的。您需要注意的是,在索引文档时,arr_field的值始终是一个数组。