Class QParser

    • Field Detail

      • FLAG_FILTER

        public static final int FLAG_FILTER
        See Also:
        Constant Field Values
        WARNING: This API is experimental and might change in incompatible ways in the next release.
      • recurseCount

        protected int recurseCount
      • flags

        protected int flags
        WARNING: This API is experimental and might change in incompatible ways in the next release.
      • query

        protected org.apache.lucene.search.Query query
      • stringIncludingLocalParams

        protected String stringIncludingLocalParams
      • valFollowedParams

        protected boolean valFollowedParams
      • localParamsEnd

        protected int localParamsEnd
    • Constructor Detail

      • QParser

        public QParser​(String qstr,
                       SolrParams localParams,
                       SolrParams params,
                       SolrQueryRequest req)
        Constructor for the QParser
        Parameters:
        qstr - The part of the query string specific to this parser
        localParams - The set of parameters that are specific to this QParser. See https://solr.apache.org/guide/local-parameters-in-queries.html
        params - The rest of the SolrParams
        req - The original SolrQueryRequest.
    • Method Detail

      • setFlags

        public void setFlags​(int flags)
        WARNING: This API is experimental and might change in incompatible ways in the next release.
      • getFlags

        public int getFlags()
        WARNING: This API is experimental and might change in incompatible ways in the next release.
      • isFilter

        public boolean isFilter()
        WARNING: This API is experimental and might change in incompatible ways in the next release.
        Query is in the context of a filter, where scores don't matter
      • setIsFilter

        public void setIsFilter​(boolean isFilter)
        WARNING: This API is experimental and might change in incompatible ways in the next release.
      • parse

        public abstract org.apache.lucene.search.Query parse()
                                                      throws SyntaxError
        Create and return the Query object represented by qstr. Null MAY be returned to signify there was no input (e.g. no query string) to parse.
        Throws:
        SyntaxError
        See Also:
        getQuery()
      • getLocalParams

        public SolrParams getLocalParams()
      • setLocalParams

        public void setLocalParams​(SolrParams localParams)
      • setParams

        public void setParams​(SolrParams params)
      • getString

        public String getString()
      • setString

        public void setString​(String s)
      • getQuery

        public org.apache.lucene.search.Query getQuery()
                                                throws SyntaxError
        Returns the resulting query from this QParser, calling parse() only the first time and caching the Query result. A null return is possible!
        Throws:
        SyntaxError
      • getParam

        public String getParam​(String name)
        check both local and global params
      • getSortSpec

        public SortSpec getSortSpec​(boolean useGlobalParams)
                             throws SyntaxError
        Parameters:
        useGlobalParams - look up sort, start, rows in global params if not in local params
        Returns:
        the sort specification
        Throws:
        SyntaxError
      • getDefaultHighlightFields

        public String[] getDefaultHighlightFields()
      • getHighlightQuery

        public org.apache.lucene.search.Query getHighlightQuery()
                                                         throws SyntaxError
        Throws:
        SyntaxError
      • getParser

        public static QParser getParser​(String qstr,
                                        SolrQueryRequest req)
                                 throws SyntaxError
        Create a QParser to parse qstr, using the "lucene" (QParserPlugin.DEFAULT_QTYPE) query parser. The query parser may be overridden by local-params in the query string itself. For example if qstr={!prefix f=myfield}foo then the prefix query parser will be used.
        Throws:
        SyntaxError
      • getParser

        public static QParser getParser​(String qstr,
                                        String parserName,
                                        boolean allowLocalParams,
                                        SolrQueryRequest req)
                                 throws SyntaxError
        Expert: Create a QParser to parse qstr using the parserName parser, while allowing a toggle for whether local-params may be parsed. The query parser may be overridden by local parameters in the query string itself (assuming allowLocalParams. For example if parserName=dismax and qstr=foo, then the dismax query parser will be used to parse and construct the query object. However if qstr= {!prefix f=myfield}foo then the prefix query parser will be used.
        Parameters:
        allowLocalParams - Whether this query parser should parse local-params syntax. Note that the "lucene" query parser natively parses local-params regardless.
        Throws:
        SyntaxError
        NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.