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

Shlok Srivastava edited comment on CALCITE-4232 at 10/8/20, 11:04 AM:
----------------------------------------------------------------------

I have raised a PR to support IN query clause in Elasticsearch adapters.

 

Terms query builders used for creating IN clause was already present in 
elasticsearch adapters but were not being used. We have raised a PR to build IN 
clause using terms query API against SqlStdOperatorTable.IN operator.

Following code can be used to build IN query for a particular field -

RexBuilder rexb = new RexBuilder(new 
SqlTypeFactoryImpl(RelDataTypeSystem.DEFAULT));
 *rexb.makeCall(SqlStdOperatorTable.IN, builder.field("age"), 
rexb.makeLiteral("12"), rexb.makeLiteral("14"))*

 

Above code will create following query - "\{"terms":{"age":[12,14]}}"


was (Author: shlok7296):
I have raised a PR to support IN query clause in Elasticsearch adapters.

 

Terms query builders used for creating IN clause was already present in 
elasticsearch adapters but were not being used. We have raised a PR to build IN 
clause using terms query API against SqlStdOperatorTable.IN operator.

Following code can be used to build IN query for a particular field -

RexBuilder rexb = new RexBuilder(new 
SqlTypeFactoryImpl(RelDataTypeSystem.DEFAULT));
*rexb.makeCall(SqlStdOperatorTable.IN, builder.field("age"), 
rexb.makeLiteral("12"), rexb.makeLiteral("14"))*

> 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
>            Priority: Major
>              Labels: IN, calcite, elasticsearch, pull-request-available, query
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> IN clause is required in multiple queries to fetch  documents that contain 
> one or more **exact terms in a provided field.
>  
> Query - 
> GET /_search{"query": {"terms": {"user.id": [ "kimchy", "elkbee" ],"boost": 
> 1.0}}}
>  
> The above IN query is not supported in calcite elasticsearch adapters.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to