it.unimi.di.mg4j.query.parser
Class SimpleParser

java.lang.Object
  extended by it.unimi.di.mg4j.query.parser.SimpleParser
All Implemented Interfaces:
QueryParser, SimpleParserConstants, FlyweightPrototype<QueryParser>

public class SimpleParser
extends Object
implements QueryParser, SimpleParserConstants

A simple parser that transform a query string into a query.

The parser supports multiple indices. You must provide a set of index aliases that the user will use to select indices, and the name of the default index alias to be used. After that, you parse a query by using the parse(String) method.

The parser generated by JavaCC for this class will break terms using operators and nonspace-to-space transitions. Operators can be included in terms, if needed, using the backslash, which acts as an escape character, and makes the next character (usually an operator) a standard character. The syntax of the parser can be seen in action in the documentation of the package it.unimi.di.mg4j.search.

The parser returns a Query—an abstract representation of the query string that can be turned later into a DocumentIterator.

If a TermProcessor is specified, it will be applied to the terms found in the query string. This can lead to transformations (e.g., downcasing) or generate an exception if the query string contains terms filtered by the term processor.

Since:
1.0.1
Author:
Sebastiano Vigna, Paolo Boldi

Field Summary
 String defaultIndex
          The default index alias.
 Set<String> indices
          The set of index aliases.
 Token jj_nt
           
 boolean lookingAhead
           
 Map<String,? extends TermProcessor> termProcessors
          The term processor for each index.
 Token token
           
 SimpleParserTokenManager token_source
           
 
Fields inherited from interface it.unimi.di.mg4j.query.parser.SimpleParserConstants
ALIGN, AND, CLOSE_ENLARGE, CLOSE_PAREN, CLOSE_RANGE, CLOSE_REMAP, CLOSE_WEIGHT, COLON, DEFAULT, EOF, FALSE, HOLE, INTERVAL_SEPARATOR, MINUS, NOT, OAND, OPEN_ENLARGE, OPEN_PAREN, OPEN_RANGE, OPEN_REMAP, OPEN_WEIGHT, OR, PLUS, PREFIX, QUOTE, REMAP, SEMICOLON, SHARP, TILDA, tokenImage, TRUE, WORD
 
Constructor Summary
SimpleParser()
          Creates a parser for a single nameless index with no term processing.
SimpleParser(InputStream stream)
           
SimpleParser(InputStream stream, String encoding)
           
SimpleParser(Reader stream)
           
SimpleParser(Set<String> indices, String defaultIndex)
          Creates a parser with no term processing.
SimpleParser(Set<String> indices, String defaultIndex, Map<String,? extends TermProcessor> termProcessors)
          Creates a parser.
SimpleParser(SimpleParserTokenManager tm)
           
SimpleParser(TermProcessor termProcessor)
          Creates a parser for a single nameless index with a given term processor.
 
Method Summary
 Query alignQuery(String indexAlias)
          Starting rule for an alignment query.
 Query andQuery(String indexAlias)
          Starting rule for an AND-query (the AND token is optional).
 Query atomicQuery(String indexAlias)
          Starting rule for an atomic query.
 Query atomicSimpleQuery(String indexAlias)
          Starting rule for an atomic simple query.
 SimpleParser copy()
           
 Query differenceQuery(String indexAlias)
          Starting rule for a difference query.
 void disable_tracing()
           
 void enable_tracing()
           
 MutableString escape(MutableString token)
          Escapes the provided mutable string, making it into a text token.
 String escape(String token)
          Escapes the provided string, making it into a text token.
 ParseException generateParseException()
           
 Token getNextToken()
           
 Token getToken(int index)
           
 Query multiTermQuery(String indexAlias)
          Starting rule for a multiterm query.
 Query orderedAndQuery(String indexAlias)
          Starting rule for an AND<-query.
 Query orQuery(String indexAlias)
          Starting rule for a OR-query.
 Query parse(MutableString text)
          Turns the given query mutable string into a composite Query object.
 Query parse(String text)
          Turns the given query string into a composite Query object.
 Query query(String indexAlias)
          Parser.
 Query quotedQuery(String indexAlias)
          Starting rule for a quoted query.
 void ReInit(InputStream stream)
           
 void ReInit(InputStream stream, String encoding)
           
 void ReInit(Reader stream)
           
 void ReInit(SimpleParserTokenManager tm)
           
 Query remappedQuery(String indexAlias)
          Starting rule for a remapped query.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

indices

public Set<String> indices
The set of index aliases.


defaultIndex

public String defaultIndex
The default index alias.


termProcessors

public Map<String,? extends TermProcessor> termProcessors
The term processor for each index.


token_source

public SimpleParserTokenManager token_source

token

public Token token

jj_nt

public Token jj_nt

lookingAhead

public boolean lookingAhead
Constructor Detail

SimpleParser

public SimpleParser(Set<String> indices,
                    String defaultIndex,
                    Map<String,? extends TermProcessor> termProcessors)
Creates a parser.

Parameters:
indices - the set of index aliases.
defaultIndex - the default index alias to be used when parsing the query.
termProcessors - a map from index aliases to the corresponding term processor, or null for no term processing.

SimpleParser

public SimpleParser(Set<String> indices,
                    String defaultIndex)
Creates a parser with no term processing.

Parameters:
indices - the set of index aliases.
defaultIndex - the default index alias to be used when parsing the query.

SimpleParser

