IK分词器
分词:把一段中文或者词组划分成一个个关键字,我们在搜索的时候会把自己的信息进行拆分,会把数据库中或者索引库中的数据进行分词,然后进行一个个匹配操作,默认的中文分词是将每一个看成一个词,比如“我爱王军”,会被拆分成“我”“爱”“王”“军”,这显然是不符合要求的。所以我们要安装中文分词器的Ik来解决这个问题
ik提供了两个分词算法:ik_smart和ik_max_word.其中ik_smart是最少切分,ik_max_word是最细粒度划分
首先安装IK分词器
ik分词器 下载完毕后,放入elasticsearch的插件目录重启即可。如图
ik_smart
由测试不难看出,最少切分是由网页自己理解来进行切分成最少的词组。ik_max_word
最小粒度划分是将词组拆分成最小精度的划分,划分成每个可以理解的词组,
ElasticSearch命令
1.新建索引结构
通过put请求
新建成功
2.查看索引基本信息
通过get请求
3.向索引库中插入数据
通过Post请求
插入成功
4.查看所有索引库的健康状态
5 修改数据
修改成功
6.删除操作
总结:使用Restful风格是ES推荐我们使用的。
文档操作
1.精确匹配查询
查询name为小陈的user数据
2.排序
根据年龄降序排序得到数据
3.分页
将得到的数据进行分页
- from:从第几条数据开始
- size:一页显示几条数据
4.返回Bool值的多条件查询
查询名称为小红,年龄为23的数据,返回结果为Boolean类型
相当于
select * from user where name='小红'and age=23;
select * from user where name='小红'or age=23;
将must关键字修改为should
5.按过滤条件查询
查询年龄20-30岁,名称为“小”的用户的数据
- gt: 大于
- it:小于
- gte:大于等于
- ite:小于等于
6.精确查询
term查询是直接通过倒排索引指定的词条进行精确查找的!
关于分词
- term,直接查询精确的
- match,会使用分词器解析!
两个类型 text keyword
以两个例子为证
keyword:
text:
keyword不会被分词器解析,而text类型会将词组进行最小拆分
精确查询例子:
多条件进行精确查询:查询t1=22和t1=23的数据
7.高亮查询
可以在高亮字段上定义标签