1.Elasticsearch 是什么

Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。Elaticsearch,简称为 ES,ES 是一个开源的高扩展的分布式全文搜索引擎,是整个ElasticStack 技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据。
2.Lucene、Elasticsearch、Solr 是什么
2.Elasticsearch 入门
2.1 Elasticsearch 安装
2.1.1 下载软件
Elasticsearch 分为 Linux 和 Windows 版本,根据自己需要选择,公司用的一般都是linux版
本
2.1.2 安装软件
解压后,进入 bin 文件目录,点击 elasticsearch.bat 文件启动 ES 服务

2.1.3 问题解决
-
Elasticsearch 是使用 java 开发的,且 7.8 版本的 ES 需要 JDK 版本 1.8 以上,默认安装包带有 jdk 环境,如果系统配置 JAVA_HOME ,那么使 用系统默认的 JDK ,如果没有配 置使用自带的 JDK ,一般建议使用系统配置的 JDK 。
-
双击启动窗口闪退,通过路径访问追踪错误,如果是“空间不足”,请修改config/jvm.options 配置文件

2.2 Elasticsearch 基本操作
2.2.1 RESTful
2.2.2 客户端安装
2.2.3 数据格式
2.2.4 HTTP 操作
请求后,服务器返回响应

{
"acknowledged"【响应结果】: true, # true 操作成功
"shards_acknowledged"【分片结果】: true, # 分片操作成功
"index"【索引名称】: "shopping"
}
# 注意:创建索引库的分片数默认 1 片,在 7.0.0 之前的 Elasticsearch 版本中,默认 5 片
2) 查看所有索引
3) 查看单个索引
在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/shopping

{"shopping" 【索引名】 : {"aliases" 【别名】 : {},"mappings" 【映射】 : {},"settings" 【设置】 : {"index" 【设置 - 索引】 : {"creation_date" 【设置 - 索引 - 创建时间】 : "1614265373911","number_of_shards" 【设置 - 索引 - 主分片数量】 : "1","number_of_replicas" 【设置 - 索引 - 副分片数量】 : "1","uuid" 【设置 - 索引 - 唯一标识】 : "eI5wemRERTumxGCc1bAk2A","version" 【设置 - 索引 - 版本】 : {"created": "7080099"},"provided_name" 【设置 - 索引 - 名称】 : "shopping"}}}}
重新访问索引时,服务器返回响应:索引不存在


2.2.4.2 文档操作
1) 创建文档
{"title":" 小米手机 ","category":" 小米 ","images":"http://www.gulixueyuan.com/xm.jpg","price":3999.00}

此处发送请求的方式必须为 POST,不能是 PUT,否则会发生错误

服务器响应结果如下:

{"_index" 【索引】 : "shopping","_type" 【 类型 - 文档 】 : "_doc","_id" 【唯一标识】 : "Xhsa2ncBlvF_7lxyCE9G", # 可以类比为 MySQL 中的主键,随机生成"_version" 【版本】 : 1,"result" 【结果】 : "created", # 这里的 create 表示创建成功"_shards" 【分片】 : {"total" 【分片 - 总数】 : 2,"successful" 【分片 - 成功】 : 1,"failed" 【分片 - 失败】 : 0},"_seq_no": 0,"_primary_term": 1}

此处需要注意:如果增加数据时明确数据主键,那么请求方式也可以为 PUT
查询成功后,服务器响应结果:

{"_index" 【索引】 : "shopping","_type" 【文档类型】 : "_doc","_id": "1","_version": 2,"_seq_no": 2,"_primary_term": 2,"found" 【查询结果】 : true, # true 表示查找到, false 表示未查找到"_source" 【文档源信息】 : {"title": " 华为手机 ","category": " 华为 ","images": "http://www.gulixueyuan.com/hw.jpg","price": 4999.00}}
3) 修改文档
请求体内容为:
{"title":" 华为手机 ","category":" 华为 ","images":"http://www.gulixueyuan.com/hw.jpg","price":4999.00}
修改成功后,服务器响应结果:

{"_index": "shopping","_type": "_doc","_id": "1","_version" 【版本】 : 2,"result" 【结果】 : "updated", # updated 表示数据被更新"_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 2,"_primary_term": 2}
4) 修改字段
{"doc": {"price":3000.00}}
修改成功后,服务器响应结果:

根据唯一性标识,查询文档数据,文档数据已经更新


5) 删除文档
删除成功,服务器响应结果:

{"_index": "shopping","_type": "_doc","_id": "1","_version" 【版本】 : 4, # 对数据的操作,都会更新版本"result" 【结果】 : "deleted", # deleted 表示数据被标记为删除"_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 4,"_primary_term": 2}
删除后再查询当前文档信息

如果删除一个并不存在的文档

{"_index": "shopping","_type": "_doc","_id": "1","_version": 1,"result" 【结果】 : "not_found", # not_found 表示未查找到"_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 5,"_primary_term": 2}
6) 条件删除文档
{"title":" 小米手机 ","category":" 小米 ","images":"http://www.gulixueyuan.com/xm.jpg","price":4000.00}{"title":" 华为手机 ","category":" 华为 ","images":"http://www.gulixueyuan.com/hw.jpg","price":4000.00}

向 ES 服务器发 POST 请求 :http://127.0.0.1:9200/shopping/_delete_by_query
请求体内容为:
{"query":{"match":{"price":4000.00}}}
删除成功后,服务器响应结果:

{"took" 【耗时】 : 175,"timed_out" 【是否超时】 : false,"total" 【总数】 : 2,"deleted" 【删除数量】 : 2,"batches": 1,"version_conflicts": 0,"noops": 0,"retries": {"bulk": 0,"search": 0},"throttled_millis": 0,"requests_per_second": -1.0,"throttled_until_millis": 0,"failures": []}
2.2.4.3 映射操作
1) 创建映射
{"properties": {"name":{"type": "text","index": true},"sex":{"type": "text","index": false},"age":{"type": "long","index": false}}}
服务器响应结果如下:


1万+

被折叠的 条评论
为什么被折叠?



