Elasticsearch 中文字母数字混合字符串 首字母匹配

Elasticsearch 中文字母数字混合字符串 首字母匹配

1、需求

	某索引中有text类型字段name,内容为中文字母数组混合字符串组成,比如"name":"宝马330Li",现需要用该字段的首
字母缩写即:“bm3”,“bm33”,"bm330","bm330l"进行匹配;

2、解决方案

1、采用拼音分词插件elasticsearch-analysis-pinyin对字段进行首字母分词

//创建索引
PUT /test?include_type_name=false
{
  "settings": {
    "number_of_shards": 5, 
    "analysis": {
      "analyzer": {
        "my_comma_analyzer": {
          "filter":"lowercase",
          "tokenizer": "my_comma_tokenizer"
        },
        "prefix_pinyin_analyzer": {
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "prefix_pinyin"
          ]
        }
      },
      "filter": {
        "prefix_pinyin": {
          "type": "pinyin",
          "keep_first_letter": true,
          "keep_seperate_first_letter": true,
          "keep_full_pinyin": false,
          "none_chinese_pinyin_tokenize": false,
          "keep_original": false
        }
      },
      "tokenizer": {
        "my_comma_tokenizer": {
          "type": "pattern",
          "pattern": ","
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "name":{
        "type": "text",
        "analyzer": "prefix_pinyin_analyzer&#
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值