3

Я видел несколько заявлений онлайн о том, что NHibernate (или Hibernate) Search «заботится о синхронизации базы данных/индекса».Будет ли в NHibernate Search узнавать об изменениях в базовых данных?

Когда я читаю эти утверждения, я не могу не задаться вопросом, есть ли подразумеваемый «... пока вы используете [N] Hibernate для доступа всех и всех данных».

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

Hibernate/NHibernate Search фактически выполняет что-либо, чтобы отслеживать изменения исходных данных, например, при настройке уведомления о запросе и/или использовании времени ожидания или «истечения» для всех или частичных индексов?

Или это показатель Lucene, который постепенно будет становиться более сталелитейным, поскольку все больше и больше строк изменяются внешними приложениями?

Если этот инструмент не сделать такую ​​синхронизацию, а затем в стороне от ручной переиндексации (что было бы очень трудно времени должным образом), есть что-нибудь еще я могу сделать, чтобы сохранить индекс Lucene в синхронизации с базой данных, или мне лучше использовать возможности Fulltext в SQL Server, как я это делал до этого момента?

ответ

1

Я думаю, что я был в состоянии вывести ответ из Hibernate Search Documentation:

Hibernate Search будет прозрачно индекс каждый объект сохраняется, обновлены или удалены через Hibernate Core. Однако вам необходимо создать начальный индекс Lucene для данных, уже имеющихся в вашей базе данных.

Если вы должны создать индекс начальный то само собой разумеется, что вы также должны обновить этот индекс, если какие-либо изменения за пределами приложения.

Очевидно, что HS/NHS - это , а не - это решение для предотвращения пожара и забывания, такое как SQL Server FTS, Oracle Text и т. Д., Если почти все записи данных выполняются через сеанс.

+0

Я также хотел бы добавить, что, учитывая это ограничение, наряду с болезненным отсутствием возможности массового индексирования NH Search (в отличие от относительно полнофункциональной версии Java/Hibernate), я не думаю, что когда-либо использовал NH-поиск с наследие базы данных и будет думать долго и упорно, прежде чем использовать его в производственном приложении, которое может понадобиться для Interop. – Aaronaught

+0

Bummer. Как и вы, я надеялся, что HS может автоматически обновить индекс ... –