我正在尝试创建一些报告过滤器,用户可以在其中使用报告上的任何字段搜索配置文件。例如:搜索任何以firstname
开头ann
和grade
以vi
etc开头的个人资料。
这是我到目前为止写的一个查询:
{
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
的ann
结果。grade
vi
它们确实存在,但此查询找不到它们。
我在这里错过了什么吗?
谢谢