Class SingleValueQuery.NegatedSyntheticSourceDelegateBuilder

All Implemented Interfaces:
NamedWriteable, VersionedNamedWriteable, Writeable, QueryBuilder, Rewriteable<QueryBuilder>, org.elasticsearch.xcontent.ToXContent, org.elasticsearch.xcontent.ToXContentObject
Enclosing class:
SingleValueQuery

public static class SingleValueQuery.NegatedSyntheticSourceDelegateBuilder extends SingleValueQuery.AbstractBuilder
Builds a query matching either ignored values OR the union of next query and SingleValueMatchQuery. Three total queries. This is used to generate candidate matches for queries like NOT(a == "b") where some values of a are not indexed. In fact, let's use that as an example.

In that case you use a query for a != "b" as the "next" query. Then this query will find all documents where a is single valued and == "b" AND all documents that have ignored some values of a. This produces candidate matches for NOT(a == "b"). It'll find documents like:

  • "a"
  • ignored_value
  • ["a", ignored_value]
  • [ignored_value1, ignored_value2]
  • ["b", ignored_field]

The first and second of those should match NOT(a == "b"). The last three should be rejected. So! When using this query you must push this query to the LuceneSourceOperator and retain it in the FilterOperator.

This will not find:

  • "b"

And that's also great! These can't match NOT(a == "b")