概念
Elasticsearch是一款高度可伸缩的开源全文搜索分析引擎,是一种能够近实时检索、分析大量数据的一直解决方案,它通常作为一种搜索引擎的底层技术解决方案,来支撑复杂业务搜索需求。
看几个概念,这里没有直接把官网翻译过来,用最简短的词描述:
Node:节点,就是一个服务器,存放数据,提供搜索功能
Cluster:集群,多个节点组成提供稳定可扩展的搜索服务 Shards & Replicas:分片和复制,集群中会把数据切分成多份放到不同节点就是分片,并且每个分片会有备份 Index: 索引,一种类型的数据集合 Type: 类型,索引中的一个分类,可以看成是数据库的表 Document:文档,一条数据,相当于关系型数据库的row安装
这边在Windows下安装的,下载zip包解压,然后执行elasticsearch.bat,这样单机的启动就完成了。
浏览器输入 http://127.0.0.1:9200/ 看到以下信息就是启动成功了
操作
es提供了一系列rest的api,可以通过这些api操作集群、索引等,集群信息后续可以装可视化插件,api主要对索引进行操作。
创建索引:
PUT http://127.0.0.1:9200/index1请求体(分片、备份):{"settings":{"index":{"number_of_shards":"3","number_of_replicas":"2"}}}
分片一开始就确定,复制数量后续可以修改:/index/_settings {"number_of_replicas":"2"}
删除索引:DELETE http://127.0.0.1:9200/index1,
如果请求url后面加个?pretty参数,则结果json会美观的展示,
插入数据:
PUT http://127.0.0.1:9200/index1/type1/1?pretty{ {"name":"zhangsan","age":32}}
如果插入相同的id会替换掉之前的, 并且插入、修改、删除数据要在一秒之后在结果中才会有体现,这也是跟其他像sql事务提交后立马能查到的不同点。
如果不指定id, 用POST提交会随机产生id修改数据: POST /index/type/id/_update
删除数据: DELETE /index/type/id检索数据:GET http://127.0.0.1:9200/index1/_search?q=*&sort=age:asc&pretty
暂时没有高级查询部分。。。
可视化插件
Head插件安装参考:http://mobz.github.io/elasticsearch-head/
这里直接单机安装:下载解压后把根目录的index.html拖到浏览器中,然后会默认连接http://localhost:9200/,如果连接的时候报跨域异常就在配置文件config/elasticsearch.yml中配置如下:
http.cors.enabled: truehttp.cors.allow-origin: "*"
该配置的原理是es服务端返回头中会加上 Access-Control-Allow-Origin: *。
http相关的更多配置参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-http.html。
单机版副本没有分配,所以节点名称显示Unassigned,因为在同一台集群上做副本备份是没有必要的,所以单机版集群健康会一直表黄色(黄色表示不是所有副本都可用)。