elasticsearch是一个基于 Apache Lucene ™ 的开源搜索引擎。无论在开源还是专有领域,Lucene 可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
想学习好elasticsearch,首先第一步,就是阅读官方文档。目前es的版本有2.x,5.x,6.x,7.x,可见elasticsearch更新多快!!!
官方文档链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
点进去看,有些同学,一下子就头晕了。因为是全英语的,不知道如何下手。我写这一篇的原因,就是教你如何学习elasticsearch官方文档的!!!
网上的资料过多,碍于篇幅,略过
网上的资料过多,碍于篇幅,略过
具体操作,可以参考我之前写的文章:https://blog.csdn.net/qq_34168515/article/details/108428406
这个是es专门的查询语言,也是操作es必备的知识,这个是需要掌握的
链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html
对于mysql熟悉的人,可以理解为mysql的sql语句
es的非常多客户端,例如:
Java REST Client [7.9] — other versions
Java API [7.9] — other versions
JavaScript API [7.x] — other versions
Ruby API [7.x] — other versions
Go API
.NET API [7.x] — other versions
PHP API [7.x] — other versions
Perl API
Python API
eland Client
Rust API
Community Contributed Clients
Query DSL为上面客户端的使用提供参考。
elasticsearch和mysql进行对比
主要是讲述,mapping对应elasticsearch的数据结构
链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html
elasticsearch 虽然是非关系型数据库,但是也是需要很强的数据结构,而且数据结构mapping一旦初始化之后,就无法进行修改的。如果要进行修改,只能重新创建索引,也就是重新创建库
使用elasticsearch head查看索引的数据结构
首先,我们必须明确什么是聚合查询
有点类似于 SQL 中的 group by 再加一些函数方法的操作。但是要强大很多。
rest api,顾名思义,就是restful风格接口的api,这个是对于我们开发来说,是非常重要的
常⽤的HTTP动词有下面五个
GET(SELECT):从服务器取出资源(⼀项或多项)。
POST(CREATE):在服务器新建⼀个资源。
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
DELETE(DELETE):从服务器删除资源。
可以参考我之前的文章:https://blog.csdn.net/qq_34168515/article/details/108315484
我挑几个重要的来进行说明
⼀个索引就是⼀个拥有几分相似特征的⽂档的集合。 相当于MySQL中的数据库
在⼀个索引中,你可以定义⼀种或多种类型。⼀个类型是你的索引的⼀个逻辑上的分类/分区,其语义完全由你来定。通常,会为具有⼀组共同字段的⽂档定义⼀个类型。 类似数据库表 在7.0之后,类型只有⼀种 _doc
⼀个⽂档是⼀个可被索引的基础信息单元。相当于MySQL中的数据表中的数据,每⼀条数据就是⼀个⽂档
⼀个索引可以存储超出单个结点硬件限制的⼤量数据。⽐如,⼀个具有10亿⽂档的索引占据1TB的磁盘 空间,⽽任⼀节点都没有这样⼤的磁盘空间;或者单个节点处理搜索请求,响应太慢。为了解决这个问 题,Elasticsearch提供了将索引划分成多份的能⼒,这些份就叫做分⽚。当你创建⼀个索引的时候,你 可以指定你想要的分⽚的数量。每个分⽚本身也是⼀个功能完善并且独⽴的“索引”,这个“索引”可以被 放置到集群中的任何节点上。
分片很重要,主要有两⽅⾯的原因:
1)允许你⽔平分割/扩展你的内容容 量。
2)允许你在分⽚(潜在地,位于多个节点上)之上进行分布式的、并行的操作,进而提⾼性能/吞吐量。
官方地址:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/index.html