query_string
とbool query
をfilter query
で組み合わせることができますか?
例えば -
{
"filter": {
"query_string": {
"query": "field:text"
}
},
"bool": {
"should": {
"match": {
"field": "text"
}
}
}
}
boolは、さまざまなクエリを1つの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"
}
}
]
}
}
}