[Missing <summary> documentation for "N:Lucene.Net.QueryParsers"]

Classes

  ClassDescription
Public classFastCharStream
An efficient implementation of JavaCC's CharStream interface.

Note that this does not do line-number counting, but instead keeps track of the character position of the token in the input, as required by Lucene's {@link Lucene.Net.Analysis.Token} API.

Public classMultiFieldQueryParser
A QueryParser which constructs queries to search multiple fields.
Public classParseException
This exception is thrown when parse errors are encountered. You can explicitly create objects of this exception type by calling the method generateParseException in the generated parser. You can modify this class to customize your error reporting mechanisms so long as you retain the public fields.
Public classQueryParser
This class is generated by JavaCC. The most important method is {@link #Parse(String)}. The syntax for query strings is as follows: A Query is a series of clauses. A clause may be prefixed by:
  • a plus (
    CopyC#
    +
    ) or a minus (
    CopyC#
    -
    ) sign, indicating that the clause is required or prohibited respectively; or
  • a term followed by a colon, indicating the field to be searched. This enables one to construct queries which search multiple fields.
A clause may be either:
  • a term, indicating all the documents that contain this term; or
  • a nested query, enclosed in parentheses. Note that this may be used with a
    CopyC#
    +
    /
    CopyC#
    -
    prefix to require any of a set of terms.
Thus, in BNF, the query grammar is:
            Query  ::= ( Clause )*
            Clause ::= ["+", "-"] [<TERM> ":"] ( <TERM> | "(" Query ")" )
            

Examples of appropriately formatted queries can be found in the query syntax documentation.

In {@link TermRangeQuery}s, QueryParser tries to detect date values, e.g. date:[6/1/2005 TO 6/4/2005] produces a range query that searches for "date" fields between 2005-06-01 and 2005-06-04. Note that the format of the accepted input depends on {@link #SetLocale(Locale) the locale}. By default a date is converted into a search term using the deprecated {@link DateField} for compatibility reasons. To use the new {@link DateTools} to convert dates, a {@link Lucene.Net.Documents.DateTools.Resolution} has to be set.

The date resolution that shall be used for RangeQueries can be set using {@link #SetDateResolution(DateTools.Resolution)} or {@link #SetDateResolution(String, DateTools.Resolution)}. The former sets the default date resolution for all fields, whereas the latter can be used to set field specific date resolutions. Field specific date resolutions take, if set, precedence over the default date resolution.

If you use neither {@link DateField} nor {@link DateTools} in your index, you can create your own query parser that inherits QueryParser and overwrites {@link #GetRangeQuery(String, String, String, boolean)} to use a different method for date conversion.

Note that QueryParser is not thread-safe.

NOTE: there is a new QueryParser in contrib, which matches the same syntax as this class, but is more modular, enabling substantial customization to how a query is created.

NOTE: there is a new QueryParser in contrib, which matches the same syntax as this class, but is more modular, enabling substantial customization to how a query is created. NOTE: You must specify the required {@link Version} compatibility when creating QueryParser:

  • As of 2.9, {@link #SetEnablePositionIncrements} is true by default.
Public classQueryParser..::..Operator
The default operator for parsing queries. Use {@link QueryParser#setDefaultOperator} to change it.
Public classQueryParserConstants
Token literal values and constants. Generated by org.javacc.parser.OtherFilesGen#start()
Public classQueryParserTokenManager
Token Manager.
Public classToken
Describes the input token stream.
Public classTokenMgrError
Token Manager Error.

Interfaces

  InterfaceDescription
Public interfaceCharStream
This interface describes a character stream that maintains line and column number positions of the characters. It also has the capability to backup the stream to some extent. An implementation of this interface is used in the TokenManager implementation generated by JavaCCParser. All the methods except backup can be implemented in any fashion. backup needs to be implemented correctly for the correct operation of the lexer. Rest of the methods are all used to get information like line number, column number and the String that constitutes a token and are not used by the lexer. Hence their implementation won't affect the generated lexer's operation.