在 Elasticsearch 中检索热门术语查询

Retrieving top terms query in Elasticsearch

我正在使用 Elasticsearch 1.1.0 并尝试在名为 text

的字段中检索前 10 个术语

我尝试了以下方法,但它返回了所有文档:

{
  "query": {
    "match_all": {}
  },
  "facets": {
    "text": {
      "terms": {
        "field": "text",
        "size": 10
      }
    }
  }
}

编辑

以下是返回结果的示例:

    {
    "took": 2,
    "timed_out": false,
    "_shards": {


"total": 5,
    "successful": 5,
    "failed": 0
    },
    "hits": {
    "total": 2747, 
    "max_score": 1,
    "hits": [
    {
    "_index": "index_name",
    "_type": "type_name",
    "_id": "621637640908050432",
    "_score": 1,
    "_source": {
    "metadata": {
    "result_type": "recent",
    "iso_language_code": "en"
    },
    "in_reply_to_status_id_str": null,
    "in_reply_to_status_id": null,
    "created_at": "Thu Jul 16 11:08:57 +0000 2015",
    .
    .
    . 
    . 

我做错了什么?

谢谢。

试试这个:

GET /index_name/type_name/_search?search_type=count
{
  "query": {
    "match_all": {}
  },
  "facets": {
    "text": {
      "terms": {
        "field": "text",
        "size": 10
      }
    }
  }
}

首先,不要使用facets。它们已被弃用。即使您使用 Elasticsearch 的旧版本,也请切换到聚合。引用文档:

Faceted search refers to a way to explore large amounts of data by displaying summaries about various partitions of the data and later allowing to narrow the navigation to a specific partition.

In Elasticsearch, facets are also the name of a feature that allowed to compute these summaries. facets have been replaced by aggregations in Elasticsearch 1.0, which are a superset of facets.

改为使用此查询:

POST /your_index/your_type/_search?search_type=count
{
  "aggs" : {
    "text" : {
      "terms" : {
        "field" : "text",
        "size" : 10
      }
    }
  }
}

这会很好