Elasticsearch索引操作
一、索引初始化操作
插件推荐使用head、marvel (收费)
1.1 创建新索引
curl -XPUT 'http://localhost:9200/test' -d '
{
"settings":{
"index":{
"number_of_shards": 5,
"number_of_replicas": 1
}
}
}
'
返回如下内容即为成功:
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "test"
}
number_of_replicas可以替换为:
blocks.read_only : 设为true, 则当前索引只允许读,不允许写或更新;
blocks.read : 设为true , 则禁止读操作;
blocks.write : 设为true , 则禁止写操作;
blocks.metadata : 设为true , 则禁止对metadata操作。
1.2 查询索引的设置信息
curl -XGET 'http://localhost:9200/test/_settings?pretty'
curl -XGET 'http://localhost:9200/test,test2/_settings?pretty'
curl -XGET 'http://localhost:9200/_all/_settings?pretty'
1.3 创建文档
curl -XPUT 'http://localhost:9200/test/book/1' -d '
{
"title": "ZQW Book",
"name": {
"first": "Z",
"last": "QW"
},
"publish_date": "2017-11-20",
"price": "39.99"
}
'
不设置文档ID
curl -XPOST 'http://localhost:9200/test/book/' -d '
{
"title": "No ID",
"name": {
"first": "Z",
"last": "QW"
},
"publish_date": "2017-11-20",
"price": "39.99"
}
'
1.4 获取文档
curl -XGET 'http://localhost:9200/test/book/1'
1.5 通过 _source 获取指定字段
curl -XGET localhost:9200/test/book/1?_source=title
curl -XGET localhost:9200/test/book/1?_source=title,price
curl -XGET localhost:9200/test/book/1?_source
1.6 更新文档
curl -XPOST 'http://localhost:9200/test/book/1/_update' -d '
{
"doc" : {
"price" : "free"
}
}
'
1.7 删除文档
curl -XDELETE 'http://localhost:9200/test/book/1'
curl -XDELETE 'http://localhost:9200/test/book'
curl -XDELETE 'http://localhost:9200/test'
1.8 _mget 批量获取
curl -XPOST 'http://localhost:9200/_mget' -d '
#### docs 属组 ####
{
"docs": [
{
"_index": "library",
"_type": "book",
"_id": 2
},
{
"_index": "library",
"_type": "book",
"_id": 3,
#####只获取指定数据#####
"_source" : "price"
},
{
"_index": "shop",
"_type": "apple",
"_id": 1
}
]
}
'
相同index,type下通过不同ID批量寻找文档
curl -XPOST 'http://localhost:9200/library/book/_mget' -d '
{
"docs" : [
{ "_id" : 1 },
{ "_type" : "book", "_id" : 2 }
]
}
#####或者如下#####
{
"ids": [ 0, 1, 2, 3, 4 ]
}
'
1.9 bulk 批量操作
实现多个文档的 create、index、update 或 delete 操作
请求体格式(不能如同常规JSON格式一般美化展示):
{action:{metadata}}\n
{request body}\n
ex: { "delete" : { "_index" : "test","_type" : "type","_id" : "1" } }
curl -XPOST 'http://localhost:9200/test/type/_bulk' -d '
{ "index": {"_id": 0}}
{ "title" : "test00","exist": "true"}
{ "index": {"_id": 1}}
{ "title" : "test01","exist": "true"}
{ "index": {"_id": 2}}
{ "title" : "test02","exist": "true"}
{ "index": {"_id": 3}}
{ "title" : "test03","exist": "true"}
{ "index": {"_id": 4}}
{ "title" : "test04","exist": "true"}
'
批量操作:
curl -XPOST 'http://localhost:9200/test/type/_bulk?pretty' -d '
{"delete": {"_index": "test","_type": "type","_id" : ""}}
{"create": {"_index": "meta","_type":"mtype","_id":""}}
{"title":"meta_type01","exist":"true"}
{"index":{"_index": "meta","_type":"mtype"}}
{"title":"meta_type02","exist":"true"}
{"update":{"_index":"test","_type":"type","_id":""}}
{"doc":{"exist":"false"}}
'
bulk处理文档大小的最佳值:
- 数据加载在每个节点的RAM里
- 请求的数据超过一定的大小,那bulk的 处理性能就回降低
- 文档数据大小跟数据配置,文档复杂度,以及当前集群的负载有关
2.0 版本控制
- 悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。(安全)
- 乐观锁:假定不会发生并发冲突,只在提交操作时检查是否违反数据的完整性。
Elasticsearch 内置使用的是乐观锁:
- 内部版本控制:每次修改后,_version自增长
- 外部版本控制:手动修改_version
curl -XPUT 'http://localhost:9200/test/type/3?version=5&version_type=external' -d '
{
"title":""
}
'
Elasticsearch索引操作的更多相关文章
- Elasticsearch 索引操作
一.创建 语法: PUT /索引库名称 { "settings": { "number_of_shards": 分片数量, "number_of_re ...
- ElasticSearch Index操作源码分析
ElasticSearch Index操作源码分析 本文记录ElasticSearch创建索引执行源码流程.从执行流程角度看一下创建索引会涉及到哪些服务(比如AllocationService.Mas ...
- ElasticSearch+Kibana 索引操作( 附源码)
一 前言 ElasticiSearch 简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elastics ...
- ElasticSearch+Kibana 索引操作
ElasticSearch+Kibana 索引操作 一 前言 ElasticiSearch 简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引 ...
- Elasticsearch索引和文档操作
列出所有索引 现在来看看我们的索引 GET /_cat/indices?v 响应 health status index uuid pri rep docs.count docs.deleted st ...
- elasticsearch的索引操作和文档操作总结
参考文档:https://es.xiaoleilu.com/010_Intro/00_README.html 一.索引操作 1.查看当前节点的所有的index 查看当前节点的所有的index [roo ...
- ElasticSearch 基本概念 and 索引操作 and 文档操作 and 批量操作 and 结构化查询 and 过滤查询
基本概念 索引: 类似于MySQL的表.索引的结构为全文搜索作准备,不存储原始的数据. 索引可以做分布式.每一个索引有一个或者多个分片 shard.每一个分片可以有多个副本 replica. 文档: ...
- Elasticsearch索引(company)_Centos下CURL增删改
目录 返回目录:http://www.cnblogs.com/hanyinglong/p/5464604.html 1.Elasticsearch索引说明 a. 通过上面几篇博客已经将Elastics ...
- Elasticsearch-PHP 索引操作(转)
索引操作 本节通过客户端来介绍一下索引API的各种操作.索引操作包含任何管理索引本身(例如,创建索引,删除索引,更改映射等等). 我们通过一些常见的操作的代码片段来介绍,然后在表格中列出剩下的方法.R ...
随机推荐
- JAVA 程序员代码生成利器
http://www.grails.org/ 为什么要用Grails 采用groovy 开发,基于springboot+ hibernate ,groovy 语言层面运行效率稍微差点,但开发效率比j ...
- redis集群 应该注意的问题
redis cluster注意的问题 : ‘cluster-require-full-coverage’参数的设置.该参数是redis配置文件中cluster模式的一个参数,从字面上基本就能看出它的作 ...
- Linux下Apache虚拟主机配置
Linux下Apache虚拟主机的三种配置.这样可以实现一台主机架构多个独立域名网站.其中基于域名的最为常见.性价比也最高.下面PHP程序员雷雪松详细的讲解下Linux下Apache虚拟主机配置的具体 ...
- GitHub开源史上最大规模中文知识图谱
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/m0_38106923/article/d ...
- Leetcode之动态规划(DP)专题-264. 丑数 II(Ugly Number II)
Leetcode之动态规划(DP)专题-264. 丑数 II(Ugly Number II) 编写一个程序,找出第 n 个丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例: 输入: n ...
- 深入理解C语言-接口封装设计思想
断层思维 在设计时候,不需要知道实现,只需要知道如何使用 接口设计的设计思路 Sckclient客户端api模型 第一套API (*.h) #ifndef _SCK_CLINT_H_ #define ...
- 分布式系统/NoSQL
分布式系统概念与架构:https://www.cnblogs.com/JonaLin/category/1555338.html 分布式缓存 redis系列:https://blog.csdn.net ...
- Web安全小结之后端
- Codeforces Round #574 (Div. 2)补题
A. Drinks Choosing 统计每种酒有多少人偏爱他们. ki 为每种酒的偏爱人数. 输出ans = (n + 1)/2 > Σki / 2 ? (n + 1)/2 - Σki / ...
- paramiko-ssh实例
import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_k ...