You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Shlok Srivastava (Jira)" <ji...@apache.org> on 2020/10/08 11:05:00 UTC

[jira] [Comment Edited] (CALCITE-4232) Elasticsearch IN Query is not supported

    [ 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)