Java查询es用sql_将查询从SQL转换为Elasticsearch

sql查询转换为elasticsearch: -

SQl query : -

从表tb1中选择tb1 . *,其中tb1.coloumn1在(“value1”,“value2”,“value3”)和tb1.coloumn2 =“value4”和tb2.cloumn3 =“value5”;

Elasticsearch query : -

{“bool”:{“must”:{“terms”:{“column1”:[“tops”,“blusas”]}},“should”:[{“match”:{“column2”:{“查询“:”Blusas“,”键入“:”boolean“}}},{”match“:{”column3“:{”query“:”Blusas“,”type“:”boolean“}}}]}}

必须进行许多更改才能使这项工作与术语查询一起使用 . 但会列出一些: -

条款查询仅搜索小写 . 因为我们的默认分析器是这样设置的 .

如果分析或未分析该字段并不重要 . 在找到这个术语查询东西的某个地方,我发现不应该分析该字段 . 这也是由于默认的分析仪 .

确保在使用术语/术语查询时使用小写 .

Not completely Clear : - 当查询包含空格时,术语查询不起作用 . 我正在努力解决这个问题 . 但目前的问题已得到解决 .

Spring Elasticsearch Java 相同的查询实现: -

SearchQuery searchQuery1 = new NativeSearchQueryBuilder() . withQuery(QueryBuilders.boolQuery() . must(QueryBuilders.termsQuery(“column1”,column1List)) . should(QueryBuilders.matchQuery(“column2”,data)) . should(QueryBuilders.matchQuery (“coloumn3”,data))) . build(); List table1List = elasticsearchTemplate.queryForList(searchQuery1,table.class);

column1List将所有元素作为单个单词,并在将其插入数组时转换为小写 .

希望这有助于将来的某些人 .

让我知道是否有更好的方法来做这件事 .

谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值