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)