You are looking at preliminary documentation for a future release.
Not what you want? See the
current release documentation.
Bool Query Usageedit
A 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 Exampleedit
q
.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 Exampleedit
new 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
}
}