【问题标题】:Using single full text index instance of Hibernate in multiple applications在多个应用程序中使用 Hibernate 的单个全文索引实例
【发布时间】:2018-08-01 10:53:04
【问题描述】:

我在 Spring Boot 应用程序中使用 Hibernate Search 并创建了索引。但就我而言,有很多应用程序,我在多个模块中使用单个数据库、单个实体。当我在一个应用程序中更新实体时,它会创建索引,但这些索引将为该应用程序创建,当我更新该实体时,将创建新索引,但我已经为该实体创建了索引。最终我得到了单个实体的多个索引。我为每个应用程序使用了不同的索引位置。我尝试使用相同的位置,但在这种情况下我得到了错误。我如何为所有应用程序使用单个索引。我想说一下我必须对所有索引做同样的事情。多个应用程序必须使用单个索引。

【问题讨论】:

    标签: hibernate spring-boot spring-data-jpa full-text-search hibernate-search


    【解决方案1】:

    您在这里几乎处于未知领域;我们经常看到人们拥有同一应用程序的多个实例,但很少(如果有的话)拥有多个不同的应用程序。

    您也许可以使用JMSJGroups 主/从架构来共享索引,但是如果您的所有应用程序都在同一台机器上运行,那显然是矫枉过正。此外,设置会相当复杂。

    也许更好的解决方案是让您使用实验性的Elasticsearch integration

    您必须确保使用validateindex management strategy,并从使用create 策略在开发环境中创建的转储中初始化您的生产E​​lasticsearch 集群。然后一切正常,您将能够从多个应用程序同时发送更新和搜索查询。

    请注意,如果您更改了索引映射,则应确保手动更新 Elasticsearch 集群的架构(但这可能很棘手)或从开发环境中创建的转储中重新初始化集群。

    【讨论】:

    • 好的,我明白了,非常感谢。我使用了单个索引。我在哪里发生任何更改,我通过 JMS 或 Spring 的 RestTemplate 将其发送到 BuildSearchIndex 服务并进行索引
    猜你喜欢
    • 2012-12-02
    • 2021-08-08
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多