【全文检索_05】Elasticsearch 基本使用 ㈠

1.1 数据类型

1.1.1 核心数据类型

类型
字符串类型text【分词】、keyword【不分词】
数值类型long、integer、short、byte、double、float、half_float、scaled_float
日期类型date
布尔类型boolean
二进制类型binary
范围类型integer_range、float_range、long_range、double_range、date_range

1.1.2 复杂数据类型

类型
数组类型array
对象类型object
嵌套类型nested object
地理位置类型geo_point【点】、geo_shape【形状】





1.2 Document 操作

1.2.1 Restful 操作

methodURL说明
PUT索引名称/类型名称/文档id创建文档(指定文档id)
POST索引名称/类型名称创建文档(随机文档id)
POST索引名称/类型名称/文档id/_update修改文档
DELETE索引名称/类型名称/文档id删除文档
GET索引名称/类型名称/文档id通过文档 id 查询文档
POST索引名称/类型名称/_search查询所有的数据

1.2.2 自动创建 Mapping

在这里插入图片描述

  如上图所示,我们就创建一个名为 my_index 的索引并在其下创建了 id 为 001 的文档,在创建索引时我们并没有指定 Mapping,所以在添加数据时会自动帮我们匹配数据类型。可以使用 GET my_index/_mapping 查看索引的 Mapping。

在这里插入图片描述


1.2.3 手动创建 Mapping

在这里插入图片描述

在这里插入图片描述

  如上图所示,就创建好了一个指定数据类型的索引,然后向其中添加数据就行了,添加数据就是创建文档,方式参考 1.2.1 。我们使用 GET my_index1/_search 就可以查询到索引中的全部数据了。需要注意的是,不论是自动匹配的数据类型还是自己声明的数据类型,一经确定就不能存其他类型的数据了。

在这里插入图片描述
在这里插入图片描述

1.2.4 修改文档

在这里插入图片描述
  如上图所示,我们在同一个索引中添加相同文档 id 的数据(POST、PUT 均可),他会覆盖上一个文档中的数据,另外数据的版本号 _version +1,注意这种方式如果漏掉了某些数据,不会保留旧的数据,相当于删除了旧的数据,根据新的重新创建。还有一种 update 方法,不设置某些值数据也不会丢失。

在这里插入图片描述

1.2.5 删除索引/文档

  删除使用 DELETE,会根据请求来判断删除的是文档还是索引。

在这里插入图片描述
在这里插入图片描述





1.3 分词器

1.3.1 默认分词器

在这里插入图片描述
  在 ES 中字符串类型有 keyword 和 text 两种。keyword 默认不进行分词,text 不指定分词器会使用默认分词器分词,如上图所示,就是使用默认分词器分的,它将每一个汉字拆开称为独立的词,显然不适合生产环境,我们需要使用其他分词器来帮助我们。


1.3.2 IK 分词器

  我们在之前的 【全文检索_03】Lucene 基本使用 中简单介绍了 IK 分词器的 Java API 的使用,ES 是基于 Lucene 开发的,那么也可以使用 IK 分词器,只不过大佬将 IK 封装成了一个插件,我们去 github 下载后,添加到 ES 的插件库中就可以使用了,简单粗暴来说就是下载后丢到 ES 的 plugins 文件夹中解压就 OK 了。

在这里插入图片描述

  IK 分词器提供了两个分词算法 ik_smartik_max_word,其中 ik_smart为最粗粒度的拆分,即分词的时候只分一次,句子里面的每个字只会出现一次。ik_max_word 为最细粒度划分,即句子中字可以反复出现,只要在词库里面出现过的就拆分出来。

在这里插入图片描述
在这里插入图片描述
  与之前一样,有 Ik 分词器中没有的词或者不想分词的词可以将其加入到扩展词典或者扩展停止词典中。注意这两个词典的后缀为 dic,一行代表一个词。

在这里插入图片描述


1.3.3 Mapping 指定分词器

  注意,一定要在创建 Mapping 的时候指定分词器,否则会使用默认的分词器。在指定数据类型时,同时使用 analyzer 就可以指定分词器了,除了默认分词器 Standard 以外,指定其他分词器的前提是已经加载该分词插件。

在这里插入图片描述


1.3.4 查询元数据

在这里插入图片描述

  如上图所示,使用 GET _cat 就可以查询元数据了,查询后加上 ?v 会显示返回数据的字段名,加 ?help 显示命令返回的参数说明,加 ?h 选择要显示的列,加 ?format 设置返回的内容格式(支持json,yaml,text等),加 ?sort 排序,多个参数一起使用,用 & 连接。详细 cat 用法参考 官网

元数据说明
plugins显示节点上的插件
health查看集群健康状况
indices查看索引信息
count显示索引文档的数量
aliases显示别名,过滤器,路由信息
allocation显示每个节点分片数量、占用空间
master显示master节点信息
nodeattrs显示node节点属性
nodes显示node节点信息
pending_tasks显示正在等待的任务
recovery显示正在进行和先前完成的索引碎片恢复的视图
segments显示分片中的分段信息
shards显示索引分片信息
thread_pool显示线程池信息
templates显示模板信息



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值