ElasticSerach
特点:
高可用 :是指通过设计减少系统不能提供服务的时间,通常的方式为在一个服务器宕机时,我们会自动使用备份服务器进行服务,以保证我们的服务不会停止
水平扩展 :在es中,当存在大量的复杂查询或者聚合查询时,我们可以通过增加节点的数量,以增加我们查询的性能,我们可以土狗在ElasticSerach中的conf文件下的elasticserach.yml文件下配置ip地址,在其他服务器下复制此文件即可实现水平扩展,即增加了节点
分片:es在集群的环境下时,对于一个查询或者其他请求,它会将此请求发送给每一个服务器,每一个服务器都会进行索引,并一起将数据返回,如何通过权重进行输出
EST full :es中通过接口的不同提交方式实现对于文档或者索引的增删查改
1.概念
ElasticSerach是apache下的一个开源搜索引擎,他是基于lucene开发的搜索服务器,他通过自身的水平扩展和分片,使得他能够处理大批量的数据,并且搜索能够实时稳定和高效。他没有自身的搜索可视化页面,我们通过使用Rest(在地址栏输入url的方式)可以对elasticSerach进行数据的各种修改
ES的核心为==水平扩展,分片与副本分片==
elasticsearch用于构建高可用和可扩展的系统。
2.使用
2.1、下载
通过https://mirrors.huaweicloud.com/elasticsearch/ 下载es
2.2、安装
解压压缩包即可
2.3、介绍
目录介绍 打开解压后的文件夹
bin–存放es的可执行文件 启动es的方式为运行它的elscitserach.bat文件 启动cmd窗口执行文件
config–存放es中的配置文件
--elasticSerach.yml elasticSerach的配置文件 该文件可以使es集群和水平扩展
--jvm.options 这时java虚拟机的配置文件 可以通过这个配置文件分配es的内存等
--log4j2.properties 存放es中的日志文件的配置
lib–存放es中的jar包
logs–存放日志文件
modules–模块
plugins–插件 存放ik分词器等
2.4、运行
在es目录下找到bin文件,双击运行es的elasticSerach.bat文件,前往浏览器或者RESTer
中输入es中的地址 127.0.0.1:9200 显示如下json
{
"name": "DESKTOP-FHMFD6I",
"cluster_name": "elasticsearch",
"cluster_uuid": "Q9CcTHOsSrG55_0tSKV-4A",
"version": {
"number": "7.3.2",
"build_flavor": "default",
"build_type": "zip",
"build_hash": "1c1faf1",
"build_date": "2019-09-06T14:40:30.409026Z",
"build_snapshot": false,
"lucene_version": "8.1.0",
"minimum_wire_compatibility_version": "6.8.0",
"minimum_index_compatibility_version": "6.0.0-beta1"
},
"tagline": "You Know, for Search"
}
代表已经运行成功es了!
2.4.1 es的数据
es中的数据与数据库数据的对应关系
数据库 | ES |
---|---|
数据库(database) | 索引(index) |
表(table) | 类型(type) |
行(row) | 文档(document) |
列(column) | 字段(field) |
表结构(schema) | 映射(mapping) |
索引 | 反向索引 |
SQL | 查询DSL |
提示:在ES 6.X版本之后,es取消了单索引多类型的写法,因为在传统sql数据库中,各个“table"之间相互独立,在一个表中的列都与另外一个表中的相同名称的列无关,而在elasticSerach中的同一个index下,同名的字段类型必须相同,即使是他们不在一个type下。
2.4.2es的CRUD
注:由于es使用的是RST full的方式进行的增删查改,建议使用Postman软件进行提交url
不同的请求方式对于es来说对应不同的使用方法
GET 请求 : 获取es中的数据
POST 请求:修改es中的数据
PUT 请求:添加es中的数据
DELETE 请求:删除es中的数据
创建索引
创建索引语法:http://{ip}:{port}/{索引名称} 使用put方式提交url地址
示例:127.0.0.1:9200/student
在本地的es主机上创建一个student索引
查询索引
http://{ip}:{port}/_cat/indices?v 使用get方式提交url地址
添加\修改\获取\删除数据
添加数据语法:http://{ip}:{port}/{index}/{type}/{数字id} 使用put提交 并且需要在body下添加json字符串
示例:127.0.0.1:9200/student/stu/1
结果
{ "_index": "student", "_type": "stu", "_id": "1", "_version": 1, "result": "created", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "_seq_no": 6, "_primary_term": 1 }
修改数据语法:http://{ip}:{port}/{index}/{type}/{数字id} 使用post提交 并且需要在body下添加json字符串
{ "_index": "student", "_type": "stu", "_id": "1", "_version": 4, "result": "updated", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "_seq_no": 3, "_primary_term": 1 }
获取数据语法:http://{ip}:{port}/{index}/{type}/{数字id} 使用get提交
{ "_index": "student", "_type": "stu", "_id": "1", "_version": 1, "_seq_no": 6, "_primary_term": 1, "found": true, "_source": { "name": "小明", "age"