[ https://issues.apache.org/jira/browse/CALCITE-4233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17222003#comment-17222003 ]
Shlok Srivastava commented on CALCITE-4233: ------------------------------------------- [~julianhyde] I have added test cases and logic to govern dismax query builders. > Elasticsearch Dismax API is not supported in calcite > ---------------------------------------------------- > > Key: CALCITE-4233 > URL: https://issues.apache.org/jira/browse/CALCITE-4233 > Project: Calcite > Issue Type: Improvement > Components: elasticsearch-adapter > Reporter: Shlok Srivastava > Priority: Major > Labels: QueryBuilder, calcite, dismax, elasticsearch > > Currently, Calcite use constant_score API to build all the queries. which do > not boost the documents based on relevance score from any matching clause > which is supported by disMax API. It does not support dismax query builders - > [https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-dis-max-query.html.] > > Dismax query - > {code:java} > GET /_search > { > "query": { > "dis_max": { > "queries": [ > { > "bool": { > "should": [ > { > "term": { > "Name": "James" > } > }, > { > "term": { > "Name": "Peter" > } > }, > { > "term": { > "Name": "Harry" > } > }, > > } > ] > } > ] > } > }{code} > Suggested solution - Queries with OR conditions should use disMax builders > to fetch the best matching documents. > > Sample SQL query - > {code:java} > WHERE Name="James" OR Name="Peter" OR Name="Harry" {code} > Sample RelNode - > {code:java} > relB.or(relB.equals(relb.literal("Name"),relb.literal"James"), > relB.equals(relb.literal("Name"),relb.literal"Peter"), > relB.equals(relb.literal("Name"),relb.literal"Harry"){code} -- This message was sent by Atlassian Jira (v8.3.4#803005)