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
editBool 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
must
orfilter
clauses, one or moreshould
clauses must match a document. The minimum number of should clauses to match can be set using theminimum_should_match
parameter. -
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 } }