Show / Hide Table of Contents

    Namespace Lucene.Net.QueryParsers.Surround.Query

    This package contains SrndQuery and its subclasses.
    
    The parser in the org.apache.lucene.queryparser.surround.parser package
    normally generates a SrndQuery.
    
    For searching an org.apache.lucene.search.Query is provided by
    the SrndQuery.makeLuceneQueryField method.
    For this, TermQuery, BooleanQuery and SpanQuery are used from Lucene.
    

    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

    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)

    • Improve this Doc
    Back to top Copyright © 2020 Licensed to the Apache Software Foundation (ASF)