mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-05-20 15:44:48 +00:00
Currently parsing inner queries can return `null` which leads to unnecessary complicated null checks further up the query hierarchy. By introducing a special EmptyQueryBuilder that can be used to signal that this query clause should be ignored upstream where possible, we can avoid additional null checks in parent query builders and still allow for this query to be ignored when creating the lucene query later. This new builder returns `null` when calling its `toQuery()` method, so at this point we still need to handle it, but having an explicit object for the intermediate query representation makes it easier to differentiate between cases where inner query clauses are empty (legal) or are not set at all (illegal). Also added check for empty inner builder list to BoolQueryBuilder and OrQueryBuilder. Removed setters for positive/negatice query in favour of constructor with mandatory non-null arguments in BoostingQueryBuilder. Closes #11915
33 lines
1.3 KiB
Plaintext
33 lines
1.3 KiB
Plaintext
[[breaking-changes query-refactoring]]
|
|
== Breaking changes on the query-refactoring branch
|
|
|
|
This section discusses changes that are breaking to the current rest or java-api
|
|
on the query-refactoring feature branch.
|
|
|
|
=== Java-API
|
|
|
|
==== BoostingQueryBuilder
|
|
|
|
Removed setters for mandatory positive/negative query. Both arguments now have
|
|
to be supplied at construction time already and have to be non-null.
|
|
|
|
==== QueryFilterBuilder
|
|
|
|
Removed the setter `queryName(String queryName)` since this field is not supported
|
|
in this type of query. Use `FQueryFilterBuilder.queryName(String queryName)` instead
|
|
when in need to wrap a named query as a filter.
|
|
|
|
==== Operator
|
|
|
|
Removed the enums called `Operator` from `MatchQueryBuilder`, `QueryStringQueryBuilder`,
|
|
`SimpleQueryStringBuilder`, and `CommonTermsQueryBuilder` in favour of using the enum
|
|
defined in `org.elasticsearch.index.query.Operator` in an effort to consolidate the
|
|
codebase and avoid duplication.
|
|
|
|
==== queryName and boost support
|
|
|
|
Support for `queryName` and `boost` has been streamlined to all of the queries. That is
|
|
a breaking change till queries get sent over the network as serialized json rather
|
|
than in `Streamable` format. In fact whenever additional fields are added to the json
|
|
representation of the query, older nodes might throw error when they find unknown fields.pd
|