国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ES中同時使用should和must導致只有must生效解決方案

這篇具有很好參考價值的文章主要介紹了ES中同時使用should和must導致只有must生效解決方案。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

背景:es嵌套查詢,條件a等于某一個值且條件b等于某兩個值甚至更多。
第一步:單獨條件b采用should匹配多個值,可以查到預期的結果,代碼如下:

BoolQueryBuilder builder = QueryBuilders.boolQuery();
for (Map<String, String> sitfTrack : sitfTracks) {
    builder.should(QueryBuilders.matchQuery("sourceCode",sitfTrack.get("interfaceCode")));
}

第二步:單獨條件a采用must匹配單個值,也可以查到預期的結果,代碼如下:

BoolQueryBuilder builder = QueryBuilders.boolQuery();
builder.must(QueryBuilders.termQuery("batchNum.keyword", traceLog.getBatchNum()));

第三步:合并起來查詢,a和b條件同時啟用,代碼如下:

BoolQueryBuilder builder = QueryBuilders.boolQuery();
for (Map<String, String> sitfTrack : sitfTracks) {
    builder.should(QueryBuilders.matchQuery("sourceCode",sitfTrack.get("interfaceCode")));
}
builder.must(QueryBuilders.termQuery("batchNum.keyword", traceLog.getBatchNum()));

然而結果并未按照預期輸出,得到的是a和b的并集,我們想要的是交集。
分析原理:和mysql對比,must類似于and語句,should相當于or語句,那么上面的代碼代表的意思是a成立或者b成立,我們要的是a成立且b成立。
修改代碼如下:

BoolQueryBuilder bu= QueryBuilders.boolQuery();
BoolQueryBuilder builder = QueryBuilders.boolQuery();
for (Map<String, String> sitfTrack : sitfTracks) {
    builder.should(QueryBuilders.matchQuery("sourceCode",sitfTrack.get("interfaceCode")));
}
//注意這里
bu.must(builder);
bu.must(QueryBuilders.termQuery("batchNum.keyword", traceLog.getBatchNum()));

可以理解為:每一個獨立的查詢條件都是一個BoolQueryBuilder對象,把b條件獨立出來,然后再匯總到一個集體的BoolQueryBuilder對象里面,嵌套一層。解決問題。文章來源地址http://www.zghlxwxcb.cn/news/detail-609640.html

