public class QueryParser extends java.lang.Object implements QueryParserConstants
parse()
.
This parser generates queries that make use of position information
(Span queries). It provides positional operators (w
and
n
) that accept a numeric distance, as well as boolean
operators (and
, or
, and not
,
wildcards (*
and ?
), quoting (with
"
), and boosting (via ^
).
The operators (W, N, AND, OR, NOT) can be expressed lower-cased or
upper-cased, and the non-unary operators (everything but NOT) support
both infix (a AND b AND c)
and prefix AND(a, b,
c)
notation.
The W and N operators express a positional relationship among their operands. W is ordered, and N is unordered. The distance is 1 by default, meaning the operands are adjacent, or may be provided as a prefix from 2-99. So, for example, 3W(a, b) means that terms a and b must appear within three positions of each other, or in other words, up to two terms may appear between a and b.
Modifier and Type | Class and Description |
---|---|
(package private) static class |
QueryParser.JJCalls |
private static class |
QueryParser.LookaheadSuccess |
Modifier and Type | Field and Description |
---|---|
(package private) static char |
ANY_CHAR |
(package private) static java.lang.String |
BOOST_ERROR_MESSAGE |
(package private) static char |
FIELD_OPERATOR |
private QueryParser.JJCalls[] |
jj_2_rtns |
private int |
jj_endpos |
private java.util.List<int[]> |
jj_expentries |
private int[] |
jj_expentry |
private int |
jj_gc |
private int |
jj_gen |
private int |
jj_kind |
private int |
jj_la |
private int[] |
jj_la1 |
private static int[] |
jj_la1_0 |
private Token |
jj_lastpos |
private int[] |
jj_lasttokens |
private QueryParser.LookaheadSuccess |
jj_ls |
Token |
jj_nt
Next token.
|
private int |
jj_ntk |
private boolean |
jj_rescan |
private Token |
jj_scanpos |
(package private) static int |
MINIMUM_CHARS_IN_TRUNC |
(package private) static int |
MINIMUM_PREFIX_LENGTH |
Token |
token
Current token.
|
QueryParserTokenManager |
token_source
Generated Token Manager.
|
(package private) static java.lang.String |
TRUNCATION_ERROR_MESSAGE |
(package private) static char |
TRUNCATOR |
_DISTOP_NUM, _NUM_CHAR, _ONE_CHAR, _STAR, _TERM_CHAR, _WHITESPACE, AND, Boost, CARAT, COLON, COMMA, DEFAULT, EOF, LPAREN, N, NOT, NUMBER, OR, QUOTED, RPAREN, SUFFIXTERM, TERM, tokenImage, TRUNCQUOTED, TRUNCTERM, W
Constructor and Description |
---|
QueryParser() |
QueryParser(CharStream stream)
Constructor with user supplied CharStream.
|
QueryParser(QueryParserTokenManager tm)
Constructor with generated Token Manager.
|
Modifier and Type | Method and Description |
---|---|
protected boolean |
allowedSuffix(java.lang.String suffixed) |
protected boolean |
allowedTruncation(java.lang.String truncated) |
SrndQuery |
AndQuery() |
protected static void |
checkDistanceSubQueries(DistanceQuery distq,
java.lang.String opName) |
void |
disable_tracing()
Disable tracing.
|
void |
enable_tracing()
Enable tracing.
|
SrndQuery |
FieldsQuery() |
java.util.List<SrndQuery> |
FieldsQueryList() |
ParseException |
generateParseException()
Generate ParseException.
|
protected SrndQuery |
getAndQuery(java.util.List<SrndQuery> queries,
boolean infix,
Token andToken) |
protected SrndQuery |
getDistanceQuery(java.util.List<SrndQuery> queries,
boolean infix,
Token dToken,
boolean ordered) |
protected SrndQuery |
getFieldsQuery(SrndQuery q,
java.util.ArrayList<java.lang.String> fieldNames) |
Token |
getNextToken()
Get the next Token.
|
protected SrndQuery |
getNotQuery(java.util.List<SrndQuery> queries,
Token notToken) |
protected static int |
getOpDistance(java.lang.String distanceOp) |
protected SrndQuery |
getOrQuery(java.util.List<SrndQuery> queries,
boolean infix,
Token orToken) |
protected SrndQuery |
getPrefixQuery(java.lang.String prefix,
boolean quoted) |
protected SrndQuery |
getTermQuery(java.lang.String term,
boolean quoted) |
Token |
getToken(int index)
Get the specific Token.
|
protected SrndQuery |
getTruncQuery(java.lang.String truncated) |
private boolean |
jj_2_1(int xla) |
private boolean |
jj_3_1() |
private void |
jj_add_error_token(int kind,
int pos) |
private Token |
jj_consume_token(int kind) |
private static void |
jj_la1_init_0() |
private int |
jj_ntk() |
private void |
jj_rescan_token() |
private void |
jj_save(int index,
int xla) |
private boolean |
jj_scan_token(int kind) |
SrndQuery |
NotQuery() |
SrndQuery |
NQuery() |
java.util.ArrayList<java.lang.String> |
OptionalFields() |
void |
OptionalWeights(SrndQuery q) |
SrndQuery |
OrQuery() |
static SrndQuery |
parse(java.lang.String query) |
SrndQuery |
parse2(java.lang.String query) |
SrndQuery |
PrefixOperatorQuery() |
SrndQuery |
PrimaryQuery() |
void |
ReInit(CharStream stream)
Reinitialise.
|
void |
ReInit(QueryParserTokenManager tm)
Reinitialise.
|
SrndQuery |
SimpleTerm() |
SrndQuery |
TopSrndQuery() |
SrndQuery |
WQuery() |
static final int MINIMUM_PREFIX_LENGTH
static final int MINIMUM_CHARS_IN_TRUNC
static final java.lang.String TRUNCATION_ERROR_MESSAGE
static final java.lang.String BOOST_ERROR_MESSAGE
static final char TRUNCATOR
static final char ANY_CHAR
static final char FIELD_OPERATOR
public QueryParserTokenManager token_source
public Token token
public Token jj_nt
private int jj_ntk
private Token jj_scanpos
private Token jj_lastpos
private int jj_la
private int jj_gen
private final int[] jj_la1
private static int[] jj_la1_0
private final QueryParser.JJCalls[] jj_2_rtns
private boolean jj_rescan
private int jj_gc
private final QueryParser.LookaheadSuccess jj_ls
private java.util.List<int[]> jj_expentries
private int[] jj_expentry
private int jj_kind
private int[] jj_lasttokens
private int jj_endpos
public QueryParser()
public QueryParser(CharStream stream)
public QueryParser(QueryParserTokenManager tm)
public static SrndQuery parse(java.lang.String query) throws ParseException
ParseException
public SrndQuery parse2(java.lang.String query) throws ParseException
ParseException
protected SrndQuery getFieldsQuery(SrndQuery q, java.util.ArrayList<java.lang.String> fieldNames)
protected SrndQuery getOrQuery(java.util.List<SrndQuery> queries, boolean infix, Token orToken)
protected SrndQuery getAndQuery(java.util.List<SrndQuery> queries, boolean infix, Token andToken)
protected static int getOpDistance(java.lang.String distanceOp)
protected static void checkDistanceSubQueries(DistanceQuery distq, java.lang.String opName) throws ParseException
ParseException
protected SrndQuery getDistanceQuery(java.util.List<SrndQuery> queries, boolean infix, Token dToken, boolean ordered) throws ParseException
ParseException
protected SrndQuery getTermQuery(java.lang.String term, boolean quoted)
protected boolean allowedSuffix(java.lang.String suffixed)
protected SrndQuery getPrefixQuery(java.lang.String prefix, boolean quoted)
protected boolean allowedTruncation(java.lang.String truncated)
protected SrndQuery getTruncQuery(java.lang.String truncated)
public final SrndQuery TopSrndQuery() throws ParseException
ParseException
public final SrndQuery FieldsQuery() throws ParseException
ParseException
public final java.util.ArrayList<java.lang.String> OptionalFields() throws ParseException
ParseException
public final SrndQuery OrQuery() throws ParseException
ParseException
public final SrndQuery AndQuery() throws ParseException
ParseException
public final SrndQuery NotQuery() throws ParseException
ParseException
public final SrndQuery NQuery() throws ParseException
ParseException
public final SrndQuery WQuery() throws ParseException
ParseException
public final SrndQuery PrimaryQuery() throws ParseException
ParseException
public final SrndQuery PrefixOperatorQuery() throws ParseException
ParseException
public final java.util.List<SrndQuery> FieldsQueryList() throws ParseException
ParseException
public final SrndQuery SimpleTerm() throws ParseException
ParseException
public final void OptionalWeights(SrndQuery q) throws ParseException
ParseException
private boolean jj_2_1(int xla)
private boolean jj_3_1()
private static void jj_la1_init_0()
public void ReInit(CharStream stream)
public void ReInit(QueryParserTokenManager tm)
private Token jj_consume_token(int kind) throws ParseException
ParseException
private boolean jj_scan_token(int kind)
public final Token getNextToken()
public final Token getToken(int index)
private int jj_ntk()
private void jj_add_error_token(int kind, int pos)
public ParseException generateParseException()
public final void enable_tracing()
public final void disable_tracing()
private void jj_rescan_token()
private void jj_save(int index, int xla)