一、ElasticSearch的认识
ElasticSearch是(以下简称ES)一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎。ES也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
二、ES初体验(安装及使用)
1.安装
自认为ES的安装比较简单,我们只需要下载官方的运行包,启动服务即可。
官方下载地址:https://www.elastic.co/downloads/elasticsearch
安装好ES后我们还需要发起http请求的终端来接入,如kibana5等。
2.使用
运行ES服务,找到解压后文件夹的bin目录,双击elasticsearch.bat启动服务。
在浏览器地址栏输入访问:http://localhost:9200/,若看到下图信息,你的ES已正常启动运行。
三、ES数据管理
1.ES文档
ES是面向文档的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在ES中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。且ES是使用JSON作为文档序列化格式的,众所周知,JSON被大多数语言支持,已成为了NoSQL领域的标准格式。
一个文档不只有数据。它还包含元数据(metadata)—关于文档的信息。包括(_index:文档储存的地方,_type:文档所代表对象的类,_id:文档的唯一标识)。
2.文档的CRUD
① 使用自己的ID创建索引文档:PUT {index}/{type}/{ id} 也可以用ES的内置id创建。
② 获取指定ID的文档:GET {index}/{type}/{id}
③修改文档
更新整个文档:PUT {index}/{type}/{id} ,在响应中ES把 _version 增加了。
局部更新文档: POST {index}/{type}/{id},接受一个局部文档参数 doc,如下图代码块,数据存在即覆盖,新增即保存。
POST zy/employee/1/_update
{
“doc” : {
"email" : "zhangyang@8888888.cn",
"salary": 9000
}
}
④删除文档:DELETE {index}/{type}/{id} 。
3.文档的简单查询
①通过文档id获取,如上获取指定文档。
②批量获取,两种方式如下:
方式1:GET _mget
{
"docs" : [
{
"_index" : "zy",
"_type" : "blog",
"_id" : 2
},
{
"_index" : "zy",
"_type" : "employee",
"_id" : 1,
"_source": ["name","age"]
}
]
}
方式2:同一个索引库的同一个类型下
GET zy/blog/_mget
{
"ids" : [ "1", "2" ]
}
③不含任何查询条件的空搜索,只返回集群中的所有文档: GET _search
④分页搜索:和sql返回一页数据类似,ES接收form和size参数。
size : 每页条数,默认 10;
&n