elasticsearch查询时不区分大小写

Elastic 默认是区分大小写查询的,比如:

{
  "foo": "BÀR"
}

查询的时候 通过“bar”是查询不到的,需要在

复制代码
"settings": {

    "analysis": { 
      "normalizer": { 
        "my_normalizer": { 
          "type": "custom", 
          "filter": ["lowercase", "asciifolding"] 
        } 
      } 
    } 
  },   
   "mappings": { 
    "type": { 
      "properties": { 
        "foo": { 
          "type": "keyword", 
          "normalizer": "my_normalizer" 
        } 
      } 
    } 
  } 
复制代码

案例:

复制代码
PUT /products
{
  "settings": {     
    "analysis": { 
      "normalizer": { 
        "my_normalizer": { 
          "type": "custom", 
          "filter": ["lowercase", "asciifolding"] 
        } 
      } 
    } 
  }
}

POST /products/doc/_mapping
{
  "_source": {"enabled": true},
  "dynamic": true,
  "properties" : {
    "id" : {"type" : "text","fields": {"raw": {"type": "keyword","ignore_above": 256}}},
    "hash" : {"type" : "text","fields": {"raw": {"type": "keyword","ignore_above": 256}}},
    "name" : {"type" : "keyword","doc_values":true,"normalizer": "my_normalizer"},
    "type" : {"type" : "keyword","doc_values":true},
    "fileids": {"type": "text","fields": {"raw": {"type": "keyword","ignore_above": 256}}},
    "createTime": {"type": "date"},
    "updateTime": {"type": "date"},
    "info" : {
      "properties":{              
            "id":{ "type":"text","fields": {"raw": {"type": "keyword","ignore_above": 256}}},
            "label":{"type":"keyword","doc_values":true,"normalizer": "my_normalizer"},
            "format":{ "type":"keyword","doc_values":true,"normalizer": "my_normalizer"},
            "value" : {"type" : "text","fields": {"raw": {"type": "keyword","ignore_above": 256}}}
     }
   }
 } 
}
View Code
复制代码

这样就可以解决大小写的问题。

ES 6.0 官网资料:https://www.elastic.co/guide/en/elasticsearch/reference/6.0/normalizer.html

 

posted @   所向披靡zz  阅读(4963)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示