Namespace Lucene.Net.QueryParsers.Surround.Query
Classes
AndQuery
Factory for conjunctions
BasicQueryFactory
Factory for creating basic term queries
ComposedQuery
Base class for composite queries (such as AND/OR/NOT)
DistanceQuery
Factory for NEAR queries
FieldsQuery
Forms an OR query of the provided query across multiple fields.
NotQuery
Factory for prohibited clauses
OrQuery
Factory for disjunctions
SimpleTerm
Base class for queries that expand to sets of simple terms.
SpanNearClauseFactory
SpanNearClauseFactory:
Operations:
- create for a field name and an indexreader.
- add a weighted Term - this should add a corresponding SpanTermQuery, or increase the weight of an existing one.
- add a weighted subquery SpanNearQuery
- create a clause for SpanNearQuery from the things added above.
For this, create an array of SpanQuery's from the added ones. The clause normally is a SpanOrQuery over the added subquery SpanNearQuery the SpanTermQuery's for the added Term's
When it is necessary to suppress double subqueries as much as possible: GetHashCode() and Equals() on unweighted SpanQuery are needed (possibly via GetTerms(), the terms are individually hashable). Idem SpanNearQuery: hash on the subqueries and the slop. Evt. merge SpanNearQuery's by adding the weights of the corresponding subqueries.
To be determined: Are SpanQuery weights handled correctly during search by Lucene? Should the resulting SpanOrQuery be sorted? Could other SpanQueries be added for use in this factory:
- SpanOrQuery: in principle yes, but it only has access to it's terms via getTerms(); are the corresponding weights available?
- SpanFirstQuery: treat similar to subquery SpanNearQuery. (ok?)
- SpanNotQuery: treat similar to subquery SpanNearQuery. (ok?)
Factory for SpanOrQuery
SrndPrefixQuery
Query that matches string prefixes
SrndQuery
Lowest level base class for surround queries
SrndTermQuery
Simple single-term clause
SrndTruncQuery
Query that matches wildcards
TooManyBasicQueries
Exception thrown when BasicQueryFactory would exceed the limit of query clauses.
Interfaces
IDistanceSubQuery
Interface for queries that can be nested as subqueries into a span near.
SimpleTerm.IMatchingTermVisitor
Callback to visit each matching term during "rewrite" in VisitMatchingTerm(Term)