![](/img/trans.png)
[英]ElasticSearch: Filter for documents where any value in an array field is not in a list
[英]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.