es 的document id的手动指定和自动生成的解析

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 /index/type/id

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

2、自动生成document id

(1)post /index/type

POST /test_index/test_type
{
"test_content": "my test"
}

{
"_index": "test_index",
"_type": "test_type",
"_id": "AVp4RN0bhjxldOOnBxaE",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"created": true
}

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

原文地址:https://www.cnblogs.com/siye1989/p/11562038.html

时间: 2024-10-07 09:26:13

es 的document id的手动指定和自动生成的解析的相关文章

Solr自动生成ID

在Solr中,每一个索引,都要有一个唯一的ID,类似于关系型数据库表中的主键.为了方便创建索引,需要配置自动生成的ID,即UUID. 一.配置schema.xml文件 添加uuid字段类型,修改字段id的类型. <field name="id" type="uuid" indexed="true" stored="true" required="true" multiValued="fals

织梦中limit的用法详解(调用指定id下的指定文章)

limit的用法大致可以理解为:调用指定id下的指定文章. 下面为代码片段,需要的朋友自行拿去: {dede:arclist typeid='6' row='1' limit='0,1'} <li> <a href="[field:arcurl/]" target="_blank" rel="nofollow" > <img class="zhuanjia_img" src=""

实体类上的一对一关系需要手动指定

public class User { public long UserId { get; set; } public string UserName { get; set; } public string UserPwd { get; set; } public DateTime UserCreateDate { get; set; } public DateTime LastLoginDate { get; set; } public DateTime LastActivityDate {

ffmpeg 手动指定解码格式 效果不明显

+ buffer 0x00000000002cbdc0  <字符串中的字符无效.> unsigned char * + buf_end 0x00000000002d3626  <字符串中的字符无效.> unsigned char * 30822 pos 262349 buffer  2932160 buf_end 2962982 buffsize 35840 buf_end-buffer 30822 pos的值从哪里来,值得考虑 pFormatContext->pb->

手动指定PVS的缓存盘

客户场景:vdisk标准模式,缓存类型为在RAM中缓存并溢出到硬盘客户端磁盘:D盘和E盘当我们在使用PVS vdisk标准模式并设置缓存在客户端硬盘时,PVS默认会将系统的第一个硬盘驱动器设置为缓存盘(例如D盘),而有时我们不希望缓存写入D盘中,而是写入E盘中,我们就需要手动指定E盘为PVS缓存盘,方法如下: 在D盘中创建{9E9023A4-7674-41be-8D71-B6C9158313EF}.VDESK.VOL.GUID文件,并隐藏此文件,设置权限不让除了管理员之外的用户删除此文件 参考链

mybatis中返回自动生成的id

当有时我们插入一条数据时,由于id很可能是自动生成的,如果我们想要返回这条刚插入的id怎么办呢. 在mysql数据中我们可以在insert下添加一个selectKey用以指定返回的类型和值: 方法一: <insert id="addUser" parameterType="com.zhl.pojo.User"> <selectKey resultType="java.lang.Integer" order="AFTER

iOS 手动做一个自动打包部署神器

之前使用的fastlane添加pgyer自动打包的,最近发现更新总是有问题,所以产生了自己shell做一个的想法.虽然代码比较少,但是很实用. 打包 导出ipa 上传pgyer 打包自动上传pgyer 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

iOS的CocoaPods手动挡到自动挡到导入第三方框架

iOS的CocoaPods手动挡到自动挡到导入第三方框架 CocoaPods使用 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要 使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况.总之小编的意思就是,手动一个个去下载所需 类库十分麻烦.另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦.如果能有什么工具能解

oc中设置手动引用和自动引用图解

1.把整个工程都设为手动引用 ----------------------------选中MRCAPP  再找到bulid settings------------------ ---------------------------------------在搜索框中输入arc---------------------------------------------------- 2.设置某个类手动引用 选中某个需要设置的类 然后双击     会跳出对话框  在里面输入:“-fno-abjc-ar