当前位置:  开发笔记 > 编程语言 > 正文

如何获取elasticsearch的自动增量ID

如何解决《如何获取elasticsearch的自动增量ID》经验,为你挑选了2个好方法。

我需要将唯一的自动增量ID与我在ElasticSearch中的文档中的其余字段一起存储.无论如何在ElasticSearch中都可以获得它们.

我发现这是一个潜在的解决方案:http://blogs.perl.org/users/clinton_gormley/2011/10/elasticsearchsequence---a-blazing-fast-ticket-server.html

但我只是想知道有没有更好的方法?



1> jrwren..:

1.x参考文档API表示您可以不使用ID,它将自动生成.使用POST而不是put,op_type将自动设置为create.

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-index_.html#_automatic_id_generation


自动增量ID生成(int)有什么用吗?

2> 小智..:

这是使用elasticsearch创建的另一种方法iids:

主要优点是iid可以使用简单转储进行备份,其中使用_versionelasticsearch 的实现无法备份版本.

它允许请求大量iid以最小化所需的请求数.

获得大量10的请求iids将如下所示:

curl -XPOST "http://localhost:9200/sequence/sequence/1/_updatefields=iid&retry_on_conflict=5" -d '{
  "script": "ctx._source.iid += bulk_size",
  "params": {
    "bulk_size": 10
  },
  "lang": "groovy",
  "upsert": {
    "iid": 0
  }
}'

它需要索引的这个(优化的)映射:

curl -XPOST http://localhost:9200/sequence/_mapping -d '{
  "settings": {
    "number_of_shards": 1,
    "auto_expand_replicas": "0-all"
  },
  "mappings": {
    "sequence": {
      "_all": {
        "enabled": 0
      },
      "_type": {
        "index": "no"
      },
      "dynamic": "strict",
      "properties": {
        "iid": {
          "type": "string",
          "index": "no"
        }
      }
    }
  }
}'

可以在此处找到更详细的描述:


如果没有提供基本细节的简短摘要,请不要发布链接文章.如果链接停止工作,您的答案将变得毫无价值.
推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有