[ 
https://issues.apache.org/jira/browse/CALCITE-4232?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18079327#comment-18079327
 ] 

Yu Xu commented on CALCITE-4232:
--------------------------------

This issue hasn't been updated in a long time, I take it.

> Elasticsearch IN Query is not supported 
> ----------------------------------------
>
>                 Key: CALCITE-4232
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4232
>             Project: Calcite
>          Issue Type: Improvement
>          Components: elasticsearch-adapter
>            Reporter: Shlok Srivastava
>            Assignee: Yu Xu
>            Priority: Major
>              Labels: IN, calcite, elasticsearch, pull-request-available, query
>          Time Spent: 2h 20m
>  Remaining Estimate: 0h
>
> IN clause is required in multiple queries to fetch  documents that contain 
> more than one *exact terms* in a provided field.
> SQL Query
> {code:java}
> name IN ("kimchy", "james"){code}
>  RelNode for same-
> {code:java}
> rexb.makeCall(SqlStdOperatorTable.IN, builder.field("name"), 
> rexb.makeLiteral("kimchy"), rexb.makeLiteral("james")){code}
>  
>   *Problem* : Calcite for above RelNode throws
> _java.sql.SQLException : Error while preparing statement [null]_
> _Suppressed: java.lang.UnsupportedOperationException: Can't handle partial 
> QueryExpression: 
> org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$CompoundQueryExpression@3e782f91_
>  _at 
> org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer.analyze(PredicateAnalyzer.java:114)_
>  _at 
> org.apache.calcite.adapter.elasticsearch.ElasticsearchFilter$PredicateAnalyzerTranslator.translateMatch(ElasticsearchFilter.java:99)_
>  _at 
> org.apache.calcite.adapter.elasticsearch.ElasticsearchFilter.implement(ElasticsearchFilter.java:64)_
>  _at 
> org.apache.calcite.adapter.elasticsearch.ElasticsearchRel$Implementor.visitChild(ElasticsearchRel.java:140)_
>  _at 
> org.apache.calcite.adapter.elasticsearch.ElasticsearchProject.implement(ElasticsearchProject.java:59)_
> Expected Elasticsearch Query - 
> {code:java}
> GET /_search
> {
>   "query": {
>     "terms": {
>       "name": [
>         "kimchy",
>         "james"
>       ]
>     }
>   }
> }
> {code}
> *Solution*: Extend _IN SQLTableOperator_ support in elasticsearch adapters to 
> use Terms Query Builder which is already present in elasticsearch adapters.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to