ElasticSearch学习(二)——ik分词及查询操作

IK分词器插件

分词:即把一段中文或者别的划分成一个个的关键字,在搜索时将自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个词看成一个词,如“李小狼”会被分为“李”,“小”“狼”,这显然是不符合要求的,我们需要安装中文分词器ik来解决这个问题。
IK提供了两个分词算法:ik_smart和ik_max_word,其中ik_smart为最少切分ik
_max_word为最细力度划分

下载地址:https://github.com/medcl/elasticsearch-analysis-ik.

下载完成后在es的plugins目录下新建一个文件夹ik将解压后的文件放置到里面
在这里插入图片描述
重启es
在这里插入图片描述
开启kibana进行测试
对少年先锋队进行分词解析
在这里插入图片描述
使用最小颗粒切分情况如下(穷尽所有可能)(根据字典来)
在这里插入图片描述

字典配置

在这里插入图片描述

新增自己的字典项,具体格式可以参考文件中其他dic文件格式,注意编码格式修改后保存需重新启动es
在这里插入图片描述

Restful风格命令

基本rest命令说明,关于索引的基本操作

methodurl地址说明
PUTlocalhost:9200/索引名称/类型名称/文档id创建文档(指定文档id)
POSTlocalhost:9200/索引名称/类型名称创建文档(随机文档id)
POSTlocalhost:9200/索引名称/类型名称/文档id/_update修改文档
DELETElocalhost:9200/索引名称/类型名称/文档id删除文档
GETlocalhost:9200/索引名称/类型名称/文档id查询文档通过文档id
POSTlocalhost:9200/索引名称/类型名称/_search查询所有数据

基础测试:先新建一个索引
使用put指定文档id方式

PUT /索引名/类型/id
{请求体}

在这里插入图片描述
在head中查看相关信息,发现相关索引已被建立,数据也在
在这里插入图片描述
也可以直接只建立索引,并赋予对应索引相关属性,详细属性设置可以自行去官网查询,如此处建立一个test2的索引
在这里插入图片描述
同理,可以通过GET命令查看对应信息(索引或者具体文档的)
额外命令:
GET _cat/indices?v 可以查看一些es中的默认配置

修改的话可以使用PUT命令不带update的,但要注意这种情况下如果请求体中的数据有遗漏则更新后的数据该值也不存在,即若修改年龄,请求体put中没有name则最终结果中name将遗失,推荐使用put 。。/_update命令对其进行修改

关于文档的基本操作

在说查询前我们先造几条数据用来备用:

  1. PUT 插入数据
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. GET获取数据
    在这里插入图片描述
  3. 更新数据PUT
    在这里插入图片描述
    注意修改数据后,数据的version号改变
  4. POST _update更新数据
    在这里插入图片描述

简单的查询

在这里插入图片描述
q即为query,当然若为模糊匹配也是可以查到的
在这里插入图片描述
注意查出来的结果当中有一项score的数值,该项为结果与查询条件的匹配程度,分数越高则匹配度越高

复杂查询

再插入一条数据以供测试
在这里插入图片描述

查询条件在请求体中书写,如精确匹配match(此处的精确匹配指的是字段,如name字段中带有李的数据)
在这里插入图片描述
让结果显示指定字段_source
在这里插入图片描述
排序操作,使用sort参数,order指定升序还是降序
在这里插入图片描述
分页操作,from(从第几条数据开始),size参数(返回多少条数据)
在这里插入图片描述

布尔值查询

must,多条件查询,相当于sql语句where中的and
在这里插入图片描述
同样的有and就肯定有or,在es中or为should
在这里插入图片描述
此时就查出来两条数据了
查询name不是李小狼的使用must_not
在这里插入图片描述
对查询到的数据进行过滤,filter,如范围查询为
在这里插入图片描述
精确查询!term
term查询是直接通过倒排索引指定的词条进程精确查找的!

  • term:直接查询精确的
  • match:会使用分词器解析(先分析文档,然后通过分析的文档进行查询)
    使用方法和match类似就不再演示
    高亮查询
    highlight
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值