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 ...
随机推荐
- rest_framework 学习笔记(一)
rest_framework [TOC] 简介 Django REST框架是一个功能强大且灵活的工具包,用于构建Web API. 官方网站:https://www.django-rest-framew ...
- Leetcode之动态规划(DP)专题-121. 买卖股票的最佳时机(Best Time to Buy and Sell Stock)
Leetcode之动态规划(DP)专题-121. 买卖股票的最佳时机(Best Time to Buy and Sell Stock) 股票问题: 121. 买卖股票的最佳时机 122. 买卖股票的最 ...
- 【并行计算-CUDA开发】有关CUDA当中global memory如何实现合并访问跟内存对齐相关的问题
ps:这是英伟达二面面的一道相关CUDA的题目.<NVIDIA CUDA编程指南>第57页开始 在合并访问这里,不要跟shared memory的bank conflic ...
- python之函数形参、实参、可变长参数整体使用和分类
形参与实参 '''def fn(形参们): pass fn(实参们)'''# 形参:定义函数,在括号内声明的变量名,用来结束外界传来的值# 实参:调用函数,在括号内传入的实际值,值可以为常量.变量.表 ...
- Linux文件属性之时间戳及文件名知识详解
ls -lhi 7.8.9三列是时间(默认是修改时间) modify 修改时间 -----mtime 一般是修改文件内容 change 改变时间----ctime 文件的 ...
- makefile中=、:=和+=的区别
经常有人分不清= .:=和+=的区别 这里我总结下做下详细的分析: 首先你得清楚makefile的运行环境,因为我是linux系统,那么我得运行环境是shell 在Linux的shell里,shel ...
- position: sticky 防坑指南
position: sticky 防坑指南:https://www.jianshu.com/p/e217905e8b87 今天在写小程序项目的时候碰到一个需求是要把轮播图下面的标签栏滑动到顶部后固定, ...
- MySQL+navicat-1064 Error解决方案
MySQL+navicat-1064 Error解决方案 错误 #1064 - You have an error in your SQL syntax; check the manual that ...
- 网站如何接入微信公众号JSAPI支付PHP版
1.首先,我们要有一个微信公众号(分类类型有订阅号,服务号,企业号)我们的微信公众号一定是个服务号只有它才有微信支付接口.. 并且这个微信公众号一定要进行微信认证才能申请微信支付接口. 2.申请JSA ...
- Java开源网页抓取工具httpClient以及jsoup
网上看到不错的Java网页抓取工具和库 先记录一下 使用java开源工具httpClient及jsoup抓取解析网页数据