【问题标题】:Elasticsearch - get nested fieldsElasticsearch - 获取嵌套字段
【发布时间】:2016-07-29 06:14:56
【问题描述】:

我只想获取嵌套字段,但不能,因为它不是叶字段。

GET index/_search
{
    "size": 10,
    "fields": [
       "nested_fields"
    ]
}

ERROR : "reason": "field [nested_fields] isn't a leaf field"

我在下面尝试过,但无法匹配嵌套对象中的每个 ID 和名称。

GET index/_search
    {
        "size": 10,
        "fields": [
           "nested_fields.id",
           "nested_fields.name"
        ]
    }

结果:

"fields": {
               "events.id": [
                  "13342",
                  "24232",
                  "25534",
                  "63454"
               ],
               "events.name": [
                  "R1413",
                  "R1414",
                  "R1415",
                  "R1416",
               ]
            }

这是我的预期结果:

fields" : {
  "evets" : {
      "id" : "234234",
      "name" : "RP1524"
   },
    .... so on
}

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    如果你没有某个查询应该以某种方式匹配嵌套字段,你可以这样做:

    GET /index/_search
    {
      "size": 10,
      "_source": ["nested_fields.id", "nested_fields.name"]
    }
    

    如果您还有 nested 查询并且想要返回匹配的嵌套文档,您可以这样做(使用 inner_hits):

    {
      "query": {
        "nested": {
          "path": "nested_fields",
          "query": {"match_all": {}}, 
          "inner_hits": {}
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-04
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多