我们为客户定制开发的客户之一面临着这个奇怪的问题。虽然我们仍处于预先准备阶段,但我们认为这与任何已知的Lucene行为不符。
我们正在使用Hibernate Search 5.5.2,Apache Lucene 5.3.x;我们正在使用文件系统作为索引。我们在Weblogic 12c容器中运行它,使用oracle 12c作为数据库。
我们有两个不同的虚拟机,它们托管两个不同的Weblogic 12c实例(从而应用程序),指向同一个数据库(因此数据相同);在应用程序的开始,我们索引每个节点上的文件系统上的数据。但是对于相同的查询,它会在每个节点上产生不同的结果!
有人遇到类似的问题吗?索引机制是否与硬件或特定机器相关联?我无法理解这种行为的原因。
此外,下一个问题是,如果存在非复制(无复制形式)的群集节点(weblogic 12c) - 是否可以单独索引每个节点,相同的数据?或者我们是否有必要使用主从复制?从可维护性的角度来看,我不需要答案,而是从结果正确性的角度来看?
在官方hibernate搜索论坛上查看原始问题: https://forum.hibernate.org/viewtopic.php?f=9&t=1043314
答案 0 :(得分:1)
看起来好像只在每个节点上存储一个索引,其中只包含通过此节点修改的数据。因此,查询结果将根据执行查询的节点而有所不同。
您应该查看群集设置的选项,特别是使用JMS或master/slave set-up的Infinispan-based backend。两者都将确保包含所有数据的单个索引。