Elasticsearch实现英文区分大小写搜索

需求很简单,搜索时,有一个区分大小写的CheckBox,勾选则区分大小写,不勾选正常模糊搜索,或者其他搜索

首先搞清楚,ElasticSearch索引英文时默认索引时采用的分析器,会将全部字符转换为小写,所以采用默认分析器是无法实现区分大小写的。

最直接的方法就是自定义分词器,

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

上述分析器,实际上是将默认的标准分析器中的小写分词过滤器去掉。

这样以来又引入另外一个问题,如果正常的搜索又无法显示不区分区分大小写的模糊匹配,

可以再引入一个字段,定义为默认的分词器,然后,然后根据是否勾选区分大小写查询不同的的字段即可。

对于ElasticSearch分析器有疑问的可见:https://www.cnblogs.com/lishaojun/p/11027484.html

 

转载于:https://www.cnblogs.com/lishaojun/p/11027365.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值