弹性搜索如何索引嵌套列表

时间:2019-02-06 22:46:53

标签: json elasticsearch

如何为带有列表的嵌套数据结构创建索引?将会有otherUserID的列表,我不知道如何用elasticsearch 6.5对其编制索引。

UserID -> OtherUserID-> name:"text" , count : "long"

1 个答案:

答案 0 :(得分:1)

您可以使用nested data type创建这样的字段并为对象建立索引列表。 请参考下面的示例,并根据需要对其进行修改:

映射:

PUT testindex
{
  "mappings": {
    "_doc": {
      "properties": {
        "nestedField": {
          "type": "nested",
          "properties": {
            "field1": {
              "type": "text",
              "fields": {
                "keywords": {
                  "type": "keyword"
                }
              }
            },
            "field2": {
              "type": "integer"
            }
          }
        }
      }
    }
  }
}

添加文档:

对于列表中的单个项目:

PUT testindex/_doc/1
{
  "nestedField": [
    {
      "field1": "Some text",
      "field2": 10
    }
  ]
}

对于列表中的多个项目:

PUT testindex/_doc/2
{
  "nestedField": [
    {
      "field1": "Some other text",
      "field2": 11
    },
    {
      "field1": "random value",
      "field2": 15
    }
  ]
}