elasticsearch,Json,elasticsearch" /> elasticsearch,Json,elasticsearch" />

Json 分析Elasticsearch的嵌套对象时出错

Json 分析Elasticsearch的嵌套对象时出错,json,elasticsearch,Json,elasticsearch,我在Elasticsearch上搜索时收到以下错误 QueryParsingException[[dev_app][nested]路径下的嵌套对象 [contactNames]不是嵌套类型] 检查实际文档时,以下请求对象有效 这是请求对象: [ { "query": { "bool": { "must": [ { "constant_score": { "query": {

我在Elasticsearch上搜索时收到以下错误

QueryParsingException[[dev_app][nested]路径下的嵌套对象 [contactNames]不是嵌套类型]

检查实际文档时,以下请求对象有效

这是请求对象:

[
  {
    "query": {
      "bool": {
        "must": [
          {
            "constant_score": {
              "query": {
                "match": {
                  "contactBookId": {
                    "query": 15496
                  }
                }
              }
            }
          },
          {
            "constant_score": {
              "query": {
                "nested": {
                  "path": "contactNames",
                  "query": {
                    "bool": {
                      "must": [
                        {
                          "match": {
                            "contactNames.fullName": {
                              "query": "fewafwa"
                            }
                          }
                        },
                        {
                          "match": {
                            "contactNames.nameIndex": {
                              "query": "1"
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        ]
      }
    },
    "size": 100
  }
]

感谢您的帮助

查看您的索引映射,
联系人姓名
需要是嵌套类型

它应该是这样的(根据您的需要采用):


然后它不会抛出异常并按Expected方式工作。

查看索引映射,
contactNames
需要是嵌套类型

它应该是这样的(根据您的需要采用):


然后,它不会抛出异常并按expeted方式工作。

问题是在Elasticsearch中没有填充索引的地方。因此,错误有点奇怪

问题是在Elasticsearch中没有填充索引。因此错误有点奇怪

查看索引的映射(
GET index\u name/\u mapping
)并查找名为
contactNames
的字段。此字段的
类型
应该是嵌套的
。如果不是,则错误是合法的。索引尚未应用,因此感谢您的答复。它为我指明了正确的方向!如何获取这种嵌套类型?请查看索引的映射(
get index\u name/\u mapping
),并查找名为
contactNames
的字段。此字段的
类型
应该是嵌套的
。如果不是,则错误是合法的。索引尚未应用,因此感谢您的答复。它为我指明了正确的方向!如何获得这种嵌套类型?
{
  "mappings": {
    "yourType": {
      "properties": {
        "contactNames": {
          "type": "nested",
          "properties": {
            "fullName": {
              "type": "string"
            },
            "nameIndex": {
              "type": "integer"
            }
          }
        }
      }
    }
  }
}