Class ElasticsearchFilter.Translator
- java.lang.Object
-
- org.apache.calcite.adapter.elasticsearch.ElasticsearchFilter.Translator
-
- Enclosing class:
- ElasticsearchFilter
static class ElasticsearchFilter.Translator extends java.lang.Object
TranslatesRexNode
expressions into Elasticsearch expression strings.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) JsonBuilder
builder
(package private) java.util.Map<java.lang.String,RexLiteral>
eqMap
private java.util.List<java.lang.String>
fieldNames
(package private) com.google.common.collect.Multimap<java.lang.String,Pair<java.lang.String,RexLiteral>>
multimap
-
Constructor Summary
Constructors Constructor Description Translator(java.util.List<java.lang.String> fieldNames)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addPredicate(java.util.Map<java.lang.String,java.lang.Object> map, java.lang.String op, java.lang.Object v)
private static java.lang.Object
literalValue(RexLiteral literal)
private boolean
stronger(java.lang.String key, java.lang.Object v0, java.lang.Object v1)
private java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
translateAnd(RexNode node0)
Translates a condition that may be an AND of other conditions.private java.lang.Void
translateBinary(java.lang.String op, java.lang.String rop, RexCall call)
Translates a call to a binary operator, reversing arguments if necessary.private boolean
translateBinary2(java.lang.String op, RexNode left, RexNode right)
Translates a call to a binary operator.private java.lang.String
translateMatch(RexNode condition)
private java.lang.Void
translateMatch2(RexNode node)
private void
translateOp2(java.lang.String op, java.lang.String name, RexLiteral right)
private java.lang.Object
translateOr(RexNode condition)
-
-
-
Field Detail
-
builder
final JsonBuilder builder
-
multimap
final com.google.common.collect.Multimap<java.lang.String,Pair<java.lang.String,RexLiteral>> multimap
-
eqMap
final java.util.Map<java.lang.String,RexLiteral> eqMap
-
fieldNames
private final java.util.List<java.lang.String> fieldNames
-
-
Method Detail
-
translateMatch
private java.lang.String translateMatch(RexNode condition)
-
translateOr
private java.lang.Object translateOr(RexNode condition)
-
addPredicate
private void addPredicate(java.util.Map<java.lang.String,java.lang.Object> map, java.lang.String op, java.lang.Object v)
-
translateAnd
private java.util.List<java.util.Map<java.lang.String,java.lang.Object>> translateAnd(RexNode node0)
Translates a condition that may be an AND of other conditions. Gathers together conditions that apply to the same field.- Parameters:
node0
- expression node- Returns:
- list of elastic search term filters
-
stronger
private boolean stronger(java.lang.String key, java.lang.Object v0, java.lang.Object v1)
-
literalValue
private static java.lang.Object literalValue(RexLiteral literal)
-
translateMatch2
private java.lang.Void translateMatch2(RexNode node)
-
translateBinary
private java.lang.Void translateBinary(java.lang.String op, java.lang.String rop, RexCall call)
Translates a call to a binary operator, reversing arguments if necessary.- Parameters:
op
- operationrop
- opposite operation ofop
call
- current relational call- Returns:
- result can be ignored
-
translateBinary2
private boolean translateBinary2(java.lang.String op, RexNode left, RexNode right)
Translates a call to a binary operator. Returns whether successful.- Parameters:
op
- operationleft
- left node of the expressionright
- right node of the expression- Returns:
true
if translation happened,false
otherwise
-
translateOp2
private void translateOp2(java.lang.String op, java.lang.String name, RexLiteral right)
-
-