首先我们启动elasticsearch、elasticsearch-head和kibana
elasticsearch的启动只需在 cmd 中运行 elasticsearch.bat文件
elasticsearch-head 需要安装node.js 然后使用 npm run start 这样的命令进行启动
kibana启动的时候需要在kibana当中运行kibana.bat文件即可
三个软件启动之后可以这样检测其是否启动成功:
elasticsearch:
浏览器输入 http://localhost:9200/出现下面的:
elasticsearch-head
浏览器输入 http://localhost:9100/出现下面的:
kibana
浏览器输入 http://localhost:5601/ 出现下面的界面,点击 DEV TOOLS 然后回出现控制elasticsearch的控制面板,可以向其中发送查询语句
接下来完成一个增删改查的流程:
首先我们先删除所有的index:
locallhost:9100 在 elasticsearch-head的管理界面删除之前建立的索引
然后我们回到 kibana---Dev Tools>的管理界面,左边执行添加的代码:
#number_of_shards 分片数量
#number_of_replicas 副本数量PUT lagou
{
"settings":{
"index":{
"number_of_shards":5,
"number_of_replicas":1
}
}}
于是这样便添加成功了一个索引,可以在 localhost:9100 中 的elastiicsearch-head的管理界面 进行调整数据浏览中看到
如果想要获取设置的信息,我们可以执行下面的代码:
#获取lagou的设置
GET lagou/_settings
#获取所有的设置
GET _all/_settings
#获取所有的设置(同上)
GET _settings
#获取kibana和lagou的设置
GET .kibana,lagou/_settings
--------------------------------------------------------------------------------
在设置中分片的数量不能修改但是副本的数量可以修改
#number_of_shards 分片数量
#number_of_replicas 副本数量#修改副本数量设置
PUT lagou/_settings
{
"number_of_replicas":2
}
#获取索引信息
GET _all
GET lagou
-------------------------------------------------------------------------------------
接下来是保存一篇文档到索引当中去 (相当于插入一条记录到一个数据库表当中)
PUT lagou/job/1
{
"title":"python分布式爬虫开发",
"salary_min":15000,
"city":"北京",
"company":{
"name":"百度",
"company_addr":"北京市软件园"
},
"publish_date":"2017-4-16",
"comments":15
}
#保存文档到索引当中,不给id
POST lagou/job/
{
"title":"java架构师",
"salary_min":30000,
"city":"上海",
"company":{
"name":"美团",
"company_addr":"北京市软件园"
},
"publish_date":"2017-4-16",
"comments":20
}
---------------------------------------------------------------------------------
下面的语句相当于sql中的查询语句:
#获取某个索引中某个类型某个id的数据
GET lagou/job/1
#或者可以这样
GET lagou/job/1?_source
#这个语句相当于sql中的 select title from job where id = 1
GET lagou/job/1?_source=title
#这个语句相当于sql中的 select title,city from job where id = 1
GET lagou/job/1?_source=title,city
-----------------------------------------------------------------------------------
下面的语句相当于sql中的更新语句
#修改文档 (这种采用的是覆盖的方式) 相当于sql中的 update job set title=?,salary_min=?city=? (....省略...) where id = 1
PUT lagou/job/1
{
"title":"linux运维工程师",
"salary_min":10000,
"city":"广州",
"company":{
"name":"腾讯",
"company_addr":"广州软件园"
},
"publish_date":"2017-4-12",
"comments":21
} # update job set comments = 20 where id = 1
POST lagou/job/1/_update
{
"doc":{
"comments":20
}
}
-----------------------------------------------------------------------------------
下面的语句相当于sql中的删除语句
-----------------------------------------------------------------------------------
下面的语句相当于sql中的更新语句
#删除 分为三种删除
#删除一条记录(文章),
#删除一个type(表)
#删除整个 index (库)
-----------------------------------------------------------------------------------
下面的语句相当于sql中的更新语句
#1.删除一条记录(文章),
DELETE lagou/job/1
#2.删除一个type(表)
#DELETE lagou/job
#尝试了一下,结果不行,表明es5不再支持删除type
#3.删除整个 index (库)
DELETE lagou
----------------------------------------------------------------------------------
注:每次在执行完毕操作之后,都可以在 localhost:9100 当中查看数据库的变化。