Elasticsearch - How to get popular words list of documents

前端 未结 2 1755
离开以前
离开以前 2021-01-31 21:18

I have a temporary index with documents that I need to moderate. I want to group these documents by the words they contain.

For example, I have these documents:

2条回答
  •  生来不讨喜
    2021-01-31 21:42

    Doing a simple term aggregation search will meet your needs:

    (where mydata is the name of your field)

    curl -XGET 'http://localhost:9200/test/data/_search?search_type=count&pretty' -d '{
      "query": {
        "match_all" : {}
      },
      "aggs" : {
          "mydata_agg" : {
        "terms": {"field" : "mydata"}
        }
      }
    }'
    

    will return:

    {
      "took" : 3,
      "timed_out" : false,
      "_shards" : {
        "total" : 5,
        "successful" : 5,
        "failed" : 0
      },
      "hits" : {
        "total" : 3,
        "max_score" : 0.0,
        "hits" : [ ]
      },
      "aggregations" : {
        "mydata_agg" : {
          "doc_count_error_upper_bound" : 0,
          "sum_other_doc_count" : 0,
          "buckets" : [ {
            "key" : "aaa",
            "doc_count" : 3
          }, {
            "key" : "fff",
            "doc_count" : 3
          }, {
            "key" : "bbb",
            "doc_count" : 2
          }, {
            "key" : "ccc",
            "doc_count" : 1
          }, {
            "key" : "ffffd",
            "doc_count" : 1
          }, {
            "key" : "eee",
            "doc_count" : 1
          }, {
            "key" : "hhh",
            "doc_count" : 1
          }, {
            "key" : "mmm",
            "doc_count" : 1
          }, {
            "key" : "xxx",
            "doc_count" : 1
          } ]
        }
      }
    }
    

提交回复
热议问题