POST/{index}/{type} Elasticsearch自动生成ID,自动生成的 ID 是 URL-safe、 基于 Base64 编码且长度为20个字符的 GUID 字符串。 这些 GUID 字符串由可修改的 FlakeID 模式生成,这种模式允许多个节点并行生成唯一 ID ,且互相之间的冲突概率几乎为零。
GET/{index}/{type}/{id}?pretty 返回整个文档包括元数据, pretty 参数使响应体更具可读性,如果你需要从 Elasticsearch 检索很多文档,那么使用 multi-get 或者 mget API 来将这些检索请求放在一个请求中,将比逐个文档请求更快地检索到全部文档。
GET /_mget
GET/{index}/{type}/{id}?_source=field,field 返回文档的一部分
GET/{index}/{type}/{id}?_source 返回文档,不包括元数据
HEAD/{index}/{type}/{id}检查文档是否存在,存在状态码为200,不存在状态码为404
PUT /{index}/{type}/{id} 添加/更新文档
PUT/{index}/{type}/{id}?version=5&version_type=external 创建一个指定版本号的文档,Elasticsearch 不是检查当前 _version 和请求中指定的版本号是否相同, 而是检查当前 _version 是否 小于 指定的版本号。
PUT /{index}/{type}/{id}?op_type=create  PUT /{index}/{type}/{id}/_create 在相同的 _index 、 _type 和 _id 不存在时才接受我们的索引请求 添加/更新文档
POST/{index}/{type}/{id}/_update { "doc" : { "tags" : [ "testing" ], "views": 0 } }
POST/{index}/{type}/{id}/_update { "script" : "ctx._source.views+=1" } 使用脚本更新
update API 简单使用与之前描述相同的 检索-修改-重建索引 的处理过程。 区别在于这个过程发生在分片内部,这样就避免了多次请求的网络开销。通过减少检索和重建索引步骤之间的时间,我们也减少了其他进程的变更带来冲突的可能性。
可以使用Groovy脚本来实现搜索、排序、聚合和文档更新。 脚本可以作为请求的一部分被传递,从特殊的 .scripts 索引中检索,或者从磁盘加载脚本,但是容易被攻击在版本 v1.3.8 、 1.4.3 和 V1.5.0 及更高的版本中,它已经被默认禁用。script.groovy.sandbox.enabled: false 禁用动态 Groovy 脚本
POST/{index}/{type}/{id}/_update { "script" : "ctx._source.views+=1", "upsert": { "views": 1 } }  upsert 参数,指定如果文档不存在就应该先创建它
POST /{index}/{type}/{id}/_update?retry_on_conflict=5 {"script" : "ctx._source.views+=1","upsert": {"views": 0}} retry_on_conflict参数规定了失败之前 update 应该重试的次数,在增量操作无关顺序的场景,例如递增计数器等这个方法十分有效,但是在其他情况下变更的顺序  非常重要的。

DELETE/{index}/{type}/{id} 删除文档 ,删除文档不会立即将文档从磁盘中删除,只是将文档标记为已删除状态。随着你不断的索引更多的数据,Elasticsearch 将会在后台清理标记为已删除的文档。
POST/{index}/{type}/{id}/_update { "script" : "ctx.op = ctx._source.views == count ? 'delete' : 'none'", "params" : { "count": 1 } } 通过设置 ctx.op 为 delete 来删除基于其内容的文档
POST _bulk
{ action: { metadata }}\n
{ request body }\n
{ action: { metadata }}\n
{ request body }\n

action 必须是以下选项之一:

create
如果文档不存在,那么就创建它。详情请见 创建新文档
index
创建一个新文档或者替换一个现有的文档。详情请见 索引文档 和 更新整个文档
update
部分更新一个文档。详情请见 文档的部分更新
delete
删除一个文档。详情请见 删除文档

metadata 应该 指定被索引、创建、更新或者删除的文档的 _index 、 _type 和 _id 。

批量请求的大小有一个最佳值:通过批量索引典型文档,并不断增加批量大小进行尝试。 当性能开始下降,那么你的批量大小就太大了。一个好的办法是开始时将 1,000 到 5,000 个文档作为一个批次, 如果你的文档非常大,那么就减少批量的文档个数。

密切关注你的批量请求的物理大小往往非常有用,一千个 1KB 的文档是完全不同于一千个 1MB 文档所占的物理大小。 一个好的批量大小在开始处理后所占用的物理大小约为 5-15 MB。ElasticsearchJVM内存设置一般设置为机器内存的一半,但不应超出32G


												