到了這里,關于ES中同時使用should和must導致只有must生效解決方案的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Elasticsearch 中 bool組合查詢(must 和 should 組合)

    需求 查詢考試成績是 60分 或 90分 的 女生 。 所以查詢條件應該這么寫 sex == \\\'女\\\' ( score == 60 || score ==90 ); ?先看下bool的語法 在ES中的實現 方式一: 在bool查詢的must 中再嵌套一層bool來做should過濾。 方式二: 使用 minimum_should_match 選項 ,至少匹配一項should子句。 GET stu/_search

    2023年04月09日
    瀏覽(16)
  • 【Elasticsearch】 10-DSL語法詳解-復合查詢bool(must、should、must_not、filter)

    Elasticsearch是一個強大的搜索引擎,它提供了豐富的查詢功能,以幫助你從大規(guī)模數據集中檢索相關的文檔。在Elasticsearch中, bool 查詢是一個非常重要和強大的工具,它允許組合多個查詢子句,以構建復雜的查詢邏輯。在本篇文章中,我們將深入探討 bool 查詢,包括其概述、

    2024年02月05日
    瀏覽(51)
  • ES 布爾查詢中 minimum_should_match 參數使用避坑

    在 Elasticsearch (ES) 中,布爾查詢(Boolean Query)是一種查詢類型,它允許你組合多個查詢子句以控制搜索結果的匹配邏輯。minimum_should_match 是布爾查詢中一個重要的參數,用于指定至少應該匹配的子句數量。 minimum_should_match 的值可以是一個具體的數字,也可以是一個百分比。它

    2024年02月09日
    瀏覽(30)
  • Elasticsearch(es)中must以及term的基本使用

    在 Elasticsearch(ES)中,should 和 must 是布爾查詢(Boolean Query)中常用的兩個子句。 should 子句:should 表示一個或多個條件之一滿足即可匹配文檔。它類似于邏輯上的 OR 操作,用于構建可選項或者提升匹配文檔的相關性評分。當至少一個 should 子句匹配時,文檔將被認為是匹配

    2024年01月22日
    瀏覽(65)
  • 關于Elasticsearch(es)中使用sql返回結果只有1000條

    es中返回的結果只有1000條,這是默認的,想要返回更多的結果,需要做兩步: 1、設置max_result_window的大小 PUT indexName/_settings { “max_result_window”:20000 } max_result_window表示結果的最大數量 但是你這樣設置完了之后,查詢依舊還是1000條 2、查詢的時候加上fetch_size 這表示頁面上顯

    2024年02月14日
    瀏覽(16)
  • python中使用selenium進行爬蟲時,導致(內存已緩存)備用內存占用過大導致崩潰問題,3個解決方案

    python中使用selenium進行爬蟲時,導致(內存已緩存)備用內存占用過大導致崩潰問題,3個解決方案

    在使用python進行爬蟲的時候,使用selenium進行爬取的時候經常會出現已緩存過大的情況,如果緩存出現過大之后再次執(zhí)行的話就會計算機拒絕,但是這個時候我們的內存又有很多空間可以使用,一開始我以為是占用文件過多然后點360的那個進行文件整理和清理垃圾,結果效果

    2023年04月08日
    瀏覽(23)
  • 鍵盤win鍵無法使用,win+r不生效、win鍵沒反應、Windows鍵失靈解決方案(親測可以解決)

    鍵盤win鍵無法使用,win+r不生效、win鍵沒反應、Windows鍵失靈解決方案(親測可以解決)

    最近幾天發(fā)現自己筆記本的win鍵無法使用,win失靈了,但是外接鍵盤后則正常:。 這個問題困擾了我一周,我都以為自己的槍神壞了。 尋找了幾個解決方法,網上看了好多好多稀里糊涂的辦法,都是不管用的,這里給大家分享我的解法: 1:我的電腦其實是我按住Fn+win,把

    2024年02月04日
    瀏覽(34)
  • 使用 IDEA 時突然斷電導致 git 本地分支損壞的解決方案

    使用 IDEA 時突然斷電導致 git 本地分支損壞的解決方案

    使用IDEA提交項目的時候突然斷電,重啟后項目 git 損壞,所有文件變成了 untracked,IDEA 界面上表示為所有文件名變成綠色,并且無法 pull (也可能是無法 push) 提示 Git Pull Failed ?? ??? ??? ?From http://***************** ?? ??? ??? ?* branch ? ? ? ? ? ? ? ?dev ? ? ? ?- FETCH_

    2024年02月04日
    瀏覽(27)
  • 智能電視只有數字音頻輸出,傳統(tǒng)音響只有模擬音頻輸入,音頻連接解決方案!

    智能電視只有數字音頻輸出,傳統(tǒng)音響只有模擬音頻輸入,音頻連接解決方案!

    ????????智能電視已經成為了現代家庭的必備家電設備,它不僅可以播放高清視頻,還可以連接網絡,享受各種在線資源。但是,智能電視的音質往往不能滿足我們的要求,尤其是對于喜歡聽音樂或者看大片的用戶來說,智能電視的內置揚聲器顯得力不從心。這時候,我們

    2024年02月06日
    瀏覽(18)
  • Ubuntu開機桌面黑屏只有鼠標問題解決辦法(搜狗輸入法導致)

    參考: Ubuntu開機桌面黑屏只有鼠標問題解決辦法(搜狗輸入法導致) 問題描述 筆者在安裝完搜狗輸入法重啟電腦后,電腦開機黑屏,只有鼠標的光標可以移動。筆者一開始以為是系統(tǒng)問題,網上查閱資料才發(fā)現有大量的網友都因為搜狗輸入法而導致電腦黑屏,如果讀者近期

    2024年02月16日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包