Настройка компаса с помощью аннотированного спящего режима - PullRequest
2 голосов
/ 04 ноября 2008

Я использую Hibernate для веб-приложения на основе Java и хочу добавить полнотекстовый поиск через Compass. Предполагается, что Compass поддерживает это, но не может предоставить какое-либо полезное руководство по началу работы.

Я мог бы выяснить, что я должен аннотировать свои сущности с помощью @Searchable и различных вариаций @SearchableXXX и получать доступ к Compass в моем сервисном коде через HibernateHelper.getCompass (sessionFactory).

Я получаю исключение HibernateException, в котором говорится, что прослушиватели событий Compass не настроены, проверьте справочную документацию и hibernate.cfg.xml приложения.

Справочная документация снова намекает и на hibernate.cfg.xml, а я настраиваю Hibernate с помощью Spring AnnotationSessionFactoryBean. В этом случае в документации указано: «Если используются Hibernate Annotations или Hibernate EntityManager (JPA), то просто перетаскивая файл jar Compass в путь к классам, вы включите его (убедитесь, что у вас нет Hibernate Search в пути к классам, так как он использует то же имя класса события). " Это не работает для меня.

Есть идеи, что мне не хватает или хороший ресурс для начала работы?

Ответы [ 3 ]

1 голос
/ 01 февраля 2010

Мне интересно, почему вы выбрали Compass для перехода в спящий режим. Мы посмотрели на Compass и Hibernate-Search и выбрали последний, так как он имеет отличную интеграцию.

Вы можете запросить тестовый индекс точно так же, как вы делаете базу данных SQL с HQL или Critera.

Если бы вы использовали iBatis или JDBC, то Compass, конечно, был бы лучше. Поиск в спящем режиме лучше всего подходит для JTA.

Это я или Компас страдают от явного недостатка активности?

0 голосов
/ 09 февраля 2009

Существует два режима интеграции Compass с Hibernate. В основном, встроенный режим означает, что вам нужно поместить JAR-файл Compass в приложение (и, возможно, необходимо настроить прослушиватели событий в зависимости от версии Hibernate), а затем вам нужно как минимум сконфигурировать свойство в файле cfg Hibernate, который настраивает Compass указатель местоположения. Вот ссылка для получения дополнительной информации .

Другим вариантом является настройка Compass для внешней интеграции с Hibernate путем создания CompassGps и устройства Hibernate (инициализируется с помощью Hibernate SessionFactory). Устройство Hibernate автоматически зарегистрирует соответствующих слушателей в Hibernate. Более подробную информацию можно найти ссылка здесь .

0 голосов
/ 15 ноября 2008

Лучшим ресурсом для проверки было бы проверить пример петклиники, предоставляемый с компасом (с зависимостями). Если по умолчанию прослушиватель не настроен, вам придется установить EventListener.

...