Elasticsearch實現英文區分大小寫搜索


需求很簡單,搜索時,有一個區分大小寫的CheckBox,勾選則區分大小寫,不勾選正常模糊搜索,或者其他搜索

首先搞清楚,ElasticSearch索引英文時默認索引時采用的分析器,會將全部字符轉換為小寫,所以采用默認分析器是無法實現區分大小寫的。

最直接的方法就是自定義分詞器,

{
  "analysis": {
    "analyzer":{
      "case_sensitive_analyzer":{
        "tokenizer":"standard",
     "filter":["stardard","stop"]
} } } }

上述分析器,實際上是將默認的標准分析器中的小寫分詞過濾器去掉。

這樣以來又引入另外一個問題,如果正常的搜索又無法顯示不區分區分大小寫的模糊匹配,

可以再引入一個字段,定義為默認的分詞器,然后,然后根據是否勾選區分大小寫查詢不同的的字段即可。

對於ElasticSearch分析器有疑問的可見:https://www.cnblogs.com/lishaojun/p/11027484.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM