【问题标题】:can Lucene be used to search inside db?可以使用 Lucene 在数据库中进行搜索吗?
【发布时间】:2011-08-16 23:26:03
【问题描述】:

我们可以使用 Lucene 搜索存储在 DB 中的文本吗? 我看到这篇文章展示了如何将它用于存储为文件的普通文章 http://javatechniques.com/blog/lucene-in-memory-text-search-example/

有人可以推荐吗?

【问题讨论】:

  • 是 MySQL 还是不是?任何此类解决方案都将取决于特定的数据库类型。
  • @skaffman:不,不是。如果索引是在外部完成的——比如使用 Lucene——那么它可以以独立于数据库的方式完成。例如,Pangea 的答案中的链接指出了如何手动完成(创建 Lucene 文档),并指向自动化该过程的工具。

标签: java database search lucene


【解决方案1】:

看看their FAQ的以下问题。如果您使用的是 Hibernate,那么我建议您考虑 Hibernate Search

如何使用 Lucene 为数据库编制索引?

【讨论】:

  • 谢谢。当hibernate用作provider时,能不能和JPA一起使用
【解决方案2】:

您应该使用Compass Framework。它基于 Lucene 和 integrates nicely with several ORMs

更新:您现在应该改用 ElasticSearch(感谢 Pangea)

【讨论】:

  • 指南针框架不再受支持。 ElasticSearch 是 compass 的创建者发起的新项目。
  • Elastic Search 有 JDBC 存储吗?
  • 那家伙的blog post 并没有说 Compass 已经死了,它说 Compass 处于维护模式。很明显,ElasticSearch 不是 Compass 替代品 - 它缺少的正是 ORM 集成,这使得它可以解决这个问题。
【解决方案3】:

我们可以使用 Lucene 搜索存储在 DB 中的文本吗?

是的,你可以。 Lucene 能够读取不同类型的数据库表(如 mysql 等)。为了在数据库中搜索存储的文本,lucene 需要索引所有你想搜索的数据。 但不要忘记:lucene 只是一个索引。要访问 lucene - 要在里面搜索或开始导入(无论如何),您需要第二部分软件,以“使用”(控制,...)lucene 中的数据。 这可能是 solr,例如 http://lucene.apache.org/solr/

在 RDBMS 上,您不再需要全文索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 2017-05-20
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 2012-07-18
    相关资源
    最近更新 更多