首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在elasticsearch中使用聚合搜索geo_distance

在elasticsearch中使用聚合搜索geo_distance
EN

Stack Overflow用户
提问于 2016-06-04 21:00:42
回答 1查看 77关注 0票数 0

我试图做一个地理空间搜索,因为我可以使用相同的listing_id获得多个点击,我想按listing_id分组结果。

代码语言:javascript
复制
{
"query": {
    "filtered": {
        "filter": {
            "geo_distance": {
                "distance": "24km",
                "location":[39.91774, -75.03005]
            }
        }
    },
    "aggs": {
        "group_by_listing": {
            "terms": { "field": "listing_id" }
        }
    }
}

如果我在没有聚合的情况下进行搜索,结果就会很好地返回,但是每当我尝试添加聚合节点时,我都会收到以下错误{"error":{"root_cause":[{"type":"parse_exception","reason":"failed to parse search source. expected field name but got [START_OBJECT]"}],"type":"search_phase_execution_exception","reason":"all shards failed","phase":"query","grouped":true,"failed_shards":[{"shard":0,"index":"listings","node":"n0nkglP4T6iik-Z-XyYspA","reason":{"type":"parse_exception","reason":"failed to parse search source. expected field name but got [START_OBJECT]"}}]},"status":400}

这是curl请求:curl -XPOST http://192.168.10.10:9200/listings/route/_search -d '{"query":{"filtered":{"filter":{"geo_distance":{"distance":"24km","location":[39.91774, -75.03005]}}},"aggs":{"group_by_listings":{"terms":{"field":"listing_id"}}}}}'

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-05 06:01:15

只需将aggs移出query部件,如下所示:

代码语言:javascript
复制
{
  "query": {
    "filtered": {
      "filter": {
        "geo_distance": {
          "distance": "24km",
          "location": [
            39.91774,
            -75.03005
          ]
        }
      }
    }
  },
  "aggs": {
    "group_by_listing": {
      "terms": {
        "field": "listing_id"
      }
    }
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37634977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档