(一)什么是ElasticSearch
ES和Lucene一样是用来实现全文检索(创建索引和搜索索引)
lucene是全文检索工具包,而ES是全文搜索服务器
(二)为什么要使用ElasticSearch
lucene不足:
- lucene只能在java中以java引入项目,其他语言就不行了.
- lucene使用非常复杂,写一大堆代码来实现创建索引和搜索索引.
- lucene不能集群(多个服务器部署同一个项目协调工作)环境使用
因为lucene是需要索引文件,而在集群环境之下不能共享硬盘,索引文件不能同步,所以只能在不支持集群的中小型项目中使用
ES弥补了lucene不足,而且其他方面还做了加强.
- 不仅支持java环境
es是服务器,它把原来lucene很复杂的操作封装成了Restful(http)接口.原来要写一大堆代码创建索引. 现在只需发一个http请求就OK(put http://127.0.0.1/user {…}),其他语言也可以发送http请求,所以支持多种开发语言. - 使用方式变得很简单
进行了封装,只需发请求到服务器就OK - 也能在集群环境使用
多个应用服务器(代码)使用的是同一个搜索服务器. - ES本身也可以集群
支持多个应用服务器高并发访问ES.
ElasticSearch简化了全文检索lucene的使用,同时增加了分布式的特性,使得构建大规模分布式全文检索变得非常容易。
(三)ElasticSearch的使用者
(四)认识Resultfu架构
-
官网下载
ES服务端下载:https://www.elastic.co/downloads/elasticsearch
ES良好的客户端支持Kibana5下载:https://www.elastic.co/downloads/kibana -
ES的交互协议Restful
Restful是一种面向资源的架构风格,可以简单理解为:使用URL定位资源
用HTTP动词(GET,POST,DELETE,PUT)描述操作,资源使用名词进行表示。
① 获取id为1的用户
get http://127.0.0.1:8080/user/1
② 删除用户
delete http://127.0.0.1:8080/user/1
③ 添加用户
put http://127.0.0.1:8080/user/
{
“id”:1,
“name”:”zs”
}
④ 修改用户
Post http://127.0.0.1:8080/user/
{
“id”:1,
“name”:”zs”
}