【问题标题】:ElasticSearch query on json data对 json 数据的 ElasticSearch 查询
【发布时间】:2018-10-04 05:22:19
【问题描述】:

我有json格式的数据

{"issue_number": 1, "created_at": "2016-03-13", "closed_at": "2016-04-13", "labels": ["Category: Bug", "Latitude:41.925573" , "经度:-87.649249", "OriginationPhase:Requirements"], "状态": "关闭"}

我需要编写一个弹性搜索查询来检索为同一位置(即纬度和经度)创建了至少 3 个问题的所有位置。

据我了解,我需要检索同一位置的问题超过 3 个的数据。所以我需要按纬度和经度分组,并且计数应该大于或等于3

我对弹性搜索了解不多。我已经推荐了几个网站并尝试了以下代码。

    q = {
    'aggregations':{
                'labels':{
                    'nested':{
                            'path':'labels'
                },
                'aggs':{
                    'latitude':{
                        'terms':{
                                'field':'labels.Latitude',
                                'min_doc_count':3
                            },
                        'aggs':{
                            'by_top_hits':{
                                'top_hits':{
                                    'size':3
                                }
                            }
                        }
                    }
              }

         }
    }
}

但我没有得到预期的结果,查询 doc_count 为 0。

【问题讨论】:

    标签: python elasticsearch jupyter-notebook elasticsearch-5


    【解决方案1】:

    您缺少一个查询。在这种情况下,您可以从 Match All Query 开始,以便评估所有文档。

    关于您的 agg 查询,我认为不需要嵌套,您可以尝试以下操作:

    GET yourindex/_search
    {
      "query": {
        "match_all": {}
      },
      "aggs": {
        "locations": {
          "terms": {
            "field":"latitudeNameField"
          }
        }
      },
      "_source": "false"
    }
    

    【讨论】:

    • 这里的“latitudeNameField”到底指的是什么?
    猜你喜欢
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 2014-11-04
    • 2019-11-29
    • 2017-12-15
    • 2021-12-03
    • 1970-01-01
    相关资源
    最近更新 更多