是否可以在query_string
合并bool query
和filter query
?
例如 -
{
"filter": {
"query_string": {
"query": "field:text"
}
},
"bool": {
"should": {
"match": {
"field": "text"
}
}
}
}
答案 0 :(得分:30)
bool旨在用于将各种查询聚合成一个bool查询。 您可以使用bool以这种方式组合多个查询 -
{
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "field:text"
}
},
{
"match": {
"field": "text"
}
}
]
}
}
}
must子句将确保所有条件都匹配。 您还可以使用should,以确保在仅使用should的情况下,任何一个查询都匹配。
由于bool只是另一种查询类型,你也可以按照以下方式在bool查询中加入bool查询 -
{
"query": {
"bool": {
"must": [
{
"bool": {
"must": [
{
"query_string": {
"query": "field:text"
}
},
{
"match": {
"field": "value"
}
}
]
}
},
{
"match": {
"field": "text"
}
}
]
}
}
}