2

我正在将 Hibernate 用于基于 Java 的 Web 应用程序,并希望通过 Compass 添加全文搜索。Compass 应该支持这一点,但未能提供任何有用的入门指南。

我可以弄清楚我必须用@Searchable 和各种@SearchableXXX 变体注释我的实体,并通过HibernateHelper.getCompass(sessionFactory) 在我的服务代码中访问Compass。

我最终得到一个 HibernateException 说“未配置指南针事件侦听器,请检查参考文档和应用程序的 hibernate.cfg.xml”。

参考文档再次提示和 hibernate.cfg.xml,而我用 Spring 的 AnnotationSessionFactoryBean 配置 Hibernate。对于这种情况,文档中提到:“如果使用 Hibernate Annotations 或 Hibernate EntityManager (JPA),只需将 Compass jar 文件放到类路径中即可启用它(确保类路径中没有 Hibernate Search,因为它使用相同的事件类名称)。” 这对我不起作用。

我缺少什么想法或入门的好资源?

4

3 回答 3

1

我想知道你为什么选择 Compass 去休眠。我们查看了 Compass 和 Hibernate-Search,我们选择了后者,因为它具有出色的集成性。

您可以使用与使用 HQL 或 Critera 执行 SQL 数据库完全相同的方式查询测试索引。

如果您使用的是 iBatis 或 JDBC,那么 Compass 当然会更合适。Hibernate 搜索更适合 JTA。

是我还是 Compass 明显缺乏活动?

于 2010-02-01T14:08:39.340 回答
0

审查的最佳资源是检查随指南针分发提供的宠物诊所示例(带有依赖项)。如果默认情况下未配置侦听器,则您必须设置 EventListener。

于 2008-11-14T21:47:06.923 回答
0

Compass 有两种模式与 Hibernate 集成。嵌入式模式基本上意味着您需要将 Compass jar 放入应用程序(并且可能需要配置事件侦听器,具体取决于 Hibernate 版本),然后您至少需要在配置 Compass 的 Hibernate cfg 文件中进行属性配置索引位置。这是一个链接链接以获取更多信息

另一个选项是通过创建 CompassGps 和 Hibernate 设备(使用 Hibernate SessionFactory 初始化)来配置 Compass 以在外部与 Hibernate 集成。Hibernate 设备会自动向 Hibernate 注册相关的监听器。更多信息可以在这里找到链接

于 2009-02-08T22:56:51.363 回答