Interface Filter

All Known Implementing Classes:
And, ContainsString, FullTextContains, FullTextContainsAll, FullTextContainsAny, IsEqualTo, IsGreaterThan, IsGreaterThanOrEqualTo, IsIn, IsLessThan, IsLessThanOrEqualTo, IsNotEqualTo, IsNotIn, IsTextMatch, IsTextMatchPhrase, Not, Or

public interface Filter
This class represents a filter that can be applied during search in an EmbeddingStore.
Many EmbeddingStores support a feature called metadata filtering. A Filter can be used for this.
A Filter object can represent simple (e.g. type = 'documentation') and composite (e.g. type = 'documentation' AND year > 2020) filter expressions in an EmbeddingStore-agnostic way.
Each EmbeddingStore implementation that supports metadata filtering is mapping Filter into it's native filter expression.
Metadata values can be Float or Double, and those can be infinite or NaN. Infinite values are compared as one would expect: -Infinity is smaller and +Infinity is greater than any other number. NaN is not comparable to anything, not even to itself, so every comparison with it is false: a NaN metadata value satisfies neither IsEqualTo("key", NaN) nor IsGreaterThan("key", 0), and only IsNotEqualTo and IsNotIn match it.
See Also: