Yu Xu created CALCITE-7068:
------------------------------

             Summary: ElasticSearch adapter support like operator
                 Key: CALCITE-7068
                 URL: https://issues.apache.org/jira/browse/CALCITE-7068
             Project: Calcite
          Issue Type: Improvement
          Components: core
    Affects Versions: 1.40.0
            Reporter: Yu Xu
            Assignee: Yu Xu
             Fix For: 1.41.0


Currently ElasticSearch adapter not support like operator.

sql as follow:
{code:java}
select * from db.table where column0 like 'aa%';
{code}
would error out:
{code:java}
Suppressed: java.lang.UnsupportedOperationException: LIKE not yet supported
        at 
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$Visitor.binary(PredicateAnalyzer.java:376)
        at 
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$Visitor.visitCall(PredicateAnalyzer.java:255)
        at 
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$Visitor.visitCall(PredicateAnalyzer.java:128)
        at org.apache.calcite.rex.RexCall.accept(RexCall.java:208) {code}
according document: 

[https://www.elastic.co/guide/en/elasticsearch/reference/8.18/query-dsl-query-string-query.html#query-string-wildcard]

*Wildcard searches can be run on individual terms, using ? to replace a single 
character, and {{*}} to replace zero or more characters:*

so like query can be:
{code:java}
GET /my_index/table_name/_search
{
    "query": {
        "wildcard": {
            "field_name": "a*"
        }
    }
}


GET /my_index/table_name/_search
{
    "query": {
        "wildcard": {
            "field_name": "a?"
        }
    }
} {code}
Like operator is important for ElasticSearch users, so we need to support it in 
ElasticSearch Adapter.



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

Reply via email to