Fork me on GitHub
  • API

    Show / Hide Table of Contents

    Class PhraseQuery

    A Query that matches documents containing a particular sequence of terms. A PhraseQuery is built by QueryParser for input like "new york".

    This query may be combined with other terms or queries with a BooleanQuery.

    Collection initializer note: To create and populate a PhraseQuery in a single statement, you can use the following example as a guide:
    var phraseQuery = new PhraseQuery() {
        new Term("field", "microsoft"), 
        new Term("field", "office")
    };

    Note that as long as you specify all of the parameters, you can use either Add(Term) or Add(Term, int) as the method to use to initialize. If there are multiple parameters, each parameter set must be surrounded by curly braces.

    Inheritance
    object
    Query
    PhraseQuery
    NGramPhraseQuery
    Implements
    IEnumerable<Term>
    IEnumerable
    Inherited Members
    Query.Boost
    Query.ToString()
    Query.Clone()
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: Lucene.Net.Search
    Assembly: Lucene.Net.dll
    Syntax
    public class PhraseQuery : Query, IEnumerable<Term>, IEnumerable

    Constructors

    PhraseQuery()

    Constructs an empty phrase query.

    Declaration
    public PhraseQuery()

    Properties

    Slop

    Sets the number of other words permitted between words in query phrase. If zero, then this is an exact phrase search. For larger values this works like a WITHIN or NEAR operator.

    The slop is in fact an edit-distance, where the units correspond to moves of terms in the query phrase out of position. For example, to switch the order of two words requires two moves (the first move places the words atop one another), so to permit re-orderings of phrases, the slop must be at least two.

    More exact matches are scored higher than sloppier matches, thus search results are sorted by exactness.

    The slop is zero by default, requiring exact matches.
    Declaration
    public virtual int Slop { get; set; }
    Property Value
    Type Description
    int

    Methods

    Add(Term)

    Adds a term to the end of the query phrase. The relative position of the term is the one immediately after the last term added.

    Declaration
    public virtual void Add(Term term)
    Parameters
    Type Name Description
    Term term

    Add(Term, int)

    Adds a term to the end of the query phrase. The relative position of the term within the phrase is specified explicitly. this allows e.g. phrases with more than one term at the same position or phrases with gaps (e.g. in connection with stopwords).

    Declaration
    public virtual void Add(Term term, int position)
    Parameters
    Type Name Description
    Term term
    int position

    CreateWeight(IndexSearcher)

    Expert: Constructs an appropriate Weight implementation for this query.

    Only implemented by primitive queries, which re-write to themselves.
    Declaration
    public override Weight CreateWeight(IndexSearcher searcher)
    Parameters
    Type Name Description
    IndexSearcher searcher
    Returns
    Type Description
    Weight
    Overrides
    Query.CreateWeight(IndexSearcher)

    Equals(object)

    Returns true if o is equal to this.

    Declaration
    public override bool Equals(object o)
    Parameters
    Type Name Description
    object o
    Returns
    Type Description
    bool
    Overrides
    Query.Equals(object)

    ExtractTerms(ISet<Term>)

    A Query that matches documents containing a particular sequence of terms. A PhraseQuery is built by QueryParser for input like "new york".

    This query may be combined with other terms or queries with a BooleanQuery.

    Collection initializer note: To create and populate a PhraseQuery in a single statement, you can use the following example as a guide:
    var phraseQuery = new PhraseQuery() {
        new Term("field", "microsoft"), 
        new Term("field", "office")
    };

    Note that as long as you specify all of the parameters, you can use either Add(Term) or Add(Term, int) as the method to use to initialize. If there are multiple parameters, each parameter set must be surrounded by curly braces.

    Declaration
    public override void ExtractTerms(ISet<Term> queryTerms)
    Parameters
    Type Name Description
    ISet<Term> queryTerms
    Overrides
    Query.ExtractTerms(ISet<Term>)
    See Also
    ExtractTerms(ISet<Term>)

    GetEnumerator()

    Returns an enumerator that iterates through the terms collection.

    Declaration
    public IEnumerator<Term> GetEnumerator()
    Returns
    Type Description
    IEnumerator<Term>

    An enumerator that can be used to iterate through the terms collection.

    GetHashCode()

    Returns a hash code value for this object.

    Declaration
    public override int GetHashCode()
    Returns
    Type Description
    int
    Overrides
    Query.GetHashCode()

    GetPositions()

    Returns the relative positions of terms in this phrase.

    Declaration
    public virtual int[] GetPositions()
    Returns
    Type Description
    int[]

    GetTerms()

    Returns the set of terms in this phrase.

    Declaration
    public virtual Term[] GetTerms()
    Returns
    Type Description
    Term[]

    Rewrite(IndexReader)

    Expert: called to re-write queries into primitive queries. For example, a PrefixQuery will be rewritten into a BooleanQuery that consists of TermQuerys.

    Declaration
    public override Query Rewrite(IndexReader reader)
    Parameters
    Type Name Description
    IndexReader reader
    Returns
    Type Description
    Query
    Overrides
    Query.Rewrite(IndexReader)

    ToString(string)

    Prints a user-readable version of this query.

    Declaration
    public override string ToString(string f)
    Parameters
    Type Name Description
    string f
    Returns
    Type Description
    string
    Overrides
    Query.ToString(string)

    Implements

    IEnumerable<T>
    IEnumerable
    Back to top Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0
    Apache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation.
    All other marks mentioned may be trademarks or registered trademarks of their respective owners.