IK分词器

IK分词器

 

IK分词器概念:

 

不管是中文还是英文,都有很多词。如果不做分词,直接全匹配。那就匹配的信息很少。比如你收百度:"如何学习Java",你收到的不仅仅是是只有这个标题的信息。可能会有如何学习相关的信息。

 

ik分词器提供了两种分词算法:ik_smart,ik_max_word.其中ik_smart为最少切分,ik_max_word为最细力度切分。

 

最少切分:会自动把我是中国人分成三个,累加就是所有的词汇。

 

 

最细力度:穷尽所有,会根据词典,将所有词进行分词。下面截图中包括:中国人,中国,国人,等等。

 

 

自定义分词:有些词,ik分词器没有提供,我们可以自己添加到词典中。

 

下面截图中:我本来想着,"程序猿的人生"作为一个关键词。但是分词之后右边是没有的。所有我们可以自己进行自定义分词

 

 

在elasticSearch安装包对应的分词器配置文件中添加my.dic词典。

 

 

可能会分词失败。原因:自定义分词文件,编码方式部位 utf-8+bom即可

 

 

然后测试成功:

es中最重要的概念就是文档(document),一个索引类型中包含多个文档,那么就意味着索引和搜索数据的最小单位就是文档。一个文档呢就对应一个json对象。Java中用fastjson或者gson进行自动转换。

核心概念

1,索引 index

文档存储的地方,相当于MySQL数据库中数据库的概念。

2,类型 type

es6.0版本之前的一个概念,相当于数据库中的表。但是6.0之后就被废弃了。我们可以不用考虑。

3,字段 Field

相当于数据库中的字段。在ES中理解为一个JSON数据的键。name和age就是ES文档中的 字段(键)

{
"name":"寒江雪",
"age":18
}

4,映射

布尔型:true或者falseboolean
整数:123long
浮点数:123.45double
字符串,有效日期:2014-09-15date
字符串:foo bartext/keyword/string text可用于分词,keyword不用分词,String类型已经过时,5.x版本可用

5,分片

每个索引默认自动创建五个分片,可以自己定义多少个分片。

 

常用ES命令

es基础命令

PUT新增 用于新增资源
GET获取/查询 用于获取资源
POST修改 用于修改资源
DELETE删除 用于删除资源

创建一个索引

PUT person

查询当前索引 GET person 当前索引没有添加数据信息,以下是索引的基础信息

{
  "person" : {
    "aliases" : { },
    "mappings" : { },
    "settings" : {
      "index" : {
        "creation_date" : "1618920736112",
        "number_of_shards" : "1",
        "number_of_replicas" : "1",
        "uuid" : "ujpoToMFT32TjfIXhEfV3A",
        "version" : {
          "created" : "7040099"
        },
        "provided_name" : "person"
      }
    }
  }
}

#创建索引并添加映射

PUT person
{
    "mappings": {
      
            "properties": {
                "id": {
                    "type": "long",
                    "store": true,
                    "index":true
                },
                "title": {
                    "type": "text",
                    "store": true,
                    "index":true,
                    "analyzer":"standard"
                },
                "content": {
                    "type": "text",
                    "store": true,
                    "index":true,
                    "analyzer":"standard"
                }
            }
        }
    
}

IK分词器

IK分词器概念:

不管是中文还是英文,都有很多次。如果不做分词,直接全匹配。那就匹配的信息很少。比如你收百度:"如何学习Java",你收到的不仅仅是是只有这个标题的信息。可能会有如何学习相关的信息。

ik分词器提供了两种分词算法:ik_smart,ik_max_word.其中ik_smart为最少切分,ik_max_word为最细力切分。

 

最少切分:会自动把我是中国人分成三个,累加就是所有的词汇。

 

最细力度:穷尽所有,会根据词典,将所有词进行分词。下面截图中包括:中国人,中国,国人,等等。

 

自定义分词:有些词,ik分词器没有提供,我们可以自己添加到词典中。

下面截图中:我本来想着,"程序猿的人生"作为一个关键词。但是分词之后右边是没有的。所有我们可以自己进行自定义分词

 

 

在elasticSearch安装包对应的分词器配置文件中添加my.dic词典。

 

可能会分词失败。原因:自定义分词文件,编码方式部位 utf-8+bom即可

 

然后测试成功:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值