(附 grep 'pwd' 意思是查询包含当前路径的应用 )
这节课讲了集群配置(slave1 slave2)
head 插件,作用是把 json 格式的内容展示为友好的图形化界面, 安装要用到 node js 的 npm 进行。 (地址是9100, es 是 9200 ,这个工具和 kibana 差不多,在别的端口号另起个服务)
解决跨域问题(集群健康值:未连接)
在 es 的配置 yml 里加上两行语句用来解决跨域问题,刷新(上面的未连接变成绿背景 0 of 0)
官网下载,解压,执行命令启动,在浏览器打开, http://本机 ip: 9200 看到 json 结构即启动完毕;
(可跳过,就报了几个版本号,其他没说)
es 是对 lucene 的简化,使用了 restful api
支持横向扩展,支持结构化和非结构化数据
应用场景:海量数据分析,站内搜素,数据仓库(PB级别的数据)
es 的 query 的匹配和 sql 里的区别:用 _score 来标识匹配程度有多好(而 sql 则是要么匹配,要么不匹配,即使是模糊查询也是)
restful 对索引的操作(讲解用 postman 操作)
集群 (cluster_name)和节点(name),不同的 name设置成相同的 cluster_name ,就并成了1个集群;
-----------------------------------------------
索引:含有相同属性的文档(被索引的基本数据单元)集合,相当于数据库
类型:索引可以定义多个类型,文档必须属于1个类型,相当于表
查询
简单查询
查询id号
条件查询
查询满足条件的数据
聚合查询
查询满足条件的数据的统计结果
插入文档
指定文档id插入
自动产生文档id插入
ES基础概念
节点一到节点n
索引:含有相同属性的文档集合
类型:文档必须属于一个类型
文档:可以被索引的基础数据单位
分片:每个索引有多个分片
5.X 新版本
filter context
字条件查询是什么
文档修改
指定id修改
请求方式 post 地址:/索引/类型/文档id/_update(关键词)
直接修改
参数: doc(关键词)
通过脚本修改
参数:(关键词)
文档修改
指定id修改
请求方式 post 地址:/索引/类型/文档id/_update(关键词)
直接修改
参数: doc(关键词)
通过脚本修改
参数:script(关键词)
文档修改
指定id修改
请求方式 post 地址:/索引/类型/文档id/_update(关键词)
直接修改
参数: doc(关键词)
通过脚本修改
参数:script(关键词)
文档修改
指定id修改
请求方式 post 地址:/索引/类型/文档id/_update(关键词)
直接修改
参数: doc(关键词)
通过脚本修改
参数:script(关键词)
插入索引
1.指定id
put请求 地址:索引/类型/id
2.自动生成id
post请求 地址:索引/类型/
head创建索引
默认分片数5 备份1 粗边框是主分片 细边框为粗边框的备份分片
mapping 结构化分片区分
请求地址:
http://127.0.0.1:9200/book/novel/_mapping索引/类型/文档id
请求方式:POST
创建索引直接请求api接口
http://127.0.0.1:9200/people索引
请求方式:PUT
参数:settings关键词 指定分片数 和备份
可以使用“||”定义多种类型
修改
http://127.0.0.1:9200/update/book/novel?id=&time=
UpdateRequest update=new UpdateRequest("book","novel",id);
XContentFactory content = XContentFactory.jsonBuilder().startObject().field("XXX",value).endObject();//可以增加判空逻辑,最后必须以endObject()结尾。
update.doc();
UpdateResponse result = client.update(update).get();
result.getResult();
验证:
http://127.0.0.1:9200/get/book/novel?id=
删除
http://127.0.0.1:9200/delete/book/novel?id=
DeleteResponse result = this.client.prepareDelete("bool","novel",id).get();
验证: http://127.0.0.1:9200/get/book/novel?id=
增加
http://127.0.0.1:9200/add/book/novel
XContentBuilder content=XContentBuilder.jsonBuilder().startObject().field.("XXX",paramValue).endObject();
IndexResponse result= this.client.prepareIndex("book","novel").setSource(content).get;
数据id result.getId();
验证 http://127.0.0.1:9200/get/book/novel?id=
查询
http:127.0.0.1:9200/get/bool/novel?params=
GetResponse result = this.client.PrepareGet("book","novel").get();
127.0.0.1:9200/people/man/1
127.0.0.1:9200/people/man/1 POST
1、RESTFul API
基本格式:<http://><ip>:<port>/index/type/id
常用http动词:GET/PUT/POST/DELETE
2、创建索引:
PUT方法
索引结构:(json)
{
"setting":{
"number_of_shards": 5
"number_of_replicas": 1
}
"mappings": {
"novel":{
"propperties":{
"title":{
"type":"text"
}
}
}
}
}
}
1、RESTFul API
基本格式:<http://><ip>:<port>/index/type/id
常用http动词:GET/PUT/POST/DELETE
2、创建索引:
PUT方法
索引结构:(json)
{
"setting":{
"number_of_shards": 5
"number_of_replicas": 1
}
"mappings": {
"novel":{
"propperties":{
"title":{
"type":"text"
}
}
}
}
}
}
1、RESTFul API
基本格式:http://ip:port/index/type/id
常用http动词:GET/PUT/POST/DELETE
2、创建索引:
PUT方法
索引结构:(json)
{
"setting":{
"number_of_shards": 5
"number_of_replicas": 1
}
"mappings": {
"novel":{
"propperties":{
"title":{
"type":"text"
}
}
}
}
}
}
1、RESTFul API
基本格式:http://ip:port/index/type/id
常用http动词:GET/PUT/POST/DELETE
2、创建索引:
PUT方法
索引结构:(json)
{
"setting":{
"number_of_shards": 5
"number_of_replicas": 1
}
"mappings": {
"novel":{
"propperties":{
"title":{
"type":"text"
}
}
}
}
}
}