前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >中文分词器的使用

中文分词器的使用

作者头像
爱撒谎的男孩
发布2018-10-11 10:07:03
5530
发布2018-10-11 10:07:03
举报
文章被收录于专栏:码猿技术专栏

中文分词器的使用

  • ik_max_word:会将文本做最细粒度的拆分
  • ik_smart:做最粗粒度的拆分

查询

  • 自动映射默认使用的标准的分词器,如果想要使用IK中文分词器,那么需要手动创建映射,如下:
代码语言:javascript
复制
PUT /lib 
{
    "mappings" : {
        "user" : {
            "properties" : {
                "userId" : {
                    "type" : "integer"
                },
                "date":{
                  "type": "date",
                  "format": "yyyy-MM-dd HH:mm:ss"
                },
                "age":{
                  "type": "integer"
                },
                "name":{
                  "type": "text", 
                   "analyzer": "ik_max_word"   //使用IK分词器
                },
                "address":{
                  "type": "text",
                  "analyzer": "ik_max_word"   //使用IK分词器
                }
            }
        }
    }
}
  • 添加数据
代码语言:javascript
复制
PUT /lib/user/1
{
  "name":"陈加兵",
  "age":22,
  "date":"2012-11-11 12:00:00",
  "address":"上海市松江区"
}
PUT /lib/user/2
{
  "name":"郑元梅",
  "age":22,
  "date":"2012-11-11 12:00:00",
  "address":"湖北武汉"
}
PUT /lib/user/3
{
  "name":"张三",
  "age":22,
  "date":"2012-11-11 12:00:00",
  "address":"江苏省淮安市"
}
  • 我们可以查看address这个字段使用中文分词器的效果,如下:
代码语言:javascript
复制
GET lib/_analyze
{
  "field": "address",
  "text": "江苏省淮安市"
}
//分词结果如下:
{
  "tokens": [
    {
      "token": "江苏省",
      "start_offset": 0,
      "end_offset": 3,
      "type": "CN_WORD",
      "position": 0
    },
    {
      "token": "江苏",
      "start_offset": 0,
      "end_offset": 2,
      "type": "CN_WORD",
      "position": 1
    },
    {
      "token": "省",
      "start_offset": 2,
      "end_offset": 3,
      "type": "CN_CHAR",
      "position": 2
    },
    {
      "token": "淮安市",
      "start_offset": 3,
      "end_offset": 6,
      "type": "CN_WORD",
      "position": 3
    },
    {
      "token": "淮安",
      "start_offset": 3,
      "end_offset": 5,
      "type": "CN_WORD",
      "position": 4
    },
    {
      "token": "市",
      "start_offset": 5,
      "end_offset": 6,
      "type": "CN_CHAR",
      "position": 5
    }
  ]
}
  • 通过上面的分词,我们可以进行查询了,如下:
代码语言:javascript
复制
GET /lib/user/_search
{
  "query": {
    "match": {
      "address": "江苏"
    }
  }
}
GET /lib/user/_search
{
  "query": {
    "match": {
      "address": "淮安"
    }
  }
}
GET /lib/user/_search
{
  "query": {
    "term": {
      "address": "淮安"
    }
  }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 中文分词器的使用
    • 查询
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档