2015-01-02 8 views
8

私はモデレートする必要のある文書を持つ一時的な索引を持っています。私はこれらの文書を、それらが含む言葉でグループ化したい。弾性検索 - 一般的な言葉の文書の入手方法

は例えば、私はこれらの文書があります。

1 - "AAA BBB CCC DDD EEE FFF"

2 - "BBB MMM AAA FFF XXX"

3 - "HHH AAA FFF"

だから、私は理想的にカウントして、最も人気のある単語を取得したい: "AAA" - 3、 "FFF" - 3、 "BBB" - 2、など

がelasticsearchで可能なこのですか?シンプルな用語の集約検索は、あなたのニーズを満たす行う

答えて

10

mydataがあなたのフィールドの名前です)

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

が返されます:

{ 
    "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" : "ddd", 
     "doc_count" : 1 
     }, { 
     "key" : "eee", 
     "doc_count" : 1 
     }, { 
     "key" : "hhh", 
     "doc_count" : 1 
     }, { 
     "key" : "mmm", 
     "doc_count" : 1 
     }, { 
     "key" : "xxx", 
     "doc_count" : 1 
     } ] 
    } 
    } 
} 
+0

は、これは、ありがとう私が探し求めた解決策。あなたが提供するクエリをテストしなかったが、何をする必要があるのか​​を知る。 – oleg

+0

私は '_mtermvectors' APIの周りを回っていないのに驚いています –