elasticsearch - Elasticsearch Aggregation无法正常工作

标签 elasticsearch

我也有一条消息索引,我也为每个messageHash存储message。我也有许多其他 Realm 。索引中有多个重复的message字段,例如“你好”。我想检索唯一的消息。

这是我编写的用于搜索唯一消息并按日期对其进行排序的查询。

{
  "query": {
    "bool": {
      "must": {
        "term": {
          "message": "Hello"
        }
      },
      "must_not": [
        {
          "term": {
            "user1": "guest"
          }
        },
        {
          "term": {
            "user2": "guest"
          }
        }
      ]
    }
  },
  "aggs": {
    "top_messages": {
      "terms": {
        "field": "messageHash"
      },
      "aggs": {
        "top_messages_hits": {
          "top_hits": {
            "sort": [
              {
                "date": {
                  "order": "desc"
                }
              },
              "_score"
            ],
            "size": 1
          }
        }
      }
    }
  }
}

我仍然收到重复的消息,也没有按日期排序!就像我还没有添加聚合一样。我不知道这是怎么回事。

最佳答案

如果其他人遇到相同的问题...请记住,响应将如下所示:

{
  "took" : X,
  "timed_out" : false,
  "_shards" : {
    "total" : X,
    "successful" : X,
    "failed" : X
  },
  "hits" : {
    "total" : X,
    "max_score" : X,
    "hits" : [
            ....
            ....
           ]
},
  "aggregations" : {
    "top_messages" : {
      "doc_count_error_upper_bound" : X,
      "sum_other_doc_count" : X,
      "buckets" : [
        {
          "key" : "XXXXXXXXXXXXXXXXXXXXXXXX",
          "doc_count" : X,
          "top_messages_hits" : {
            "hits" : {
              "total" : X,
              "max_score" : null,
              "hits" : [
                    .....
                    .....
                   ]
}

您将在第一段中获得查询结果而不进行汇总。只需向下滚动并检查聚合段。

如果您不希望第一段,可以在查询中传递"size"=0,如此处所述:https://www.elastic.co/guide/en/elasticsearch/reference/current/returning-only-agg-results.html

关于elasticsearch - Elasticsearch Aggregation无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41085826/

相关文章:

java - Elasticsearch GetResponse.getField 抛出 NullPointerException

elasticsearch - elasticsearch查询

elasticsearch - Apache NiFi : PutElasticSearchHttp is not working, 出现空白错误

elasticsearch - 使用 elasticsearch completion suggester 获得不同于输入的输出

ruby - ElasticSearch/轮胎和关键字。匹配 “or”以获得关键字列表的正确方法?

elasticsearch - 如何以非交互方式在 Elasticsearch 中启用 TLS?

elasticsearch - 使用Elastic4s客户端查找索引中特定字段的所有不同值

elasticsearch - 我们可以使用Elasticsearch SQL插入或更新数据吗?

symfony - elasticsearch索引已删除

python - 如何使用elasticsearch的SimpleQueryString功能?