WARNING: Version 5.x has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
Bool Query Usage
edit
IMPORTANT: This documentation is no longer updated. Refer to Elastic's version policy and the latest documentation.
Bool Query Usage
editA query that matches documents matching boolean combinations of other queries. It is built using one or more boolean clauses, each clause with a typed occurrence.
The occurrence types are:
-
must - The clause (query) must appear in matching documents and will contribute to the score.
-
filter -
The clause (query) must appear in matching documents. However unlike
must, the score of the query will be ignored. -
should -
The clause (query) should appear in the matching document. In a boolean query with no
mustorfilterclauses, one or moreshouldclauses must match a document. The minimum number of should clauses to match can be set using theminimum_should_matchparameter. -
must_not - The clause (query) must not appear in the matching documents.
Check out the bool queries section for more details on bool queries with NEST.
See the Elasticsearch documentation on bool query for more details.
Fluent DSL example
editq
.Bool(b => b
.MustNot(m => m.MatchAll())
.Should(m => m.MatchAll())
.Must(m => m.MatchAll())
.Filter(f => f.MatchAll())
.MinimumShouldMatch(1)
.Boost(2))
Object Initializer syntax example
editnew BoolQuery
{
MustNot = new QueryContainer[] { new MatchAllQuery() },
Should = new QueryContainer[] { new MatchAllQuery() },
Must = new QueryContainer[] { new MatchAllQuery() },
Filter = new QueryContainer[] { new MatchAllQuery() },
MinimumShouldMatch = 1,
Boost = 2
}
Example json output.
{
"bool": {
"must": [
{
"match_all": {}
}
],
"must_not": [
{
"match_all": {}
}
],
"should": [
{
"match_all": {}
}
],
"filter": [
{
"match_all": {}
}
],
"minimum_should_match": 1,
"boost": 2.0
}
}