org.apache.accumulo.examples.wikisearch.parser
Class RangeCalculator
java.lang.Object
org.apache.accumulo.examples.wikisearch.parser.QueryParser
org.apache.accumulo.examples.wikisearch.parser.RangeCalculator
- All Implemented Interfaces:
- org.apache.commons.jexl2.parser.ParserVisitor
public class RangeCalculator
- extends QueryParser
This class is used to query the global indices to determine that set of ranges to use when querying the shard table. The RangeCalculator looks at each term
in the query to determine if it is a equivalence, range, or wildcard comparison, and queries the appropriate index to find the ranges for the terms which are
then cached. The final set of ranges is computed as the AST is traversed.
Method Summary |
void |
execute(Connector c,
Authorizations auths,
com.google.common.collect.Multimap<String,Normalizer> indexedTerms,
com.google.common.collect.Multimap<String,QueryParser.QueryTerm> terms,
String query,
AbstractQueryLogic logic,
Set<String> typeFilter)
|
com.google.common.collect.Multimap<String,String> |
getIndexEntries()
|
Map<String,String> |
getIndexValues()
|
Set<Range> |
getResult()
|
Map<String,Long> |
getTermCardinalities()
|
protected Map<RangeCalculator.MapKey,RangeCalculator.TermRange> |
queryGlobalIndex(Map<RangeCalculator.MapKey,Set<Range>> indexRanges,
String specificFieldName,
String tableName,
boolean isReverse,
RangeCalculator.MapKey override,
Set<String> typeFilter)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTAndNode 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.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.ASTLENode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTLTNode node,
Object data)
|
Object |
visit(org.apache.commons.jexl2.parser.ASTNENode 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.ASTTrueNode node,
Object data)
|
Methods inherited from class org.apache.accumulo.examples.wikisearch.parser.QueryParser |
decodeResults, execute, getAndTermsForOptimizer, getAST, getHashValue, getIteratorTree, getNegatedTermsForOptimizer, getOrTermsForOptimizer, getQueryIdentifiers, getQueryLiterals, getQueryTerms, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
log
protected static org.apache.log4j.Logger log
c
protected Connector c
auths
protected Authorizations auths
indexedTerms
protected com.google.common.collect.Multimap<String,Normalizer> indexedTerms
termsCopy
protected com.google.common.collect.Multimap<String,QueryParser.QueryTerm> termsCopy
indexTableName
protected String indexTableName
reverseIndexTableName
protected String reverseIndexTableName
queryThreads
protected int queryThreads
result
protected Set<Range> result
indexEntries
protected com.google.common.collect.Multimap<String,String> indexEntries
indexValues
protected Map<String,String> indexValues
originalQueryValues
protected com.google.common.collect.Multimap<String,RangeCalculator.MapKey> originalQueryValues
termCardinalities
protected Map<String,Long> termCardinalities
globalIndexResults
protected Map<RangeCalculator.MapKey,RangeCalculator.TermRange> globalIndexResults
RangeCalculator
public RangeCalculator()
execute
public void execute(Connector c,
Authorizations auths,
com.google.common.collect.Multimap<String,Normalizer> indexedTerms,
com.google.common.collect.Multimap<String,QueryParser.QueryTerm> terms,
String query,
AbstractQueryLogic logic,
Set<String> typeFilter)
throws org.apache.commons.jexl2.parser.ParseException
- Parameters:
c
- auths
- indexedTerms
- terms
- query
- logic
- typeFilter
-
- Throws:
org.apache.commons.jexl2.parser.ParseException
getResult
public Set<Range> getResult()
- Returns:
- set of ranges to use for the shard table
getIndexEntries
public com.google.common.collect.Multimap<String,String> getIndexEntries()
- Returns:
- map of field names to index field values
getIndexValues
public Map<String,String> getIndexValues()
getTermCardinalities
public Map<String,Long> getTermCardinalities()
- Returns:
- Cardinality for each field name.
queryGlobalIndex
protected Map<RangeCalculator.MapKey,RangeCalculator.TermRange> queryGlobalIndex(Map<RangeCalculator.MapKey,Set<Range>> indexRanges,
String specificFieldName,
String tableName,
boolean isReverse,
RangeCalculator.MapKey override,
Set<String> typeFilter)
throws TableNotFoundException
- Parameters:
indexRanges
- tableName
- isReverse
- switch that determines whether or not to reverse the resultsoverride
- mapKey for wildcard and range queries that specify which mapkey to use in the resultstypeFilter
- - optional list of datatypes
- Throws:
TableNotFoundException
visit
public Object visit(org.apache.commons.jexl2.parser.ASTOrNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
- Overrides:
visit
in class QueryParser
visit
public Object visit(org.apache.commons.jexl2.parser.ASTAndNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
- Overrides:
visit
in class QueryParser
visit
public Object visit(org.apache.commons.jexl2.parser.ASTEQNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
- Overrides:
visit
in class QueryParser
visit
public Object visit(org.apache.commons.jexl2.parser.ASTNENode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
- Overrides:
visit
in class QueryParser
visit
public Object visit(org.apache.commons.jexl2.parser.ASTLTNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
- Overrides:
visit
in class QueryParser
visit
public Object visit(org.apache.commons.jexl2.parser.ASTGTNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
- Overrides:
visit
in class QueryParser
visit
public Object visit(org.apache.commons.jexl2.parser.ASTLENode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
- Overrides:
visit
in class QueryParser
visit
public Object visit(org.apache.commons.jexl2.parser.ASTGENode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
- Overrides:
visit
in class QueryParser
visit
public Object visit(org.apache.commons.jexl2.parser.ASTERNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
- Overrides:
visit
in class QueryParser
visit
public Object visit(org.apache.commons.jexl2.parser.ASTNRNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
- Overrides:
visit
in class QueryParser
visit
public Object visit(org.apache.commons.jexl2.parser.ASTNullLiteral node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
- Overrides:
visit
in class QueryParser
visit
public Object visit(org.apache.commons.jexl2.parser.ASTTrueNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
- Overrides:
visit
in class QueryParser
visit
public Object visit(org.apache.commons.jexl2.parser.ASTFalseNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
- Overrides:
visit
in class QueryParser
visit
public Object visit(org.apache.commons.jexl2.parser.ASTFunctionNode node,
Object data)
- Specified by:
visit
in interface org.apache.commons.jexl2.parser.ParserVisitor
- Overrides:
visit
in class QueryParser
Copyright © 2012 The Apache Software Foundation. All Rights Reserved.