簡體   English   中英

彈性搜索過濾器,用於術語聚合的結果

[英]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.*"
      }
    }
  }
}

示例:假設您有三個不同的文檔,它們在索引中具有三個不同的術語( LOCKKEYLOL )。 因此,如果您執行以下請求:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM