1、手动指定document id

(1)根据应用情况来说,是否满足手动指定document id的前提:
一般来说,是从某些其他的系统中,导入一些数据到es时,会采取这种方式,就是使用系统中已有数据的唯一标识,作为es中document的id。举个例子,比如说,我们现在在开发一个电商网站,做搜索功能,或者是OA系统,做员工检索功能。这个时候,数据首先会在网站系统或者IT系统内部的数据库中,会先有一份,此时就肯定会有一个数据库的primary key(自增长,UUID,或者是业务编号)。如果将数据导入到es中,此时就比较适合采用数据在数据库中已有的primary key。

如果说,我们是在做一个系统,这个系统主要的数据存储就是es一种,也就是说,数据产生出来以后,可能就没有id,直接就放es一个存储,那么这个时候,可能就不太适合说手动指定document id的形式了,因为你也不知道id应该是什么,此时可以采取下面要讲解的让es自动生成id的方式。

(2) PUT /test_index/test_type/id 的方式手动指定id

PUT /test_index/test_type/2
{"test_content":"my test"
}GET /test_index/test_type/2

运行之后,结果是:

{"_index": "test_index","_type": "test_type","_id": "2","_version": 1,"found": true,"_source": {"test_content": "my test"}
}

从上面可以看出,id为2

2.自动生成document id

语法是:
(1)post /index/type

POST /test_index/test_type
{"test_content":"my test2"
}GET /test_index/test_type/AWPE4ARFH290KcMbohDv

要注意的是:这里的PUT变成了post

ES中使用guid的方式生成id。保证不同节点上document的id是不一样的。

ES自动生成的id,长度为20个字符,URL安全(id可以放到url中),base64编码,GUID,分布式系统并行生成时不可能会发生冲突。

分布式文档系统-document id的手动指定与自动生成两种方式解析(来自学习笔记:龙果学院ES课程)相关推荐

  1. 15.分布式文档系统-document id的手动指定与自动生成两种方式解析

    课程大纲 1.手动指定document id 2.自动生成document id ----------------------------------------------------------- ...

  2. 16、分布式文档系统--document的_source元数据以及定制返回结果解析(来自学习资料+自己整理)

    1._source元数据 准备一条数据 put /test_index/test_type/1 {"test_field1": "test field1",&q ...

  3. java kafka设置偏移量_kafka实战宝典:手动修改消费偏移量的两种方式

    kafka实战宝典:手动修改消费偏移量的两种方式 工作中遇到过消费端报错的问题:包括数据Invalid Message和Failed_to_UNcompress等报错信息,导致消费端的iterator ...

  4. 工作流调度系统介绍,常见工作流调度系统对比,azkaban与Oozie对比,Azkaban介绍与特性(来自学习笔记)

    1. 工作流调度器azkaban 1.1 概述 1.1.1为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成:shell脚本程序,java程序,mapreduce程序.hive ...

  5. 天翎知识文档系统+群晖NAS,助力企业实现移动化学习

    编者按:移动化学习成为一种社会发展趋势,本文分析了企业移动化学习的意义,并提出了企业移动化学习的一款全新解决方案--天翎知识文档系统+群晖NAS. 关键词:多端适配,学习培训,智能问答,在线预览,在线 ...

  6. springboot 中文文档_比Swagger还好用的自动生成接口文档工具

    JApiDocs是一个无需额外注解.开箱即用的SpringBoot接口文档生成工具. 编写和维护API文档这个事情,对于后端程序员来说,是一件恼人但又不得不做的事情,我们都不喜欢写文档,但除非项目前后 ...

  7. 分布式文档存储独角兽MongoDB——MongoDB常见命令(2)

    分布式文档存储独角兽MongoDB 二.MongoDB常见命令 1.1 MongoDB的基本操作 查看数据库 show dbs; 切换数据库 如果没有对应的数据库则创建 use 数据库名; 切换库,如 ...

  8. 分布式文档存储独角兽MongoDB——系统结构(1)

    分布式文档存储独角兽MongoDB 一.MongoDB系统结构 1.1 NoSQL 和 MongoDB NoSQL=Not Only SQL,支持类似SQL的功能, 与Relational Datab ...

  9. 一文搭建Vuepress博客/文档系统:搭建,导出,SEO,自动编译和部署,域名,HTTPS,备案等

    本文纯原创,搭建后的博客/文档网站可以参考: Java 全栈知识体系.如需转载请说明原处. 文章内容目录 文章内容目录 第一部分 - 博客/文档系统的搭建 博客/文档搭建前言 有哪些选择 我做了哪些尝 ...

最新文章

  1. 修改类的命名空间引发的发布问题
  2. c6011取消对null指针的引用_C++中的野指针及其规避方法
  3. 雾霾入侵机房会产生哪些危害?该如何防护?
  4. 5G的频谱效率,到底有多高
  5. SNF开发平台WinForm之五-高级查询使用说明-SNF快速开发平台3.3-Spring.Net.Framework
  6. 开启 Appserv 的 curl 功能
  7. 110+优秀作品、20+热门领域曝光, 高通如何玩转“AI 的夏天”!
  8. 谷歌浏览器(chrome) —— 扩展应用程序
  9. 【车间调度】基于matlab遗传算法求解多目标流水车间调度问题【含Matlab源码 443期】
  10. JAVA零基础入门书籍推荐
  11. 用python画猫咪怎么画-python画猫
  12. 从卷积到residual dense network: Convolution, ResNet, DenseNet and ResDenseNet解读
  13. 视频中警戒区 仿射变换
  14. w10系统服务器启动失败,三种方法教你解决Win10系统Apache启动失败问题
  15. 直播软件技术介绍,能帮到你
  16. 义隆单片机CALL 与JMP的区别
  17. SpringBoot实现企业微信-获取临时素材
  18. 计算机二级选择题37套word,计算机二级word选择题
  19. kettle配置资源库
  20. Android安全性优化——APP加固

热门文章

  1. android中心点旋转晃动_Android:如何在中心点上旋转位图
  2. python编程字典100例_python中字典(Dictionary)用法实例详解
  3. C#调用python文件
  4. 《高性能JavaScript》第八章 编程实践
  5. 面向对象编程 封装 继承 多态(三大特征)(第三篇)
  6. VTK:平面源用法实战
  7. boost::multiprecision模块tommath相关的测试程序
  8. boost::hana::union_用法的测试程序
  9. boost::graph模块实现资源受限最短路径算法的示例使用
  10. ITK:计算网格上的测地距离