Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。
ElasticSearch的底层是开源库 Lucene。ElasticSearch是Lucene的封装,提供了 REST API 的操作接口,开箱即用。
1.ES的结构
1.1 Index
Index:索引,相当于MySQL中的数据库。
一个ES服务可以创建多个Index。
一个ES的Index默认有5个分片,每一个分片最少有1个备份分片。
备份分片必须放在不同的服务器中。
1.2 Type
Type:类型,相当于MySQL中的表。
在v5.x版本中,1个Index有多个Type;在v6.版本中,1个Index有1个Type;在v7.x版本中,Index中没有Type了。
1.3 Document
Document:文档,相当于MySQL中的行。
1.4 Field
Field:字段,相当于MySQL中的列。
2 ES的RESTful操作
2.1 GET请求
查询索引:http://ip:port/index
查询文档:http://ip:port/index/type/doc_id
2.2 POST请求
查询文档:http://ip:port/index/type/_search
在请求体中添加一个json字符串作为查询的条件。
修改文档:http://ip:port/index/type/doc_id/_update
在请求体中添加一个json字符串作为修改的条件。
2.3 PUT请求
创建:http://ip:port/index
在请求体中添加一个json字符串作为创建索引的条件。
创建同时指定文档属性信息:http://ip:port/index/type/_mappings
2.4 DELETE请求
删除索引:http://ip:port/index
删除文档:http://ip:port/index/type/doc_id