我想創建一些報告過濾器,用戶可以使用報告上的任何字段搜索配置文件。例如:搜索與vi
等Elasticsearch - 使用布爾(必須&與)DSL查詢創建報告過濾器
這裏開始,隨着ann
開始,grade
與firstname
任何配置文件是迄今爲止我所書寫的查詢:
{
from: 20,
size: 20,
query: {
filtered: {
query: {
match_all: [ ]
},
filter: {
bool: {
must: [
{
prefix: {
firstname: "ann"
}
},
{
prefix: {
grade: "vi"
}
}
]
}
}
}
},
sort: {
grade: {
order: "asc"
}
}
}
如果我刪除的must
一個孩子(在bool
過濾器),它的工作原理。但是,一旦我使用了多個過濾器,它就不會返回任何結果,並且我需要能夠在其中使用任意數量的條目。
此外,如果我使用should
而不是must
,它的工作原理。我不知道是否我誤解了邏輯,但根據我的理解(在這種情況下)must
應返回firstname
的結果和grade
開頭的結果vi
。
它們確實存在,但此查詢只是找不到它們。
我在這裏錯過了什麼嗎?
感謝
查詢看起來很好,和你的應該是如何工作的理解是正確因此,它可能是一些與您的映射或字段名,或嘗試創建一個使用示例文檔和查詢來破解的最小示例,一個空索引和兩個curl命令應該能夠確認您的查詢沒有任何問題 –