1.es的认识
1.1什么是es?
es 全称elasticsearch
es : 做全文检索的 ,底层基于lucene的开发
lucene 相等于jdbc
es 相当于 mybatis/jpa
1.2 es和lucene的比较
为什么需要使用es.为什么不用lucene?
(1).api操作很麻烦 不方便
搜索 : 创建索引 搜索索引 一堆api
es: get /product/1 – {}
(2).lucene不支持集群
es集群 处理很大的数据量
1.3 ES和solr的区别
es 和 solr 都可以做全文检索,solr是重量级的框架,它除了全文检索以外,还可以做其他的事情(比如
命中标示、分面搜索、动态聚类、数据库集成,以及富文本(如Word、PDF)),solr可以nosql结合起来使用
solr 在传统的搜索效率要比es好,但是实时搜索领域比es低
2 使用ES(掌握)
(1).安装ES服务端
解压–>bin/elasticsearch.bat–>浏览器访问 http://localhost:9200/
9200web里面展示的效果 9300java程序可以访问的端口
(2).es的客户端的交互方式
a). 基于restful风格API的去操作
get post put delete patch
(1).curl的命令方式
(2).kibana也可以操作
(3).head工具
3 使用客户端
(1).kibanna客户端
index : 索引库
type: 看成一个表
json:看成一行数据
4 ES(服务) 集群的状态
red: 红色 不健康的状态 服务的有问题
green:绿色 所有的正常 主从都分配好,集群可以使用
yellow:黄色 主从分配 至少有一个从缺失
2主 1从
5 文档的crud
5.1 基本的crud
# 完成crud
# 新增
PUT rpms/employee/1
{
"name":"zhangsan",
"age":18
}
# 修改 --整个文档
POST rpms/employee/1
{
"name":"lisi"
}
# 修改局部文档
POST rpms/employee/1/_update
{
"doc":{"name":"lisi"}
}
# 查询
GET crm/employee/1
# 删除
DELETE crm/employee/1
5.2 特殊的用法:
# 展示没有什么效果
GET rpms/employee/AW-tOSHILqo6XVH8f6cg?pretty
# 展示部分的字段
GET rpms/employee/AW-tOSHILqo6XVH8f6cg?_source=age,name
# 返回元数据
GET rpms/employee/AW-tOSHILqo6XVH8f6cg/_source
# 修改数据 (脚本修改)
POST rpms/employee/AW-tOSHILqo6XVH8f6cg/_update
{
"script" : "ctx._source.age += 5"
}
# 批量新增
POST _bulk
{ "delete": { "_index": "itsource", "_type": "employee", "_id": "123" }}
{ "create": { "_index": "itsource", "_type": "blog", "_id": "123" }}
{ "title": "样本描述" }
{ "index": { "_index": "itsource", "_type": "blog" }}
{ "title": "采样详情" }
GET itsource/blog/_search
5.3 文档的查询
- 通过id查询
GET crm/employee/AW-tOSHILqo6XVH8f6cg/_source
- 批量查询
# 不同库 不同表数据
GET _mget
{
"docs" : [
{
"_index" : "itsource",
"_type" : "blog",
"_id" : "123"
},
{
"_index" : "rpms",
"_type" : "employee",
"_id" : "AW-tOSHILqo6XVH8f6cg",
"_source": ["name","age"]
}
]
}
# 同一个库 同一个表数据
GET itsource/blog/_mget
{
"ids":["123","AW-tQP_4Lqo6XVH8f6ci"]
}
3 其他的查询
# 分页查询
GET crm/employee/_search?size=3&from=6
# 带条件查询
GET crm/employee/_search?q=age:38
GET crm/employee/_search?q=age[18 TO 48]