• 150455

    文章

  • 1009

    评论

  • 13

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

elasticsearch7.9操作必看结合官方文档 es head的操作必看 es增删改查全详解


一、作者有话说

本文为了更加详细的讲解elasticsearch的操作,全部都是根据官网一点点进行说明。有兴趣对官网进行阅读的同学,建议移步官网
https://www.elastic.co/guide/en/elasticsearch/reference/7.5/getting-started-index.html

1.1 专业术语(必须进行掌握)

专业术语对学一个中间件来说,是非常重要的,建议大家先了解以下的专业术语
https://blog.csdn.net/qq_34168515/article/details/108315484

本文只介绍几个常用的术语

1.1.1 索引 index

索引就像关系数据库中的表。它具有一个包含type的 映射,该type包含索引中的字段。

注意:因为从6.x开始,就不推荐使用type是,但是为了兼容以下版本,type统一为 _doc

1.1.2 映射 mapping

映射就像关系数据库中的架构定义。每个 索引都有一个映射,该映射定义一个type,以及许多索引范围的设置。

注意:mapping一旦生成之后,就无法进行修改了,除非重新建立一个新的索引,再拷贝过去

1.1.3 字段 field

一个文件包含字段或键-值对的列表。该值可以是简单(标量)值(例如,字符串,整数,日期),也可以是嵌套结构(如数组或对象)。字段类似于关系数据库中表中的列

1.1.4 术语 term

术语是在Elasticsearch中索引的精确值。该条款 foo,Foo,FOO是不等价的。可以使用术语查询来搜索术语(即精确值)。

1.1.5 文本 text

文本(或全文)是普通的非结构化文本,例如本段。默认情况下,文本将被分析为 term,这是索引中实际存储的内容。

文本字段需要在索引时进行分析才能作为全文搜索,并且全文查询中的关键字必须在搜索时进行分析以产生(和搜索)与索引时生成的词相同的术语。

1.2 操作工具为 elasticsearch head

界面
在这里插入图片描述

es head的下载方式,由于篇幅问题,请自行百度!!!!!!

二、实际进行操作

参考官方 rest-api操作

https://www.elastic.co/guide/en/elasticsearch/reference/7.9/rest-apis.html

在这里插入图片描述

2.1 操作es的步骤

在这里插入图片描述

2.1 使用自动创建的形式创建index

es head操作
在这里插入图片描述

2.1.1 常规操作创建格式: POST 索引/_doc

POST can123/_doc
{
    "user" : "kimchy",
    "createDate" : "2020-09-06 11:19:10",
    "message" : "trying out Elasticsearch"
}

2.1.2 查看 创建的索引和数据

索引、索引对应的mapping,也就是数据库格式,都创建好了,我们查看一下

存在问题?由于createTime字段,是需要date时间格式的,但是mapping映射却是text格式,明显是不对,后续介绍如何进行处理
在这里插入图片描述
查看存入的数据
在这里插入图片描述
为了方便后续的测试,请添加多条数据



{"user":"dog","createDate":"2020-09-06 11:19:10","message":"four leg dog"}
{"user":"cat","createDate":"2020-09-06 11:19:10","message":"four leg cat"}
{"user":"frog","createDate":"2020-09-06 11:19:10","message":"four leg frog"}
{"user":"pig","createDate":"2020-09-06 11:19:10","message":"four leg pig"}
{"user":"duck","createDate":"2020-09-06 11:19:10","message":"two leg duck"}
{"user":"chick","createDate":"2020-09-06 11:19:10","message":"chick leg chick"}

在这里插入图片描述

2.2 删除index

添加

POST twitter/_doc/
{
    "user" : "kimchy",
    "post_date" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
}

2.2.1 删除格式: DELETE /索引

DELETE /twitter/

三、从es head来看es的重要的搜索功能

3.1 查找某个文档的全部内容 match_all

3.1.1 查看全部格式: POST 索引/_search

POST can123/_search

在这里插入图片描述

3.2 search的各种过滤

在这里插入图片描述

3.2.1 match 全文匹配

match和term的区别是,match查询的时候,elasticsearch会根据你给定的字段提供合适的分析器,而term查询不会有分析器分析的过程

查询 message 包含关键字dog的文档,ps: 注意和 term 的区别
在这里插入图片描述

查询 message 包含 red dog的文档,ps: 注意和 term 的区别

在这里插入图片描述

3.2.2 term 术语查询

term是代表完全匹配,即不进行分词器分析,文档中必须包含整个搜索的词汇
查询 message 包含关键字dog的文档,ps: 注意和 match 的区别
在这里插入图片描述
查询 message 包含 red dog的文档,ps: 注意和 match 的区别
在这里插入图片描述
结论:




  1. match进行分词器分析, 所谓的分词,就是把当前的value进行分词
  2. term是代表完全匹配,即不进行分词器分析

3.2.3 wildcard 通配符查询

类似正则表达式,可以对数据进行过滤查找
查找ck,如果正常的match是无法查找到的
在这里插入图片描述
采用通配符查询 *ck,就可以查找到
在这里插入图片描述



3.2.4 prefix 前缀查询

类似通配符查询,查找以xxx开头的关键字,参与倒排索引的每一个词查询前缀
在这里插入图片描述

3.2.5 fuzzy 模糊查询

在实际的搜索中,我们有时候会打错字,从而导致搜索不到。在Elasticsearch中,我们可以使用fuzziness属性来进行模糊查询,从而达到搜索有错别字的情形。
match查询具有“fuziness”属性。它可以被设置为“0”, “1”, “2”或“auto”。“auto”是推荐的选项,它会根据查询词的长度定义距离。

错别字模糊查询:那么它可以显示搜索的结果,这是因为我们能够容许两个编辑的错误。模糊性是拼写错误的简单解决方案,但具有很高的CPU开销和非常低的精度。

例如match查找 chack 是无法查询到的
在这里插入图片描述

但是使用fuzzy查找 chack是可以查找到 chick的
在这里插入图片描述

3.2.6 range 范围查询

范围查询,感觉非常好理解,就是 lt 小于某个范围, gt大于某个范围。

3.2.7 query_string 查询解析器

官方解释:使用具有严格语法的解析器,根据提供的查询字符串返回文档。
该查询使用语法根据操作符(如and或NOT)来解析和分割所提供的查询字符串。然后,查询在返回匹配的文档之前独立分析每个分割文本。
可以使用query_string查询创建包含通配符的复杂搜索、跨多个字段的搜索等等。虽然通用,但查询是严格的,如果查询字符串包含任何无效语法,则返回错误。

可以写正则表达式,或者使用or and 等对查询语句进行拼接,会更加灵活

同时查找 dog 和 cat
在这里插入图片描述

四、结尾

大部分的程序员,都是面向百度或者谷歌进行编程的,而网上的资料乱七八糟,有时候找起来让人难受,于是本人无偿进行资料收集的工作,大部分资料都是本人实打实收集的而且测试过,大家不用怀疑准确性,奈何能力有限,免于遗漏,希望读者可以在评论或者私信我,进行改正,大家一起为互联网技术做贡献。

========================

收集资料枯燥无味,如果本文对你有帮助,可以点个赞,这个也是对我最大的鼓励和赞许。

本人行不改名坐不改姓,潮汕的灿灿展

立志在互联网这一行,做出自己的贡献

========================


695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

1条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤 主体内容背景
打开支付宝扫码付款购买视频教程
遇到问题联系客服QQ:419400980
注册梁钟霖个人博客