поиск в спящем режиме без базы данных - PullRequest
1 голос
/ 10 марта 2011

Можно ли использовать hibernate-поиск только для своих аннотаций (bean => document / document => bean mapping), вообще не используя базу данных? Если да, есть ли онлайн-примеры, показывающие, как это настроить?

Я нашел следующее: http://mojodna.net/2006/10/02/searchable-annotation-driven-indexing-and-searching-with-lucene.html,, но я бы предпочел hibernate-search, если он поддерживает мой вариант использования.

Ответы [ 3 ]

2 голосов
/ 29 апреля 2011

Hibernate search 3.4 отделил механизм запросов от Hibernate Core.Например, Hibernate Search используется повторно для реализации запросов с Infinispan.Я не знаю, упакован ли код, чтобы вы могли использовать HS с, скажем, Spring и JDBCTemplate (что я хотел бы сделать).Об этом я расскажу позже, но, может быть, вы сможете это проверить ...

2 голосов
/ 11 мая 2011

Starman верен, Hibernate Search в версии 3.4 абстрагирует поисковую систему от Hibernate Core, а Infinispan Query - пример интеграции, который отлично работает без базы данных. С Spring также не возникло бы никаких проблем, но вам нужно обязательно отправить событие update в механизм запросов, чтобы индекс не синхронизировался. При использовании Hibernate преимущество заключается в том, что он прозрачно прослушивает изменения в базе данных и применяет их к индексу при фиксации транзакции, поэтому индекс всегда синхронизируется (или закрывается, если при настройке поиска используется асинхронный бэкэнд).

Я бы посоветовал взглянуть на код Infinispan Query, так как он очень маленький и просто делегирует вызовы для предоставления API со вкусом Infinispan . Большая часть кода является тестами или интеграцией для правильного управления жизненным циклом двигателя: запускайте и останавливайте его вместе с Infinispan.

1 голос
/ 10 марта 2011

Я не думаю, что это возможно, потому что, когда вы включаете поиск Hibernate, вы включаете его для сущности, и эта сущность имеет ссылки на таблицу и индекс поиска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...