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