Java 基于ApacheLucene的DAO?

Java 基于ApacheLucene的DAO?,java,architecture,lucene,hibernate-search,compass-lucene,Java,Architecture,Lucene,Hibernate Search,Compass Lucene,我正在使用后端restful web服务构建一个web应用程序 我的一个表是非常独立的,即只从另一个表引用行,这样我就可以在没有连接的情况下愉快地生活,并且只在需要时通过主键获取。然而,这个表包含很多行,对它执行的搜索都会尖叫“Lucene”。MySQL无法以合理的响应时间处理这些查询 所以我想用Lucene来搜索这个表。在过去,我广泛使用Solr,因此我熟悉这些概念和术语。我在想,考虑到我上面描述的情况,我看不出为什么不简单地使用Lucene作为这个特定实体的规范存储,而不是SQL到Lucen

我正在使用后端restful web服务构建一个web应用程序

我的一个表是非常独立的,即只从另一个表引用行,这样我就可以在没有连接的情况下愉快地生活,并且只在需要时通过主键获取。然而,这个表包含很多行,对它执行的搜索都会尖叫“Lucene”。MySQL无法以合理的响应时间处理这些查询

所以我想用Lucene来搜索这个表。在过去,我广泛使用Solr,因此我熟悉这些概念和术语。我在想,考虑到我上面描述的情况,我看不出为什么不简单地使用Lucene作为这个特定实体的规范存储,而不是SQL到Lucene的索引同步。基本上,我希望有一个“Lucene DAO”实现来取代这个特定表的当前Hibernate DAO实现

因此,我的问题是:

  • 有什么理由我应该避免这种情况并坚持使用SQL进行索引同步吗
  • 如果一个“Lucene DAO”是一个可行的方法,那么有没有其他的图书馆能为这样的事情提供基础呢?我试图搜索,但没有找到
  • 我发现它只做了我所寻找的一半,但我可以尝试使用它进行搜索。有人有使用Hibernate搜索的经验吗

  • 编辑:我现在发现了一个快速浏览一下似乎就是我想要的东西。有人有这方面的经验吗



    编辑#2:Compass已停止使用,并被不同的ElasticSearch(服务而非组件)取代。Hibernate搜索也不是我想要的。归根结底,这是一种有效的方法,但目前必须自己实现这样一个DAO。

    对于这个用例,我会抛弃SQL,直接使用Lucene,而不是chaser

    您对Lucene的查询将更加丰富:n-grams而不是LIKE