[英]Elastic Search Filter on the result of terms aggregation
對彈性搜索中的術語聚合結果應用匹配短語前綴查詢。
我有字詞查詢,結果如下所示
“ buckets”:[{{“ key”:“ KEY”,“ count”:20},{“ key”:“ LOCK”,“ count”:30}]
現在的要求是過濾那些鍵以某個前綴開頭的存儲桶,因此類似於匹配短語前綴。 例如,如果匹配短語前綴查詢的輸入為“ LOC”,則僅應返回一個存儲桶(第二個存儲桶)。 因此,它實際上是對術語聚合的過濾器。 感謝您的想法。
您可以在術語聚合中使用include參數 ,以基於正則表達式過濾掉值。
這樣的事情應該起作用:
GET stackoverflow/_search
{
"_source": false,
"aggs": {
"groups": {
"terms": {
"field": "text.keyword",
"include": "LOC.*"
}
}
}
}
示例:假設您有三個不同的文檔,它們在索引中具有三個不同的術語( LOCK , KEY和LOL )。 因此,如果您執行以下請求:
GET stackoverflow/_search
{
"_source": false,
"aggs": {
"groups": {
"terms": {
"field": "text.keyword",
"include": "L.*"
}
}
}
}
您將獲得以下存儲桶:
"buckets" : [
{
"key" : "LOCK",
"doc_count" : 1
},
{
"key" : "LOL",
"doc_count" : 1
}
]
希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.