org.apache.solr.search
Class QueryParsing

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

public class QueryParsing
extends java.lang.Object

Collection of static utilities usefull for query parsing.

Version:
$Id: QueryParsing.java 542679 2007-05-29 22:28:21Z ryan $
Author:
yonik

Nested Class Summary
static class QueryParsing.SortSpec
          SortSpec encapsulates a Lucene Sort and a count of the number of documents to return.
 
Field Summary
static java.lang.String OP
          the SolrParam used to override the QueryParser "default operator"
 
Constructor Summary
QueryParsing()
           
 
Method Summary
static FunctionQuery parseFunction(java.lang.String func, IndexSchema schema)
          Parse a function, returning a FunctionQuery
static org.apache.lucene.search.Query parseQuery(java.lang.String qs, IndexSchema schema)
          Helper utility for parsing a query using the Lucene QueryParser syntax.
static org.apache.lucene.search.Query parseQuery(java.lang.String qs, java.lang.String defaultField, IndexSchema schema)
          Helper utility for parsing a query using the Lucene QueryParser syntax.
static org.apache.lucene.search.Query parseQuery(java.lang.String qs, java.lang.String defaultField, SolrParams params, IndexSchema schema)
          Helper utility for parsing a query using the Lucene QueryParser syntax.
static QueryParsing.SortSpec parseSort(java.lang.String sortSpec, IndexSchema schema)
          Returns null if the sortSpec is the standard sort desc.
static java.util.List<java.lang.String> toString(java.util.List<org.apache.lucene.search.Query> queries, IndexSchema schema)
          Builds a list of String which are stringified versions of a list of Queries
static java.lang.String toString(org.apache.lucene.search.Query query, IndexSchema schema)
          Formats a Query for debugging, using the IndexSchema to make complex field types readable.
static void toString(org.apache.lucene.search.Query query, IndexSchema schema, java.lang.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 java.lang.String OP
the SolrParam used to override the QueryParser "default operator"

See Also:
Constant Field Values
Constructor Detail

QueryParsing

public QueryParsing()
Method Detail

parseQuery

public static org.apache.lucene.search.Query parseQuery(java.lang.String qs,
                                                        IndexSchema schema)
Helper utility for parsing a query using the Lucene QueryParser syntax.

Parameters:
qs - query expression in standard Lucene syntax
schema - used for default operator (overridden by params) and passed to the query parser for field format analysis information

parseQuery

public static org.apache.lucene.search.Query parseQuery(java.lang.String qs,
                                                        java.lang.String defaultField,
                                                        IndexSchema schema)
Helper utility for parsing a query using the Lucene QueryParser syntax.

Parameters:
qs - query expression in standard Lucene syntax
defaultField - default field used for unqualified search terms in the query expression
schema - used for default operator (overridden by params) and passed to the query parser for field format analysis information

parseQuery

public static org.apache.lucene.search.Query parseQuery(java.lang.String qs,
                                                        java.lang.String defaultField,
                                                        SolrParams params,
                                                        IndexSchema schema)
Helper utility for parsing a query using the Lucene QueryParser syntax.

Parameters:
qs - query expression in standard Lucene syntax
defaultField - default field used for unqualified search terms in the query expression
params - used to determine the default operator, overriding the schema specified operator
schema - used for default operator (overridden by params) and passed to the query parser for field format analysis information

parseSort

public static QueryParsing.SortSpec parseSort(java.lang.String sortSpec,
                                              IndexSchema schema)
Returns null if the sortSpec is the standard sort desc.

The form of the sort specification string currently parsed is:

>
 SortSpec ::= SingleSort [, SingleSort]*
 SingleSort ::=  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(org.apache.lucene.search.Query query,
                            IndexSchema schema,
                            java.lang.Appendable out,
                            int flags)
                     throws java.io.IOException
Throws:
java.io.IOException
See Also:
toString(Query,IndexSchema)

toString

public static java.lang.String toString(org.apache.lucene.search.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 java.util.List<java.lang.String> toString(java.util.List<org.apache.lucene.search.Query> queries,
                                                        IndexSchema schema)
Builds a list of String which are stringified versions of a list of Queries


parseFunction

public static FunctionQuery parseFunction(java.lang.String func,
                                          IndexSchema schema)
                                   throws org.apache.lucene.queryParser.ParseException
Parse a function, returning a FunctionQuery

Syntax Examples....

 // Numeric fields default to correct type
 // (ie: IntFieldSource or FloatFieldSource)
 // Others use implicit ord(...) to generate numeric field value
 myfield

 // OrdFieldSource
 ord(myfield)

 // ReverseOrdFieldSource
 rord(myfield)

 // LinearFloatFunction on numeric field value
 linear(myfield,1,2)

 // MaxFloatFunction of LinearFloatFunction on numeric field value or constant
 max(linear(myfield,1,2),100)

 // ReciprocalFloatFunction on numeric field value
 recip(myfield,1,2,3)

 // ReciprocalFloatFunction on ReverseOrdFieldSource
 recip(rord(myfield),1,2,3)

 // ReciprocalFloatFunction on LinearFloatFunction on ReverseOrdFieldSource
 recip(linear(rord(myfield),1,2),3,4,5)
 

Throws:
org.apache.lucene.queryParser.ParseException


Copyright © 2006 - 2009 The Apache Software Foundation