gpt4 book ai didi

elasticsearch - 使用来自具有不同包结构的 2 个不同应用程序的相同 Elastic Index 来存储数据(HibernateSearch + Elastic)

转载 作者:行者123 更新时间:2023-12-03 01:15:09 28 4
gpt4 key购买 nike

我们在我们的一个应用程序服务器上安装了 Elastic 5.6.10 和 HibernateSearch ORM 5.11.4.Final,现在我们计划通过我们的一个微服务(spring boot,但使用相同的 HibernateSearch)使用相同的 Elastic 实例及其索引和弹性版本)。这样做的原因是,我们计划将来自这两个应用程序的数据存储到一个索引中(因为它们将是相同的数据),以便我们可以从两个应用程序中搜索彼此的数据。
我们面临的问题是实体的限定名称。与第一个应用程序一样,实体位于 com.abc.data.to.FirstAppClassTO 下,微服务上的结构类似于 com.abc.service.model.MicroserviceClassTO(或任何其他包类型)。现在的问题是我们正在从我们的第一个应用程序创建初始索引。但是现在,如果我们尝试将 com.abc.service.model.MicroserviceClassTO 作为索引,它将创建一个新的,或者如果我们提供与现有索引名称相同的索引名称,它将覆盖现有的(从第一个应用程序创建的)。
在休眠搜索或 Elasticsearch 中有什么方法可以按照我们想要的方式实现。
第一个应用 TO 和 Elastic Sc​​hema:

 @Entity
@Indexed(index="master_index")
public class UserTO{
弹性架构:
{
"master_client_index" : {
"aliases" : { },
"mappings" : {
"com.abc.pt.svc.data.to.UserTO" : {
微服务 TO 和架构:
@Entity
@Indexed(index = "master_index" )
@Table(name = "USER")
public class MSUserTO implements Serializable {
弹性架构:
 {
"master_index" : {
"aliases" : { },
"mappings" : {
"com.abc.project.entity.user.MSUserTO" : {
请分享 HibernateSearch/ElasticSearch 提供的方式/概念/逻辑来实现这一点。

最佳答案

你的问题没有明确,但我认为问题是映射的名称,这在你的两个应用程序中是不同的?

  • com.abc.pt.svc.data.to.UserTO
  • com.abc.project.entity.user.MSUserTO

  • 恐怕 Hibernate Search 5 中没有自定义映射名称的选项。原因是... Elasticsearch 在更新的版本中删除了映射名称。
    但是 Hibernate Search 5 中的 Elasticsearch 支持是实验性的,Hibernate Search 5 永远不会支持 Elasticsearch 6+。
    因此,要解决这个问题,您需要升级到对 Elasticsearch 有稳定支持的 Hibernate Search 6。 Hibernate Search 6 仍处于 Beta 阶段,但目前它相当稳定且经过良好测试。但是,它的 API 与 Hibernate Search 5 不同,因此迁移需要一些努力。
    如果您升级到 Hibernate Search 6,您将能够根据需要使用 Elasticsearch 5.6,因为 Hibernate Search 6 处理映射名称的方式不同。只需设置 type name mapping strategyindex-name并且您应该能够在两个不同的应用程序中使用相同的索引。
    但您也可以选择升级到永不使用的 Elasticsearch 版本(例如 7.8)。我会推荐这个,因为 Elasticsearch 5.6 已经到了生命的尽头 one year ago并且可能不会再得到任何错误修正。

    关于elasticsearch - 使用来自具有不同包结构的 2 个不同应用程序的相同 Elastic Index 来存储数据(HibernateSearch + Elastic),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62876252/

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