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或者false | boolean |
---|---|
整数:123 | long |
浮点数:123.45 | double |
字符串,有效日期:2014-09-15 | date |
字符串:foo bar | text/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即可
然后测试成功: