【问题标题】:An Apache Lucene based DAO?一个基于 Apache Lucene 的 DAO?
【发布时间】:2012-05-09 00:00:34
【问题描述】:

我正在构建一个带有后端 RESTful Web 服务的 Web 应用程序。

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

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

所以我的问题是:

  1. 我有什么理由应该避免这种情况并坚持 SQL 到索引同步?
  2. 如果“Lucene DAO”是一种可行的方法,那么是否有任何库可以为类似的方法提供基础?我尝试搜索,但没有找到。
  3. 我遇到过Hibernate Search 它只完成了我正在寻找的一半,但我可以尝试将其仅用于搜索。有人有使用 Hibernate Search 的经验吗?

编辑:我现在遇到了Compass,乍一看似乎就是我要找的东西。有人有这方面的经验吗?


编辑 #2:Compass 已停产并被 ElasticSearch 取代,后者并不完全相同(服务而非组件)。 Hibernate Search 也不是我想要的。底线是这是一种有效的方法,但目前必须自己实现这样的 DAO。

【问题讨论】:

    标签: java architecture lucene hibernate-search compass-lucene


    【解决方案1】:

    我会为这个用例放弃 SQL 并直接使用 Lucene,而不是追逐者。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 2014-10-05
      • 2011-01-18
      • 2011-07-04
      • 1970-01-01
      相关资源
      最近更新 更多