欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ES模糊查詢失效的坑以及解決方案

 更新時間:2023年09月15日 10:42:27   作者:huarui0922  
ES的查詢原理是按分詞建立索引,根據(jù)要保存的內(nèi)容先分詞,然后按照分詞的結(jié)果建立索引,這篇文章主要給大家介紹了關(guān)于ES模糊查詢失效的坑及解決方案的相關(guān)資料,需要的朋友可以參考下

項目場景:

最近在做需求開發(fā)的時候,有個需求,需要根據(jù)關(guān)鍵字去ES中進行模糊搜索。于是首先想到了wildcard查詢,根據(jù)關(guān)鍵字,利用*通配符,類似于mysql中的like一樣進行模糊搜索。

問題描述

但是遇到了問題就是,根據(jù)單個漢字能正常模糊搜索,多個漢字就無法查詢出數(shù)據(jù)。單個漢字正常查詢:

單個漢字正常查詢

多個漢字無法查出數(shù)據(jù):

多個漢字無法查出數(shù)據(jù)

于是我就百度找解決方案,很多人說都說在查詢關(guān)鍵字后面加 .keyword 就可以正常查詢了,于是我接著嘗試,

結(jié)果還是不能正常查詢,而且原來單個漢字能查詢的,現(xiàn)在也不行了

原因分析:

于是我懷疑是字段類型導(dǎo)致的,就有了下面這個我自己建的blog的測試索引。

咱們現(xiàn)在只關(guān)心索引中的name,newName1,newName2,newName3這4個字段,可以看到這4個字段的數(shù)據(jù)類型不同。現(xiàn)在創(chuàng)建一條數(shù)據(jù),

根據(jù)name模糊查詢

可以看到在keyword類型下,無論單個漢字,還是多個漢字都可以正常查詢

  • newName1的類型為text,最上面就是這種情況,單個漢字可以,多個漢字不行
  • newName2的類型為wildcard,跟keyword情況一樣

  • newName3的類型為text,但是附加了keyword類型

單個漢字正常查詢

多個漢字不能查詢

加上keyword可以正常查詢

總結(jié):

  • text類型,es會分詞導(dǎo)致多個漢字不能正常正常查詢
  • keyword不分詞可以正常查詢
  • wildcard和keyword類似
  • text類型附加keyword類型,相當于支持兩種類型,默認text,但是可以通過關(guān)鍵字加.keyword變成keyword類型

到此這篇關(guān)于ES模糊查詢失效的坑以及解決方案的文章就介紹到這了,更多相關(guān)ES模糊查詢失效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 常用Eclipse快捷方式(推薦)

    常用Eclipse快捷方式(推薦)

    下面小編就為大家?guī)硪黄S肊clipse快捷方式(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • JVM中-D、-X、-XX參數(shù)的區(qū)別

    JVM中-D、-X、-XX參數(shù)的區(qū)別

    本文主要介紹了JVM中-D、-X、-XX參數(shù)的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • java區(qū)分絕對路徑和相對路徑的方法

    java區(qū)分絕對路徑和相對路徑的方法

    這篇文章主要介紹了java區(qū)分絕對路徑和相對路徑的方法,實例分析了java針對路徑操作的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • IDEA創(chuàng)建Java項目保姆級教程(超詳細!)

    IDEA創(chuàng)建Java項目保姆級教程(超詳細!)

    這篇文章主要給大家介紹了關(guān)于IDEA創(chuàng)建Java項目保姆級教程的相關(guān)資料,Java是一種廣泛使用的編程語言,廣泛用于Web應(yīng)用程序和客戶端應(yīng)用程序的開發(fā),文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • Java圖文并茂詳解NIO與零拷貝

    Java圖文并茂詳解NIO與零拷貝

    零拷貝是網(wǎng)絡(luò)編程的關(guān)鍵,很多性能優(yōu)化都離不開。在?Java?程序中,常用的零拷貝有?mmap(memory?map,內(nèi)存映射)?和?sendFile。那么它們在?OS(操作系統(tǒng))?中,到底是怎么樣的一個的設(shè)計?另外我們看下NIO?中如何使用零拷貝
    2022-11-11
  • Springboot如何通過流返回文件

    Springboot如何通過流返回文件

    這篇文章主要介紹了Springboot如何通過流返回文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SpringBoot對靜態(tài)資源的映射規(guī)則詳解解讀

    SpringBoot對靜態(tài)資源的映射規(guī)則詳解解讀

    這篇文章主要介紹了SpringBoot對靜態(tài)資源的映射規(guī)則詳解解讀,在Spring Boot中,映射規(guī)則是用來定義URL與控制器方法之間的映射關(guān)系的,通過映射規(guī)則,可以將特定的URL請求映射到相應(yīng)的控制器方法上,從而實現(xiàn)請求的處理和響應(yīng)的返回,需要的朋友可以參考下
    2023-10-10
  • 深入解析Java的線程同步以及線程間通信

    深入解析Java的線程同步以及線程間通信

    這篇文章主要介紹了Java的線程同步以及線程間通信,多線程編程是Java學(xué)習(xí)中的重點和難點,需要的朋友可以參考下
    2015-09-09
  • 基于params、@PathVariabl和@RequestParam的用法與區(qū)別說明

    基于params、@PathVariabl和@RequestParam的用法與區(qū)別說明

    這篇文章主要介紹了方法參數(shù)相關(guān)屬性params、@PathVariabl和@RequestParam用法與區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java編程實現(xiàn)多人聊天室功能

    java編程實現(xiàn)多人聊天室功能

    這篇文章主要為大家詳細介紹了java編程實現(xiàn)多人聊天室功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07

最新評論