ElasticSearch下载地址:https://www.elastic.co/cn/downloads/elasticsearch
es是一个使用java编写的开源项目,所以需要jdk环境支持(且jdk版本须在1.8以上),安装方式简单粗暴,通过上方地址下载完压缩包后直接解压,进入bin目录执行elasticsearch.bat或elasticsearch.sh脚本即可运行搜索引擎。下面只是简单介绍下如何使用restful的API对文档进行增删改(es是面向文档编程)。
首先需要明白es的几个名词概念:
es的数据存储格式为_index/_type/_id,你可以理解为关系型数据库中的 _数据库/_表格/_主键,下面给出几个根据这个格式的增删改实例:
一 、指定主键插入数据:
PUT /{index}/{type}/{id}
{
"name": "小红",
"age":32,
"address":"河北省邢台市xxx"
}
使用restful请求中的put请求,请求搜索引擎地址,参数为json格式。一般本地es地址对外restful开放地址都是127.0.0.1:9200,那么插入的语句就是 127.0.0.1:9200/{index}/{type}/{id},大括号内的字段都是自定义的,es会根据你写的名字把数据放到指定index下的type下,并给这条数据的id标识为{id},如果id字段不填写的话es会给数据一条自增长id。插入成功后es会返回json字符串。
{
"_index": "website",
"_type": "blog",
"_id": "123",
"_version": 1,
"created": true
}
二、根据id查询数据:
GET /{index}/{type}/{id}
第一步插入之后,根据插入时的字段使用get请求去es请求数据,路径可以写成127.0.0.1:9200/{index}/{type}/{id},可以看到查询出的数据就是第一步插入的数据
{
"_index" : "website",
"_type" : "blog",
"_id" : "123",
"_version" : 1,
"found" : true,
"_source" : {
"name": "小红",
"age":32,
"address":"河北省邢台市xxx"
}
}
三、根据id更新字段:
es的更新和插入时的请求一模一样,同样使用put请求请求已存在的数据地址
PUT /{index}/{type}/{id}
{
"name": "小黄",
"age":33,
"address":"河北省邢台市xxx"
}
执行插入请求后返回json格式返回值
{
"_index" : "website",
"_type" : "blog",
"_id" : "123",
"_version" : 2,
"created": false <1>
}
从响应中我们可以看到_version字段变为了2,created字段也变为了false,执行后再次查询这条数据,发现数据已修改完成。
四、根据id删除数据:
DELETE /{index}/{type}/{id}
使用restful中的delete请求请求同样的地址执行删除文档操作,执行成功后es返回json格式字符串
{
"found" : true,
"_index" : "website",
"_type" : "blog",
"_id" : "123",
"_version" : 3
}
这样就表示数据删除成功,如果响应值中的found字段为false时,则表示指定id的数据没找到,再次执行第二步的查询请求你将会发现数据已经找不到了。
下一篇将会讲到es的全局查询和ik分词器的安装!!