我在ES數據庫中有一堆公司數據。我正在計算每次發生的文檔數量,但我在聚合查詢中遇到了一些問題。我期望排除諸如「公司」或「公司」之類的術語。到目前爲止,我已經能夠按照以下代碼一次成功完成一個任期。Elasticsearch Aggregation Query with multiple excluded
{
"aggs" : {
"companies" : {
"terms" : {
"field" : "Companies.name",
"exclude" : "corporation"
}
}
}
}
它返回
"aggregations": {
"assignee": {
"buckets": [
{
"key": "inc",
"doc_count": 375
},
{
"key": "company",
"doc_count": 252
}
]
}
}
理想情況下,我想能夠做到像
{
"aggs" : {
"companies" : {
"terms" : {
"field" : "Companies.name",
"exclude" : ["corporation", "inc.", "inc", "co", "company", "the", "industries", "incorporated", "international"],
}
}
}
}
但我一直沒能找到沒有辦法拋出一個錯誤
我已經看過ES文檔中Aggregation的「Terms」部分,只能找到一個ex足夠的一個排除。我想知道是否有可能排除多個術語,如果是的話,那麼這樣做的正確語法是什麼。
注意:我知道我可以將該字段設置爲「not_analyzed」,並獲取完整公司名稱的分組而不是拆分名稱。不過,我猶豫要做到這一點作爲分析允許鬥更加寬容名稱變更(即微軟公司&微軟公司)
有關信息,這已被實現爲ES 1.5。有關詳細信息,請參閱此問題:https://github.com/elastic/elasticsearch/issues/11959 –