一、ElasticSearch
1.作用
是零配置和完全免费的搜索模式,使用JSON/XML通过HTTP的索引数据,搜索服务器始终可用,能够从一台开始并在需要扩容时方便地扩展到数百,需要实时搜索,可以简单的多租户,能建立一个云的解决方案。
2.简介(简称ES)
(1)ES的索引库管理支持依然是基于Apache Lucene™的开源搜索引擎。
(2)ES也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
(3)ES的核心不在于Lucene,其特点更多的体现为:
分布式的实时文件存储,每个字段都被索引并可被搜索
分布式的实时分析搜索引擎
可以扩展到上百台服务器,处理PB级结构化或非结构化数据
高度集成化的服务,你的应用可以通过简单的 RESTful API、各种语言的客户端甚至命令行与之交互。
二、ES安装
ES服务只依赖于JDK,推荐使用JDK1.7+。
1.下载ES安装包
官方下载地址:https://www.elastic.co/downloads/elasticsearch
2.运行ES
3. 验证
访问:http://localhost:5601
看到上图信息,恭喜你,你的ES集群已经启动并且正常运行.
4.辅助管理工具Kibana5
① Kibana5.2.2下载地址:https://www.elastic.co/downloads/kibana
② 解压并编辑config/kibana.yml,设置elasticsearch.url的值为已启动的ES
③ 启动Kibana5 : bin\kibana.bat
④ 默认访问地址:http://localhost:5601
Discover:可视化查询分析器
Visualize:统计分析图表
Dashboard:自定义主面板(添加图表)
Timelion:Timelion是一个kibana时间序列展示组件(暂时不用)
Dev Tools :Console(同CURL/POSTER,操作ES代码工具,代码提示,很方便)
Management:管理索引库(index)、已保存的搜索和可视化结果(save objects)、设置 kibana 服务器属性。
三.ES数据管理
1.ES中的文档
一个文档不只有数据。它还包含元数据(metadata)—关于文档的信息。三个必须的元数据节点是:
_index:索引库,类似于关系型数据库里的“数据库”—它是我们存储和索引关联数据的地方。
_type:在应用中,我们使用对象表示一些“事物”,例如一个用户、一篇博客、一个评论,或者一封邮件。可以是大写或小写,不能包含下划线或逗号。我们将使用 employee 做为类型名。
_id:与 _index 和 _type 组合时,就可以在ELasticsearch中唯一标识一个文档。当创建一个文档,你可以自定义 _id ,也可以让Elasticsearch帮你自动生成。
另外还包括:_uid文档唯一标识(_type#_id)
_source:文档原始数据
_all:所有字段的连接字符串
2.文档的增删改
#创建库
PUT crm
#创建表(user:表名,1:Id)
POST crm/user/1
{
"id":1,
"name":"kd",
"age":12
}
#不设置Id,系统或默认给一个(