Elasticsearch index的更多相关文章

  1. ElasticSearch Index操作源码分析

    ElasticSearch Index操作源码分析 本文记录ElasticSearch创建索引执行源码流程.从执行流程角度看一下创建索引会涉及到哪些服务(比如AllocationService.Mas ...

  2. elasticsearch index 之 put mapping

    elasticsearch index 之 put mapping   mapping机制使得elasticsearch索引数据变的更加灵活,近乎于no schema.mapping可以在建立索引时设 ...

  3. Add mappings to an Elasticsearch index in realtime

    Changing mapping on existing index is not an easy task. You may find the reason and possible solutio ...

  4. ElasticSearch Index API && Mapping

    ElasticSearch  NEST Client 操作Index var indexName="twitter"; var deleteIndexResponse = clie ...

  5. Elasticsearch Index模块

    1.  Index Setting(索引设置) 每个索引都可以设置索引级别.可选值有: static  :只能在索引创建的时候,或者在一个关闭的索引上设置 dynamic:可以动态设置 1.1.  S ...

  6. Elasticsearch index fields 重命名

    reindex数据复制,重索引 POST _reindex { "source": { "index": "twitter" }, &quo ...

  7. elasticsearch index tuning

    一.扩容 tag_server当前使用ElasticSearch版本为5.6,此版本单个index的分片是固定的,一旦创建后不能更改. 1.扩容方法1,不适 ES6.1支持split index功能, ...

  8. elasticsearch index 之 create index(-)

    从本篇开始,就进入了Index的核心代码部分.这里首先分析一下索引的创建过程.elasticsearch中的索引是多个分片的集合,它只是逻辑上的索引,并不具备实际的索引功能,所有对数据的操作最终还是由 ...

  9. elasticsearch index 之merge

    merge是lucene的底层机制,merge过程会将index中的segment进行合并,生成更大的segment,提高搜索效率.segment是lucene索引的一种存储结构,每个segment都 ...

  10. elasticsearch index 之 Mapping

    Lucene索引的一个特点就filed,索引以field组合.这一特点为索引和搜索提供了很大的灵活性.elasticsearch则在Lucene的基础上更近一步,它可以是 no scheme.实现这一 ...

随机推荐

  1. Echarts 折线类型

    1:Echarts2.0 这种皮肤下柱状图转折线图默认是平滑曲线 默认皮肤为硬折线: 如果需要在2.0的macarons皮肤下使用硬折线需显式设置以下属性:  series: [         { ...

  2. 使用jstack排查线程问题

    以一个例子来演示排查服务器cpu占用率过高的问题. 准备 将下面的代码文件上传到服务器上,然后使用javac编译,并使用java命令将程序跑起来. public class JStackCase { ...

  3. SERVLET API中转发与重定向的区别?

    SERVLET API中转发与重定向的区别? 1.转发(forward方法) 转发仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址. 转发是服务器请求资源,服务器直接访问目标地址的 ...

  4. Spring---Spring Aware

    1.概述 1.1.Spring中的  所有Bean  对Spring容器的存在  是没有意识的(即你可以将容器换成别的容器,这样使用容器与Bean之间的耦合度很低): 但在实际项目中,不可避免的要用到 ...

  5. 如何在MaxCompute上处理存储在OSS上的开源格式数据

    0. 前言 MaxCompute作为使用最广泛的大数据平台,内部存储的数据以EB量级计算.巨大的数据存储量以及大规模计算下高性能数据读写的需求,对于MaxCompute提出了各种高要求及挑战.处在大数 ...

  6. @RequestParam和@PathVariable的区别

    一:@RequestParam @RequestParam是传递参数的. @RequestParam用于将请求参数区数据映射到功能处理方法的参数上. public Object Login(@Requ ...

  7. 牛客多校训练营第九场 J - Symmetrical Painting (排序)

    J - Symmetrical Painting 题意 给你\(n\)个矩形, 左下角\((i-1,\ L_i)\), 右上角\((i,\ R_i)\), 找一条线\(l\)平行于\(x\)轴, 让这 ...

  8. Visual Studio 2008 附加进程调试

    关于附加进程调试的问题: 在项目当中经常使用“附加到进程”来调试项目,感觉挺方便的.我们做的项目通常都会发布到IIS(特别是B/S),一可以直接通过地址栏输入地址就可以运行项目,不必去使用开发工具来打 ...

  9. 【靶场练习_upload-labs复现】Pass01-020

    文件上传本是要命,挂马成功率更是随缘,我太难了Orz Pass-01:JS <?php phpinfo();?> 1.函数重写: 2.禁用js: Pass-02:MIME Type 修改M ...

  10. ubuntu下node.js 环境搭建

    由于使用gulp.js来对前端项目进行管理,所以搭建了node.js的环境 首先, 需要安装node, npm 去官网下载安装包,解压后放到你的安装的目录.在这里我的是/opt/node-v6.11. ...