org.apache.solr.search
Class QueryParsing

java.lang.Object
  extended by org.apache.solr.search.QueryParsing

public class QueryParsing
extends Object

Collection of static utilities useful for query parsing.


Nested Class Summary
static class QueryParsing.StrParser
          Simple class to help with parsing a string.
 
Field Summary
static String DEFTYPE
           
static String DOCID
           
static String F
           
static char LOCALPARAM_END
           
static String LOCALPARAM_START
           
static String OP
           
static String SCORE
           
static String TYPE
           
static String V
           
static String VAL_EXPLICIT
           
 
Constructor Summary
QueryParsing()
           
 
Method Summary
static String encodeLocalParamVal(String val)
           
static String getDefaultField(IndexSchema s, String df)
          Returns the effective default field based on the 'df' param or hardcoded schema default.
static SolrParams getLocalParams(String txt, SolrParams params)
          "foo" returns null "{!prefix f=myfield}yes" returns type="prefix",f="myfield",v="yes" "{!prefix f=myfield v=$p}" returns type="prefix",f="myfield",v=params.get("p")
static QueryParser.Operator getQueryParserDefaultOperator(IndexSchema sch, String override)
          Returns the "preferred" default operator for use by Query Parsers, based on the settings in the IndexSchema which may be overridden using an optional String override value.
static int parseLocalParams(String txt, int start, Map<String,String> target, SolrParams params)
           
static int parseLocalParams(String txt, int start, Map<String,String> target, SolrParams params, String startString, char endChar)
           
static Sort parseSort(String sortSpec, SolrQueryRequest req)
          Returns null if the sortSpec is the standard sort desc.
static List<String> toString(List<Query> queries, IndexSchema schema)
          Builds a list of String which are stringified versions of a list of Queries
static String toString(Query query, IndexSchema schema)
          Formats a Query for debugging, using the IndexSchema to make complex field types readable.
static void toString(Query query, IndexSchema schema, Appendable out, int flags)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

OP

public static final String OP
See Also:
Constant Field Values

V

public static final String V
See Also:
Constant Field Values

F

public static final String F
See Also:
Constant Field Values

TYPE

public static final String TYPE
See Also:
Constant Field Values

DEFTYPE

public static final String DEFTYPE
See Also:
Constant Field Values

LOCALPARAM_START

public static final String LOCALPARAM_START
See Also:
Constant Field Values

LOCALPARAM_END

public static final char LOCALPARAM_END
See Also:
Constant Field Values

DOCID

public static final String DOCID
See Also:
Constant Field Values

SCORE

public static final String SCORE
See Also:
Constant Field Values

VAL_EXPLICIT

public static final String VAL_EXPLICIT
See Also:
Constant Field Values
Constructor Detail

QueryParsing

public QueryParsing()
Method Detail

getQueryParserDefaultOperator

public static QueryParser.Operator getQueryParserDefaultOperator(IndexSchema sch,
                                                                 String override)
Returns the "preferred" default operator for use by Query Parsers, based on the settings in the IndexSchema which may be overridden using an optional String override value.

See Also:
IndexSchema.getQueryParserDefaultOperator(), OP

getDefaultField

public static String getDefaultField(IndexSchema s,
                                     String df)
Returns the effective default field based on the 'df' param or hardcoded schema default. May be null if either exists specified.

See Also:
CommonParams.DF, IndexSchema.getDefaultSearchFieldName()

parseLocalParams

public static int parseLocalParams(String txt,
                                   int start,
                                   Map<String,String> target,
                                   SolrParams params)
                            throws SyntaxError
Throws:
SyntaxError

parseLocalParams

public static int parseLocalParams(String txt,
                                   int start,
                                   Map<String,String> target,
                                   SolrParams params,
                                   String startString,
                                   char endChar)
                            throws SyntaxError
Throws:
SyntaxError

encodeLocalParamVal

public static String encodeLocalParamVal(String val)

getLocalParams

public static SolrParams getLocalParams(String txt,
                                        SolrParams params)
                                 throws SyntaxError
"foo" returns null "{!prefix f=myfield}yes" returns type="prefix",f="myfield",v="yes" "{!prefix f=myfield v=$p}" returns type="prefix",f="myfield",v=params.get("p")

Throws:
SyntaxError

parseSort

public static Sort parseSort(String sortSpec,
                             SolrQueryRequest req)
Returns null if the sortSpec is the standard sort desc.

The form of the sort specification string currently parsed is:

 SortSpec ::= SingleSort [, SingleSort]*
 SingleSort ::= <fieldname> SortDirection
 SortDirection ::= top | desc | bottom | asc
 
Examples:
   score desc               #normal sort by score (will return null)
   weight bottom            #sort by weight ascending
   weight desc              #sort by weight descending
   height desc,weight desc  #sort by height descending, and use weight descending to break any ties
   height desc,weight asc   #sort by height descending, using weight ascending as a tiebreaker
 


toString

public static void toString(Query query,
                            IndexSchema schema,
                            Appendable out,
                            int flags)
                     throws IOException
Throws:
IOException
See Also:
toString(Query,IndexSchema)

toString

public static String toString(Query query,
                              IndexSchema schema)
Formats a Query for debugging, using the IndexSchema to make complex field types readable.

The benefit of using this method instead of calling Query.toString directly is that it knows about the data types of each field, so any field which is encoded in a particularly complex way is still readable. The downside is that it only knows about built in Query types, and will not be able to format custom Query classes.


toString

public static List<String> toString(List<Query> queries,
                                    IndexSchema schema)
Builds a list of String which are stringified versions of a list of Queries



Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.