org.apache.accumulo.examples.wikisearch.parser
Class QueryParser
java.lang.Object
org.apache.accumulo.examples.wikisearch.parser.QueryParser
- All Implemented Interfaces:
- org.apache.commons.jexl2.parser.ParserVisitor
- Direct Known Subclasses:
- RangeCalculator
public class QueryParser
- extends Object
- implements org.apache.commons.jexl2.parser.ParserVisitor
Parses the query for the purposes of extracting terms, operators, and literals for query optimization. This class does not necessarily understand how to
parse all of the possible combinations of the JEXL syntax, but that does not mean that the query will not evaluate against the event objects. It means that
the unsupported operators will not be parsed and included in the optimization step.
Method Summary |
protected void |
decodeResults(Object left,
Object right,
StringBuilder fieldName,
org.apache.accumulo.examples.wikisearch.parser.QueryParser.ObjectHolder holder)
|
void |
execute(String query)
|
Set<String> |
getAndTermsForOptimizer()
|
org.apache.commons.jexl2.parser.ASTJexlScript |
getAST()
|
int |
getHashValue()
|
TreeNode |
getIteratorTree()
|
Set<String> |
getNegatedTermsForOptimizer()
|
Set<String> |
getOrTermsForOptimizer()
|
Set<String> |
getQueryIdentifiers()
|
Set<Object> |
getQueryLiterals()
|
com.google.common.collect.Multimap<String,QueryParser.QueryTerm> |
getQueryTerms()
|
Object |
visit(org.apache.commons.jexl2.parser.ASTAdditiveNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTAdditiveOperator node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTAmbiguous node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTAndNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTArrayAccess node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTArrayLiteral node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTAssignment node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTBitwiseAndNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTBitwiseComplNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTBitwiseOrNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTBitwiseXorNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTBlock node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTConstructorNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTDivNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTEmptyFunction node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTEQNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTERNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTFalseNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTFloatLiteral node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTForeachStatement node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTFunctionNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTGENode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTGTNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTIdentifier node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTIfStatement node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTIntegerLiteral node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTJexlScript node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTLENode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTLTNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTMapEntry node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTMapLiteral node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTMethodNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTModNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTMulNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTNENode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTNotNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTNRNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTNullLiteral node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTOrNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTReference node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTSizeFunction node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTSizeMethod node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTStringLiteral node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTTernaryNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTTrueNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTUnaryMinusNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTWhileStatement node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.SimpleNode node,
Object data)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
negatedTerms
protected Set<String> negatedTerms
QueryParser
public QueryParser()
execute
public void execute(String query)
throws org.apache.commons.jexl2.parser.ParseException
- Throws:
org.apache.commons.jexl2.parser.ParseException
getHashValue
public int getHashValue()
- Returns:
- this queries hash value
getIteratorTree
public TreeNode getIteratorTree()
getAST
public org.apache.commons.jexl2.parser.ASTJexlScript getAST()
- Returns:
- JEXL abstract syntax tree
getNegatedTermsForOptimizer
public Set<String> getNegatedTermsForOptimizer()
- Returns:
- Set of field names to use in the optimizer for nots. As a general rule none of these terms should be used to find an event and should they should
be evaluated on each event after being found.
getAndTermsForOptimizer
public Set<String> getAndTermsForOptimizer()
- Returns:
- Set of field names to use in the optimizer for ands. As a general rule any one term of an and clause can be used to find associated events.
getOrTermsForOptimizer
public Set<String> getOrTermsForOptimizer()
- Returns:
- Set of field names to use in the optimizer for ors. As a general rule any terms that are part of an or clause need to be searched to find the
associated events.
getQueryLiterals
public Set<Object> getQueryLiterals()
- Returns:
- String, Integer, and Float literals used in the query.
getQueryIdentifiers
public Set<String> getQueryIdentifiers()
- Returns:
- Set of all identifiers (field names) in the query.
getQueryTerms
public com.google.common.collect.Multimap<String,QueryParser.QueryTerm> getQueryTerms()
- Returns:
- map of term (field name) to QueryTerm object
visit
public Object visit(org.apache.commons.jexl2.parser.SimpleNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTJexlScript node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTBlock node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTAmbiguous node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTIfStatement node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTWhileStatement node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTForeachStatement node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTAssignment node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTTernaryNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTOrNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTAndNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTBitwiseOrNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTBitwiseXorNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTBitwiseAndNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTEQNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTNENode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTLTNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTGTNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTLENode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTGENode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTERNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTNRNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTAdditiveNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTAdditiveOperator node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTMulNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTDivNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTModNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTUnaryMinusNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTBitwiseComplNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTNotNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTIdentifier node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTNullLiteral node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTTrueNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTFalseNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTIntegerLiteral node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTFloatLiteral node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTStringLiteral node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTArrayLiteral node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTMapLiteral node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTMapEntry node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTEmptyFunction node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTSizeFunction node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTFunctionNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTMethodNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTSizeMethod node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTConstructorNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTArrayAccess node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
visit
public Object visit(org.apache.commons.jexl2.parser.ASTReference node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
decodeResults
protected void decodeResults(Object left,
Object right,
StringBuilder fieldName,
org.apache.accumulo.examples.wikisearch.parser.QueryParser.ObjectHolder holder)
Copyright © 2012 The Apache Software Foundation. All Rights Reserved.