public SimpleParser()
Creates a parser for a single nameless index with no term processing.

Parsers created by this constructor allow only nameless access, both in the query and in the interval-iterator methods.


SimpleParser

public SimpleParser(TermProcessor termProcessor)
Creates a parser for a single nameless index with a given term processor.

Parsers created by this constructor allow only nameless access, both in the query and in the interval-iterator methods.


SimpleParser

public SimpleParser(InputStream stream)

SimpleParser

public SimpleParser(InputStream stream,
                    String encoding)

SimpleParser

public SimpleParser(Reader stream)

SimpleParser

public SimpleParser(SimpleParserTokenManager tm)
Method Detail

copy

public SimpleParser copy()
Specified by:
copy in interface FlyweightPrototype<QueryParser>

escape

public String escape(String token)
Description copied from interface: QueryParser
Escapes the provided string, making it into a text token.

Specified by:
escape in interface QueryParser
Parameters:
token - a wannabe text token (maybe containing special characters, but no character below code 32).
Returns:
an escaped representation of token that will be interpreted as a text token by this parser.

escape

public MutableString escape(MutableString token)
Description copied from interface: QueryParser
Escapes the provided mutable string, making it into a text token.

Specified by:
escape in interface QueryParser
Parameters:
token - a wannabe text token (maybe containing special characters, but no character below code 32).
Returns:
token, escaped so that it will be interpreted as a text token by this parser.

parse

public Query parse(String text)
            throws QueryParserException
Description copied from interface: QueryParser
Turns the given query string into a composite Query object.

Specified by:
parse in interface QueryParser
Parameters:
text - a string representing a query.
Returns:
the corresponding composite object.
Throws:
QueryParserException

parse

public Query parse(MutableString text)
            throws QueryParserException
Description copied from interface: QueryParser
Turns the given query mutable string into a composite Query object.

Specified by:
parse in interface QueryParser
Parameters:
text - a mutable string representing a query.
Returns:
the corresponding composite object.
Throws:
QueryParserException

query

public final Query query(String indexAlias)
                  throws ParseException
Parser.

Throws:
ParseException

remappedQuery

public final Query remappedQuery(String indexAlias)
                          throws ParseException
Starting rule for a remapped query.

Parameters:
indexAlias - the index alias for the default index to be used for the query that is going to be parsed.
Returns:
the result of the query.
Throws:
ParseException

differenceQuery

public final Query differenceQuery(String indexAlias)
                            throws ParseException
Starting rule for a difference query.

Parameters:
indexAlias - the index alias for the default index to be used for the query that is going to be parsed.
Returns:
the result of the query.
Throws:
ParseException

orQuery

public final Query orQuery(String indexAlias)
                    throws ParseException
Starting rule for a OR-query.

Parameters:
indexAlias - the index alias for the default index to be used for the query that is going to be parsed.
Returns:
the result of the query.
Throws:
ParseException

andQuery

public final Query andQuery(String indexAlias)
                     throws ParseException
Starting rule for an AND-query (the AND token is optional).

Parameters:
indexAlias - the index alias for the default index to be used for the query that is going to be parsed.
Returns:
the result of the query.
Throws:
ParseException

orderedAndQuery

public final Query orderedAndQuery(String indexAlias)
                            throws ParseException
Starting rule for an AND<-query.

Parameters:
indexAlias - the index alias for the default index to be used for the query that is going to be parsed.
Returns:
the result of the query.
Throws:
ParseException

alignQuery

public final Query alignQuery(String indexAlias)
                       throws ParseException
Starting rule for an alignment query.

Parameters:
indexAlias - the index alias for the default index to be used for the query that is going to be parsed.
Returns:
the result of the query.
Throws:
ParseException

multiTermQuery

public final Query multiTermQuery(String indexAlias)
                           throws ParseException
Starting rule for a multiterm query.

Parameters:
indexAlias - the index alias for the default index to be used for the query that is going to be parsed.
Returns:
the result of the query.
Throws:
ParseException

quotedQuery

public final Query quotedQuery(String indexAlias)
                        throws ParseException
Starting rule for a quoted query. Subqueries cannot change index.

Parameters:
indexAlias - the index alias for the default index to be used for the query that is going to be parsed.
Returns:
the result of the query.
Throws:
ParseException

atomicQuery

public final Query atomicQuery(String indexAlias)
                        throws ParseException
Starting rule for an atomic query. May be either an atomic simple query or a quoted query. It can optionally contain an index selector and a low-pass limit.

Parameters:
indexAlias - the index alias for the default index to be used for the query that is going to be parsed.
Returns:
the result of the query.
Throws:
ParseException

atomicSimpleQuery

public final Query atomicSimpleQuery(String indexAlias)
                              throws ParseException
Starting rule for an atomic simple query. May be either a word or a query enclosed within parentheses.

Parameters:
indexAlias - the index alias for the default index to be used for the query that is going to be parsed.
Returns:
the result of the query.
Throws:
ParseException

ReInit

public void ReInit(InputStream stream)

ReInit

public void ReInit(InputStream stream,
                   String encoding)

ReInit

public void ReInit(Reader stream)

ReInit

public void ReInit(SimpleParserTokenManager tm)

getNextToken

public final Token getNextToken()

getToken

public final Token getToken(int index)

generateParseException

public ParseException generateParseException()

enable_tracing

public final void enable_tracing()

disable_tracing

public final void disable_tracing()