我正在尝试在Elasticsearch映射中指定索引为“ false”的“关键字”字段的数组,因为根据ES docs,没有类型为“ Array”,所以我正在考虑使用以下映射
PUT my_index
{
"mappings": {
"_doc": {
"properties": {
"arr_field": {
"type": "keyword", "index": false
}
}
}
}
}
这是正确的方法吗?
答案 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
的值始终是一个数组。