Elasticsearch 用kinbana 自定义分词器

创建自定义pattern 并创建啊mapping 

注意: 集群是es6.x 版本

PUT courses2
{
  "settings":{
      "analysis":{
         "analyzer":{ 
            "my_analyzer":{ 
               "type":"pattern",
               "pattern":"."
            }
      }
     }
  },
      "mappings":{
      "_doc":{
          "properties": {
           "id": {
              "type": "keyword"
            },
            "grade": {
              "type": "keyword"
            },
            "subject": {
              "type": "keyword"
            },
            "course": {
             "type": "text",
              "analyzer": "standard",
              "fields": {
                 "english": {"type" : "text"   ,"analyzer": "thai"},
                 "simple": {"type" : "text"   ,"analyzer": "my_analyzer"},
                 "raw" : {
                   "type" : "keyword"
                 }
              }
            },
            "pay": {
              "type": "integer"
            },
            "pattern": {
              "type": "integer"
            },
            "teachername": {
              "type": "text",
              "analyzer": "standard",
              "fields": {
                 "english": {"type" : "text"   ,"analyzer": "thai"},
                 "simple": {"type" : "text"   ,"analyzer": "my_analyzer"},
                 "raw" : {
                   "type" : "keyword"
                 }
              }
            },
            "teacherid": {
              "type": "keyword"
            },
            "createtime": {
              "type": "long",
              "fields": {
                "raw": { 
                    "type":  "keyword"
                }
              }
            },
            "updatetime": {
              "type": "long"
            },
            "score": {
              "type": "float"
            },
            "classstatus": {
              "type": "integer"
            },
            "status":{
              "type": "integer"
            },
            "gradenum":{
              "type": "long"
            },
            "subjectnum":{
              "type": "long"
            },
            "releasedtime":{
              "type": "long",
                "fields": {
                  "raw": { 
                    "type":  "keyword"
                  }
                }
              }
            }
        
      }
   }
}

Pattern 分词器介绍

pattern analyzerwhitespace正则表达式分词,默认匹配\W+

接下来是一些验证查询的方法

GET /courses2/_search
{
  "query" : {
    "wildcard": { "teachername" : "a*" }
  }
}

这里注意 wildcard 模糊搜索只支持 小写 并且要加上* 才能搜索到

自定义分词器解析

  "settings":{
      "analysis":{
         "analyzer":{ 分词器
            "my_analyzer":{ 设置分词器名字
               "type":"pattern", 分词器类型
               "pattern":"." 以.为分隔符  注这里也可以写正则表达式 一般是用来处理复杂数据的 
            }
      }
     }
  },

mapping 解析

           "teachername": {
              "type": "text",
              "analyzer": "standard", 设置主分词器
              "fields": {
                 "english": {"type" : "text"   ,"analyzer": "thai"}, 设置副分词器 为泰语分词器
                 "simple": {"type" : "text"   ,"analyzer": "my_analyzer"}, 设置 副分词器自定义分词器
                 "raw" : {
                   "type" : "keyword"
                 }
              }
            },

注意  如果自定义分词器不为 副分词器,会报错 all shard filed 。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值