2015-01-02 25 views
8

我有一個臨時索引,包含需要調節的文檔。我想用這些文件中包含的文字對這些文件進行分組。Elasticsearch - 如何獲得文檔的流行單詞列表

例如,我有這些文件:

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 –

相關問題