簡體   English   中英

Elasticsearch:按任意字段過濾

[英]Elasticsearch: filter by any field

我在Elasticsearch中使用過濾器(我們使用舊版本1.3.1),並且需要按任何字段過濾搜索結果。 使用查詢,可以這樣完成:

"query": {
  "query_string": {
    "query": "_all:test"
  }
}

但是過濾器似乎不適用於_all語句。 我能做什么? 較新的elasticsearch版本可以解決我的問題嗎?

提前致謝!

PS:我需要搜索確切的值,所以我不能使用查詢。 查詢和過濾器之間有區別-如果您搜索my brown ,那么您可以期望得到類似以下結果:

my brown

This is my brown dog.

someone stolen my brown wallet

但是filter只返回my brown ,這就是我所需要的。

您可能需要稍微了解一下查詢和過濾器之間的區別。 您在執行的操作是查詢字符串query

如果您確實想過濾確切的文本標記(如果您不了解“標記”的含義,請"_all"閱讀分析 ),然后設置映射,使"_all"字段的行為與您期待然后嘗試這樣的事情:

POST /test_index/_search
{
   "query": {
      "filtered": {
         "filter": {
            "term": {
               "_all": "test"
            }
         }
      }
   }
}

另一方面,如果您希望進行某些分析(例如,將"Test"標記為"test" ),則可能需要這樣做:

POST /test_index/_search
{
   "query": {
      "match": {
         "_all": "Test"
      }
   }
}

這是我以前玩過的一些代碼:

http://sense.qbox.io/gist/44adf2c2ade8abd6758f0e08ed2e40434850fc1c

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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