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

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

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.dsi.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.dsi.mg4j.query.parser.SimpleParserConstants
ALIGN, AND, CLOSE_ENLARGE, CLOSE_PAREN, CLOSE_RANGE, COLON, DEFAULT, EOF, HOLE, INTERVAL_SEPARATOR, MINUS, NOT, OAND, OPEN_ENLARGE, OPEN_PAREN, OPEN_RANGE, OR, PLUS, PREFIX, QUOTE, SHARP, TILDA, tokenImage, 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()
           
 void disable_tracing()
           
 void enable_tracing()
           
 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(String text)
          Parses the given query, returning the corresponding query result.
 Query query(String indexAlias)
          Starting rule for a difference query.
 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)
           
 
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>
Specified by:
copy in interface QueryParser

parse

public Query parse(String text)
            throws QueryParserException
Parses the given query, returning the corresponding query result.

Specified by:
parse in interface QueryParser
Parameters:
text - the query to be parsed.
Returns:
an abstract representation of query.
Throws:
QueryParserException - if a parse exception has taken place during query parsing.
TokenMgrError - if a tokenization exception has taken place during query parsing.

query

public final Query query(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()