zoukankan      html  css  js  c++  java
  • Elasticsearch index

    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 }} { request body } { action: { metadata }} { request body }

    action 必须是以下选项之一:

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

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

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

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





  • 相关阅读:
    LeetCode 110: Balanced Binary Tree
    LeetCode 101: Symmetric Tree
    LeetCode 100: Same Tree
    Cannot resolve plugin org.apache.maven.plugins:maven-site-plugin:3.3
    idea 创建springboot项目失败
    spring5中log4j2.xml文件的配置信息
    CPU占用过高定位分析
    GC基础参数 -XX:+PrintGCDetails
    idea springboot项目报错:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured
    git克隆指定分支到指定文件夹(仓库不存在,自动创建)
  • 原文地址:https://www.cnblogs.com/Justsoso-WYH/p/8984370.html
Copyright © 2011-2022 走看看