亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 SQL 創建 ElasticSearch 6.5 嵌套布爾查詢

從 SQL 創建 ElasticSearch 6.5 嵌套布爾查詢

HUH函數 2022-05-25 16:05:24
我有這個非常簡單的 SQL 查詢:SELECT * FROM tableWHERE ((sphereMin>=-17 AND sphereMax<=5) OR sphereMin<=-17)AND((sphereMax<=5 AND sphereMax>=-17) OR sphereMax>=5)我必須使用高級 API 將該查詢轉換為 ES。這是相關代碼: SearchSourceBuilder searchBuilder = new SearchSourceBuilder(); BoolQueryBuilder boolQueryBuilder = boolQuery(); BoolQueryBuilder booleanQuery1 = boolQuery(); BoolQueryBuilder subQuery1a = boolQuery(); booleanQuery1.must(subQuery1a); RangeQueryBuilder subQuery1b = null;subQuery1a.must(rangeQuery("sphereMin").gte(-17));subQuery1a.must(rangeQuery("sphereMax").lte(5));subQuery1b = rangeQuery("sphereMin").lte(-17);booleanQuery1.should(subQuery1b);BoolQueryBuilder booleanQuery2 = boolQuery();BoolQueryBuilder subQuery2a = boolQuery();booleanQuery2.must(subQuery2a);RangeQueryBuilder subQuery2b = null;subQuery2a.must(rangeQuery("sphereMax").gte(-17));subQuery2a.must(rangeQuery("sphereMax").lte(5));subQuery2b = rangeQuery("sphereMax").gte(5);booleanQuery2.should(subQuery2b);boolQueryBuilder.filter(booleanQuery1);boolQueryBuilder.filter(booleanQuery2);searchBuilder.query(boolQueryBuilder);SearchRequest searchRequest = Requests.searchRequest(indexName).allowPartialSearchResults(true)                .source(searchBuilder).routing(routing);它看起來對我來說是正確的,但該查詢不會返回與 SQL 查詢相同的數據。我究竟做錯了什么?
查看完整描述

2 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

在你的情況下


booleanQuery1.must(subQuery1a);

應該是


booleanQuery1.should(subQuery1a);


booleanQuery2.must(subQuery2a);

也應該是


booleanQuery2.should(subQuery2a);

例子:


qb.should(a);

qb.should(b);

qb.should(c);

默認情況下,必須至少滿足以下條件之一:a OR b OR cwhile


qb.must(a);

qb.should(b);

表示 a必須匹配,而 b應該。


查看完整回答
反對 回復 2022-05-25
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

((sphereMax<=5 AND sphereMax>=-17) OR sphereMax>=-17)


ubQuery2a.must(rangeQuery("sphereMax").gte(-17));

subQuery2a.must(rangeQuery("sphereMax").lte(5));

subQuery2b = rangeQuery("sphereMax").gte(5);

5 而不是 -17


;)


查看完整回答
反對 回復 2022-05-25
  • 2 回答
  • 0 關注
  • 226 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號