2

有人设法得到包含这两个框架的工作应用程序吗?如何将玉兰CMS与Hibernate搜索整合?

我现在面临的问题是,依赖关系是这样的:

玉兰4.4.5 - >阿帕奇兔崽子1.6.4 - > Apache的Lucene的2.4.1 Hibernate Search的3.4.1.Final - > apache lucene 3.1.0

因此,lucene版本存在不一致性。 我需要一个带注释的hibernate搜索版本。

我真的试图整合这两个,但没有运气。我希望别人能够成功。

谢谢:)

+0

在包括Magnolia 4.4.5和强制排除Lucene 3.1.0之前,您是否尝试过为Hibernate Search 3.4.1定义依赖项? – Perception

回答

4

我们已经成功地使用了很长一段时间。它真的很糟糕,Jackrabbit更新Lucene的速度很慢。这很难。我认为你应该考虑在单独的JVM中使用Solr来摆脱这种依赖。

话虽如此,这就是你如何解决它。什么是可能的是Jackrabbit。

Jackrabbit 1.6.x,你必须使用Lucene 2.4.x.我们很长一段时间成功地完成了这项工作,但却被迫使用旧的Hibernate搜索。如果你想我也可以给你这个配置。

但是最近当jackrabbit发布2.3.0时,它依赖于Lucene 3.0.3。它打破了3.1.0,所以你必须使用Lucene 3.0.3。

这是我们的配置简化为:

org.apache.jackrabbit:兔崽子核心2.3.0
- 排除org.apache.lucene:Lucene的核心

org.hibernate作为:冬眠-core:3.6.7.Final

org.hibernate作为:休眠公地的注解:3.2.0.Final
- 排除org.hibernate作为:冬眠

org.hibernate作为:冬眠搜索:3.3.0.Final或3.4.0.CR1
- 排除org.hibernate作为:EJB3持久性
- 排除org.apache.lucene:Lucene的核心

( 3.4.0.CR1是最后一次依赖于Lucene 3.0.3的hibernate搜索,但是如果你不想让beta版本使用3.3.0或3.3.1)

org.apache.lucene:lucene-core :3.0.3

玉兰4.4.5

正常的Hibernate Annotations项目现在包含在org.hibernate中:hibernate-core:3.6.7.Final所以不需要依赖那个。

+0

另请注意,Jackrabbit采用Linux风格的发布计划,所以x.even(2.4.x)是稳定的,x.odd(2.3.x)是早期访问的,这并不一定意味着不稳定。 – sigget

+0

非常感谢:)!它工作完美。如果没关系,我还有其他问题。我试图将magnolia的URL映射更改为/ magnolia/*,但它不适用于安装程序,因为它被配置为在“/”之后。我怎么能告诉玉兰渲染只有/ magnolia/*和其他页面的页面...谢谢:) – Marius

+0

Marius,我通过使用在web.xml中Magnolia的过滤器之前的过滤器来做到这一点。该过滤器正在调用DispatcherServlet并仅接受DispatcherServlet所需的所有请求。如果你在Stackoverflow上创建一个新问题,我可以在那里提供详细的答案。这个问题太大了。 – kimmo