我正在研究针对我们的数据库提供更好搜索功能的机制。它目前是一个巨大的瓶颈(导致长期查询损害我们的数据库性能)。
我的老板想让我研究Solr,但仔细观察,似乎我们实际上想要某种与 Lucene 本身的数据库集成机制。
在Lucene FAQ中,他们推荐使用Hibernate Search、Compass和DBSight。
作为我们当前技术堆栈的背景,我们在 Tomcat 上使用直接的 JSP,没有 Hibernate,在其之上没有其他框架……只是针对 DB2 数据库的直接 Java、JSP 和 JDBC。
鉴于此,似乎 Hibernate Search 可能更难以集成到我们的系统中,尽管在这样的集成之后选择使用 Hibernate 可能会很好。
有没有人可以分享使用这些工具之一(或其他类似的基于 Lucene 的解决方案)的经验,这可能有助于选择正确的工具?
它需要是一个 FOSS 解决方案,理想情况下,它将自动(尽管有效)使用来自数据库的更改来管理更新 Lucene,而无需额外努力在进行更改时通知工具(否则,滚动我自己的 Lucene 解决方案似乎只是一样好)。此外,我们有多个应用程序服务器,只有 1 个数据库(+故障转移),因此如果可以轻松无缝地使用来自所有应用程序服务器的解决方案,那就太好了。
我现在正在继续检查这些选项,但利用其他人的经验会非常有帮助。