我用 ruby 编写了一个 API,可以帮助客户构建 elasticsearch 查询 dsl。构建的查询包含一个空布尔值,如下所示,这会导致问题。由于 bool 像这样为空,它会导致返回 0 个结果。如果我删除布尔值,我会得到预期的结果。如何在不删除该布尔值的情况下将其变成 match_all ?我需要将 bool 留在那里,直到下一个版本可以将其删除。如果我在默认情况下在 bool 中添加一个 must 并在其中添加 match_all,我觉得它可能会产生意想不到的结果。
弹性版本:1.0.1
{
"query": {
"filtered": {
"query": {
"bool": {} <--- Causing problems
},
"filter": {
"query": {
"query_string": {
"fields": [
[
"name_field",
"message_field"
]
],
"query": "Halo AND Yaylo"
}
}
}
}
},
"sort": [
{
"interactions": {
"order": "desc"
}
}
]
}