Class QueryParserHelper

java.lang.Object
org.apache.lucene.queryparser.flexible.core.QueryParserHelper
Direct Known Subclasses:
StandardQueryParser

public class QueryParserHelper extends Object
This class is a helper for the query parser framework, it does all the three query parser phrases at once: text parsing, query processing and query building.

It contains methods that allows the user to change the implementation used on the three phases.

See Also:
  • Constructor Details

    • QueryParserHelper

      public QueryParserHelper(QueryConfigHandler queryConfigHandler, SyntaxParser syntaxParser, QueryNodeProcessor processor, QueryBuilder builder)
      Creates a query parser helper object using the specified configuration, text parser, processor and builder.
      Parameters:
      queryConfigHandler - the query configuration handler that will be initially set to this helper
      syntaxParser - the text parser that will be initially set to this helper
      processor - the query processor that will be initially set to this helper
      builder - the query builder that will be initially set to this helper
      See Also:
  • Method Details

    • getQueryNodeProcessor

      public QueryNodeProcessor getQueryNodeProcessor()
      Returns the processor object used to process the query node tree, it returns null if no processor is used.
      Returns:
      the actual processor used to process the query node tree, null if no processor is used
      See Also:
    • setQueryNodeProcessor

      public void setQueryNodeProcessor(QueryNodeProcessor processor)
      Sets the processor that will be used to process the query node tree. If there is any QueryConfigHandler returned by getQueryConfigHandler(), it will be set on the processor. The argument can be null, which means that no processor will be used to process the query node tree.
      Parameters:
      processor - the processor that will be used to process the query node tree, this argument can be null
      See Also:
    • setSyntaxParser

      public void setSyntaxParser(SyntaxParser syntaxParser)
      Sets the text parser that will be used to parse the query string, it cannot be null .
      Parameters:
      syntaxParser - the text parser that will be used to parse the query string
      See Also:
    • setQueryBuilder

      public void setQueryBuilder(QueryBuilder queryBuilder)
      The query builder that will be used to build an object from the query node tree. It cannot be null.
      Parameters:
      queryBuilder - the query builder used to build something from the query node tree
      See Also:
    • getQueryConfigHandler

      public QueryConfigHandler getQueryConfigHandler()
      Returns the query configuration handler, which is used during the query node tree processing. It can be null.
      Returns:
      the query configuration handler used on the query processing, null if not query configuration handler is defined
      See Also:
    • getQueryBuilder

      public QueryBuilder getQueryBuilder()
      Returns the query builder used to build a object from the query node tree. The object produced by this builder is returned by parse(String, String).
      Returns:
      the query builder
      See Also:
    • getSyntaxParser

      public SyntaxParser getSyntaxParser()
      Returns the text parser used to build a query node tree from a query string. The default text parser instance returned by this method is a SyntaxParser.
      Returns:
      the text parse used to build query node trees.
      See Also:
    • setQueryConfigHandler

      public void setQueryConfigHandler(QueryConfigHandler config)
      Sets the query configuration handler that will be used during query processing. It can be null. It's also set to the processor returned by getQueryNodeProcessor().
      Parameters:
      config - the query configuration handler used during query processing, it can be null
      See Also:
    • parse

      public Object parse(String query, String defaultField) throws QueryNodeException
      Parses a query string to an object, usually some query object.

      In this method the three phases are executed:

           1st - the query string is parsed using the text parser returned by getSyntaxParser(), the result is a query node tree

           2nd - the query node tree is processed by the processor returned by getQueryNodeProcessor()

           3th - a object is built from the query node tree using the builder returned by getQueryBuilder()
      Parameters:
      query - the query string
      defaultField - the default field used by the text parser
      Returns:
      the object built from the query
      Throws:
      QueryNodeException - if something wrong happens along the three phases