gpt4 book ai didi

java - 如何存储ElasticSearch(搜索引擎)中具有关系的对象

转载 作者:行者123 更新时间:2023-12-01 14:44:07 30 4
gpt4 key购买 nike

我将在我的应用程序中使用 ElasticSearch 作为搜索存储库。我有一些关于组织方面的最佳实践的问题当对象彼此具有关联/关系时,搜索索引中的对象。

据我所知,搜索索引是一个平面结构,不符合以下概念:关系就像数据库一样。

假设您有这些域对象:

:- 与Car

有一对多关系

汽车:- 由一个拥有,与多对一

部门:- 每个部门有许多,每个可能属于多个部门,多对多

将其存储在搜索索引中的最佳方式是什么?有什么选择?例如,我想找到属于某个部门的所有人员,或者汽车功率超过 300 bhp 的所有人员。如果重要的话,我正在使用 Java 客户端 API。

最佳答案

Elastic 搜索(或 Lucene)不是关系数据库,因此您需要扁平化您的关系模型。

尝试对具有此结构的 View 进行建模 -

Car|Person|Department

这将为您提供查找汽车所需的所有属性。可以将其导入到 Car 文档中。

同样

Person|Department

将为您提供一个人的所有信息。这将帮助您查找

Department 可以是第三个文档。

每个实体可以有多个文档。但这种关系需要被翻译为实体的属性。

关于java - 如何存储ElasticSearch(搜索引擎)中具有关系的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15638382/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com