IK分词器

分词:把一段中文或者词组划分成一个个关键字,我们在搜索的时候会把自己的信息进行拆分,会把数据库中或者索引库中的数据进行分词,然后进行一个个匹配操作,默认的中文分词是将每一个看成一个词,比如“我爱王军”,会被拆分成“我”“爱”“王”“军”,这显然是不符合要求的。所以我们要安装中文分词器的Ik来解决这个问题

ik提供了两个分词算法:ik_smart和ik_max_word.其中ik_smart是最少切分,ik_max_word是最细粒度划分

首先安装IK分词器

ik分词器 下载完毕后,放入elasticsearch的插件目录重启即可。如图

es text 大小写 分词 es如何分词_Kibana


ik_smart

es text 大小写 分词 es如何分词_java_02


由测试不难看出,最少切分是由网页自己理解来进行切分成最少的词组。ik_max_word

es text 大小写 分词 es如何分词_基本语法_03


最小粒度划分是将词组拆分成最小精度的划分,划分成每个可以理解的词组,

ElasticSearch命令

1.新建索引结构

通过put请求

es text 大小写 分词 es如何分词_java_04


es text 大小写 分词 es如何分词_基本语法_05


新建成功

2.查看索引基本信息

通过get请求

es text 大小写 分词 es如何分词_es text 大小写 分词_06

3.向索引库中插入数据

通过Post请求

es text 大小写 分词 es如何分词_java_07


es text 大小写 分词 es如何分词_基本语法_08


插入成功

4.查看所有索引库的健康状态

es text 大小写 分词 es如何分词_elasticsearch_09

5 修改数据

es text 大小写 分词 es如何分词_Kibana_10


修改成功

es text 大小写 分词 es如何分词_java_11

6.删除操作

es text 大小写 分词 es如何分词_elasticsearch_12


总结:使用Restful风格是ES推荐我们使用的。

文档操作

1.精确匹配查询

查询name为小陈的user数据

es text 大小写 分词 es如何分词_elasticsearch_13


es text 大小写 分词 es如何分词_java_14

2.排序

根据年龄降序排序得到数据

es text 大小写 分词 es如何分词_elasticsearch_15

3.分页

将得到的数据进行分页

  • from:从第几条数据开始
  • size:一页显示几条数据

4.返回Bool值的多条件查询

查询名称为小红,年龄为23的数据,返回结果为Boolean类型
相当于

select * from user where name='小红'and age=23;

es text 大小写 分词 es如何分词_基本语法_16

select * from user where name='小红'or age=23;

将must关键字修改为should

es text 大小写 分词 es如何分词_基本语法_17

5.按过滤条件查询

查询年龄20-30岁,名称为“小”的用户的数据

es text 大小写 分词 es如何分词_基本语法_18

  • gt: 大于
  • it:小于
  • gte:大于等于
  • ite:小于等于

6.精确查询

term查询是直接通过倒排索引指定的词条进行精确查找的!
关于分词

  1. term,直接查询精确的
  2. match,会使用分词器解析!

两个类型 text keyword

以两个例子为证

keyword:

es text 大小写 分词 es如何分词_Kibana_19


text:

es text 大小写 分词 es如何分词_Kibana_20


keyword不会被分词器解析,而text类型会将词组进行最小拆分

精确查询例子:

es text 大小写 分词 es如何分词_Kibana_21


多条件进行精确查询:查询t1=22和t1=23的数据

es text 大小写 分词 es如何分词_es text 大小写 分词_22

7.高亮查询

es text 大小写 分词 es如何分词_Kibana_23


可以在高亮字段上定义标签

es text 大小写 分词 es如何分词_elasticsearch_24