当前位置: 首页 > 知识库问答 >
问题:

如何在弹性搜索中创建相同ID的不同文档

黄逸清
2023-03-14

假设一个对象有10个实例,其中有一些字段。其中一个字段指定ID。另外两个字段包含有关位置(纬度和经度)的数据。一个字段包含日期时间信息。

在这10个例子中,ID保持不变,但与日期、时间和位置相关的字段发生了变化。

Instance1 = id - 123; lat - 58.00; lon - 16.00; date - 2017-07-11 12:19:00
Instance1 = id - 123; lat - 60.00; lon - 17.00; date - 2017-07-11 12:29:00
Instance1 = id - 123; lat - 62.00; lon - 18.00; date - 2017-07-11 12:39:00
Instance1 = id - 123; lat - 64.00; lon - 19.00; date - 2017-07-11 12:49:00
Instance1 = id - 123; lat - 66.00; lon - 20.00; date - 2017-07-11 12:59:00

上述数据是虚拟数据。但你可以观察到id保持不变,只是位置和时间发生了变化。

使用java, sping-data-elasticsearch我能够把信息在弹性搜索。

我面临的问题是,在弹性搜索中,创建的文档总数是1。

首先创建一个id为123的文档,然后该文档更新9次。所以最终文档_version为10。

如何在elastic search中创建10个具有相同id的不同文档。

另外需要注意的是,这些字段不在同一个类中,实际的数据对象非常复杂,但作为一个整体,数据对象将有这些字段。数据对象也可以有不同类型的实例,但这些字段将出现。

如果这些字段出现在同一个类中,那么我就可以使用这些字段来生成hashcode,从而生成一个惟一的has代码,从而用于ID。

请有人建议我如何创建不同的文档。。。或者一个文档,但在弹性搜索中有10个子实例。

谢啦

共有1个答案

吕修筠
2023-03-14

来自文件

_id字段每个文档都有一个唯一标识它的_id,它被索引,以便可以使用GET应用编程接口或id查询查找文档。

Spring将类中的id映射到elasticsearch文档中的_id。

_id在elasticsearch中扮演着非常特殊的角色,不能容纳指定的功能。我建议您使用不同的字段名称,如InstanceId。在这种情况下,在不同的文档中可能有相同的值。

 类似资料:
  • 问题内容: 映射: 分行文件: 员工证件: 我想查找具有父ID的文档,我尝试了以下查询: 但是ES没有返回结果。如何在Elasticsearch中搜索具有相同父ID的子文档? 问题答案: 将在OP。有无效是没有叫父在外地类型。 以下是有效查询的示例:

  • 我是弹性搜索的新手,我正在尝试使用下面的映射创建索引,我在网上找到了这些映射,并使用kibana作为我的客户机,它抛出错误。 “类型”:“映射程序解析异常”,“原因”:“根映射定义有不受支持的参数:[local_test:{u all={enabled=false},properties={amount={type=long},user_id={type=keyword},recurtive={t

  • 问题内容: 我有一个看起来像这样的架构: 我想找到b的所有值,其中b的值由2个或更多实体共享: 查询依据: 应该返回和。 问题答案: 您可以使用2 的字段对字段进行聚合,然后添加子聚合以找到匹配的字段:

  • 假设我有一个表'some-table',我想在多个模式中创建它。名为“create-some-table.yaml”的文件 最后一个是changelog-master,它非常简单 有什么办法我可以做类似这样的事情吗,谢谢:)

  • 我有一个查询,它从弹性索引中获取一些用户帖子数据。我对那个查询很满意,尽管我需要让它返回具有唯一用户名的行。当前,它显示用户的相关帖子,但它可能会显示一个用户两次... 我读过关于聚合的文章,但不太了解(也尝试过使用AGG,但也不起作用)。。。。感谢您的帮助