和另外两个学生一起,我们正在做一个项目。该体系结构如下:
通过预定的任务,我们将从web爬虫数据库中的结果插入到网站数据库中。
当然,我们希望在网站上对这一结果进行快速研究!所以我在考虑使用HibernateSearch,这似乎是一个很棒的工具!
但是,我不确定我是否可以在我的例子中使用它:据我所知,hibernate -搜索正在更新(Hibernate)事务上的索引,而且由于插入不是通过hiberate完成的,我想知道它是否还能工作(hibernate会注意到数据库事务吗?),如果没有,是否有任何通过服务强制更新的技巧!
注意:我知道有一个创建索引的指令:
FullTextSession fullTextSession = Search.getFullTextSession(session);
fullTextSession.createIndexer().startAndWait()但是,我并不想每次做插入时都删除/创建索引。
发布于 2017-07-15 13:02:32
Hibernate搜索不能侦听数据库中的内部事件,只有在使用Hibernate ORM执行您的查询时,它才能自动更新索引。
类似场景中的一些Hibernate搜索用户只会周期性地(例如每晚)触发MassIndexer。根据您的用例,这可能是很好的,例如,如果您的web应用程序是一个网络商店,人们通常是可以在搜索结果中显示新的项目,在插入后有一些延迟。
如果这对您的用例无效,那么您有两种选择:
通过Hibernate ORM加载新元素,然后调用FullTextSession.index( entity )来执行“手动”索引。
https://stackoverflow.com/questions/45104225
复制相似问题