如何设置Hibernate Lucene索引指向共享位置。(因此本地服务器中没有生成索引)

问题描述 投票:0回答:1

在我的应用程序中,我将实现hibernate lucene。我的应用程序将部署在集群环境中。

现在,我无法了解如何,我可以指出所有lucene索引到共享位置的位置。所以它可以通过网络访问。

hibernate lucene hibernate-search
1个回答
1
投票

您可以,但它不像拥有共享目录那么简单:应用程序的两个实例无法同时访问相同的索引文件。

因此,优选的解决方案通常是:

  1. 只有一个“主”节点访问索引的“主”副本,并让所有其他节点向该“主”节点发送“写请求”。
  2. 定期将索引的“主”副本复制到“从属”节点,以便他们可以读取它,即使它们的副本总是稍微过时。

Hibernate Search提供了两种机制的实现:

  1. 主/从架构由JMS backendJGroups backend实现。请注意,JMS后端明显减少了错误。另请注意,您必须自己配置JMS或JGroups,这可能也需要一些专业知识。
  2. 由于filesystem-master and filesystem-slave directory providers,实现了复制。

所以,这有点复杂。

另一种选择,也许更容易,是使用Elasticsearch integration,将索引移动到远程群集。它使用起来比较简单,但有一些粗糙的边缘,因为它仍然是实验性的。

我们计划在下一版本的Hibernate Search版本6中为Elasticsearch集成提供一流的支持。

© www.soinside.com 2019 - 2024. All rights reserved.