gpt4 book ai didi

java - 基于 Apache Lucene 的 DAO?

转载 作者:行者123 更新时间:2023-11-30 04:48:31 26 4
gpt4 key购买 nike

我正在构建一个带有后端 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 取代,ElasticSearch 并不完全相同(服务而不是组件)。 Hibernate Search 也没有被证明是我正在寻找的东西。最重要的是,这是一种有效的方法,但目前必须自己实现这样的 DAO。

最佳答案

对于这个用例,我会放弃 SQL,直接使用 Lucene,不使用后续程序。

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

关于java - 基于 Apache Lucene 的 DAO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10364162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com