Show / Hide Table of Contents

    Class SimpleQueryParser

    SimpleQueryParser is used to parse human readable query syntax.

    The main idea behind this parser is that a person should be able to type whatever they want to represent a query, and this parser will do its best to interpret what to search for no matter how poorly composed the request may be. Tokens are considered to be any of a term, phrase, or subquery for the operations described below. Whitespace including ' ' '\n' '\r' and '\t' and certain operators may be used to delimit tokens ( ) + | " .

    Any errors in query syntax will be ignored and the parser will attempt to decipher what it can; however, this may mean odd or unexpected results.

    Query Operators

    • '+' specifies AND operation: token1+token2
    • '|' specifies OR operation: token1|token2
    • '-' negates a single token: -token0
    • '"' creates phrases of terms: "term1 term2 ..."
    • '' at the end of terms specifies prefix query: term
    • '~N' at the end of terms specifies fuzzy query: term~1
    • '~N' at the end of phrases specifies near query: "term1 term2"~5
    • '(' and ')' specifies precedence: token1 + (token2 | token3)

    The default operator is OR if no other operator is specified. For example, the following will OR token1 and token2 together: token1 token2

    Normal operator precedence will be simple order from right to left. For example, the following will evaluate token1 OR token2 first, then AND with token3:

    token1 | token2 + token3

    Escaping

    An individual term may contain any possible character with certain characters requiring escaping using a '</code>'. The following characters will need to be escaped in terms and phrases: + | " ( ) ' </code>

    The '-' operator is a special case. On individual terms (not phrases) the first character of a term that is - must be escaped; however, any '-' characters beyond the first character do not need to be escaped. For example:

    • -term1 -- Specifies NOT operation against term1
    • -term1 -- Searches for the term -term1.
    • term-1 -- Searches for the term term-1.
    • term-1 -- Searches for the term term-1.

    The '' operator is a special case. On individual terms (not phrases) the last character of a term that is '' must be escaped; however, any '' characters before the last character do not need to be escaped:

    • term1 -- Searches for the prefix term1
    • term1* -- Searches for the term term1
    • term1 -- Searches for the term term1
    • term*1 -- Searches for the term term1

    Note that above examples consider the terms before text processing.

    Inheritance
    System.Object
    QueryBuilder
    SimpleQueryParser
    Inherited Members
    QueryBuilder.CreateBooleanQuery(String, String)
    QueryBuilder.CreateBooleanQuery(String, String, Occur)
    QueryBuilder.CreatePhraseQuery(String, String)
    QueryBuilder.CreatePhraseQuery(String, String, Int32)
    QueryBuilder.CreateMinShouldMatchQuery(String, String, Single)
    QueryBuilder.Analyzer
    QueryBuilder.EnablePositionIncrements
    QueryBuilder.CreateFieldQuery(Analyzer, Occur, String, String, Boolean, Int32)
    QueryBuilder.NewBooleanQuery(Boolean)
    QueryBuilder.NewTermQuery(Term)
    QueryBuilder.NewPhraseQuery()
    QueryBuilder.NewMultiPhraseQuery()
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.ToString()
    Namespace: Lucene.Net.QueryParsers.Simple
    Assembly: Lucene.Net.QueryParser.dll
    Syntax
    public class SimpleQueryParser : QueryBuilder

    Constructors

    | Improve this Doc View Source

    SimpleQueryParser(Analyzer, IDictionary<String, Single>)

    Creates a new parser searching over multiple fields with different weights.

    Declaration
    public SimpleQueryParser(Analyzer analyzer, IDictionary<string, float> weights)
    Parameters
    Type Name Description
    Analyzer analyzer
    System.Collections.Generic.IDictionary<System.String, System.Single> weights
    | Improve this Doc View Source

    SimpleQueryParser(Analyzer, IDictionary<String, Single>, Operator)

    Creates a new parser with custom flags used to enable/disable certain features.

    Declaration
    public SimpleQueryParser(Analyzer analyzer, IDictionary<string, float> weights, Operator flags)
    Parameters
    Type Name Description
    Analyzer analyzer
    System.Collections.Generic.IDictionary<System.String, System.Single> weights
    Operator flags
    | Improve this Doc View Source

    SimpleQueryParser(Analyzer, String)

    Creates a new parser searching over a single field.

    Declaration
    public SimpleQueryParser(Analyzer analyzer, string field)
    Parameters
    Type Name Description
    Analyzer analyzer
    System.String field

    Fields

    | Improve this Doc View Source

    m_flags

    flags to the parser (to turn features on/off)

    Declaration
    protected readonly Operator m_flags
    Field Value
    Type Description
    Operator
    | Improve this Doc View Source

    m_weights

    Map of fields to query against with their weights

    Declaration
    protected readonly IDictionary<string, float> m_weights
    Field Value
    Type Description
    System.Collections.Generic.IDictionary<System.String, System.Single>

    Properties

    | Improve this Doc View Source

    DefaultOperator

    Gets or Sets the implicit operator setting, which will be either SHOULD or MUST.

    Declaration
    public virtual Occur DefaultOperator { get; set; }
    Property Value
    Type Description
    Occur

    Methods

    | Improve this Doc View Source

    NewDefaultQuery(String)

    Factory method to generate a standard query (no phrase or prefix operators).

    Declaration
    protected virtual Query NewDefaultQuery(string text)
    Parameters
    Type Name Description
    System.String text
    Returns
    Type Description
    Query
    | Improve this Doc View Source

    NewFuzzyQuery(String, Int32)

    Factory method to generate a fuzzy query.

    Declaration
    protected virtual Query NewFuzzyQuery(string text, int fuzziness)
    Parameters
    Type Name Description
    System.String text
    System.Int32 fuzziness
    Returns
    Type Description
    Query
    | Improve this Doc View Source

    NewPhraseQuery(String, Int32)

    Factory method to generate a phrase query with slop.

    Declaration
    protected virtual Query NewPhraseQuery(string text, int slop)
    Parameters
    Type Name Description
    System.String text
    System.Int32 slop
    Returns
    Type Description
    Query
    | Improve this Doc View Source

    NewPrefixQuery(String)

    Factory method to generate a prefix query.

    Declaration
    protected virtual Query NewPrefixQuery(string text)
    Parameters
    Type Name Description
    System.String text
    Returns
    Type Description
    Query
    | Improve this Doc View Source

    Parse(String)

    Parses the query text and returns parsed query (or null if empty)

    Declaration
    public Query Parse(string queryText)
    Parameters
    Type Name Description
    System.String queryText
    Returns
    Type Description
    Query
    | Improve this Doc View Source

    Simplify(BooleanQuery)

    Helper to simplify boolean queries with 0 or 1 clause

    Declaration
    protected virtual Query Simplify(BooleanQuery bq)
    Parameters
    Type Name Description
    BooleanQuery bq
    Returns
    Type Description
    Query
    • Improve this Doc
    • View Source
    Back to top Copyright © 2019 Licensed to the Apache Software Foundation (ASF)