2

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

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

{
  "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",
    .
    .
    . 
    . 

我究竟做错了什么?

谢谢。

4

2 回答 2

2

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

分面搜索是指一种通过显示有关数据的各个分区的摘要并随后允许将导航缩小到特定分区来探索大量数据的方法。

在 Elasticsearch 中,构面也是允许计算这些摘要的特征的名称。在 Elasticsearch 1.0 中,构面已被聚合取代,这是构面的超集。

请改用此查询:

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

这将正常工作

于 2015-10-29T08:31:12.757 回答
0

试试这个:

GET /index_name/type_name/_search?search_type=count
{
  "query": {
    "match_all": {}
  },
  "facets": {
    "text": {
      "terms": {
        "field": "text",
        "size": 10
      }
    }
  }
}
于 2015-10-29T08:13:02.303 回答