【问题标题】:Spring -mongo full text searchspring -mongo 全文搜索
【发布时间】:2013-01-11 11:40:32
【问题描述】:

我正在开发一个 Java 应用程序。它在后端有 mongo db,用于存储文件(在 gridFS 中)。我使用 spring 框架与 mongo db 进行交互。我想搜索存储文档(pdf、doc、txt 文件)中存在的文本。我知道 mongo db 支持全文搜索(从 2.4 开始)。我的问题是

  1. spring框架支持全文搜索吗?还是我们应该借助 solr 或 lucene?
  2. 如果以上两种方法都可以,那么哪个是更好的选择?
  3. 关于索引的问题?我对全文搜索中的索引了解不多
  4. 2.4 何时可用?

【问题讨论】:

    标签: spring mongodb full-text-search


    【解决方案1】:

    1 Spring在其核心特性中不支持全文搜索,但是spring-data项目中有两个子项目可以与solr和elasticsearch交互,它们都是内置的全文搜索引擎apache lucene 的顶部,有关详细信息,请查看以下链接:

    https://github.com/dadoonet/spring-elasticsearch

    https://github.com/SpringSource/spring-data-solr

    2 看你的需要,lucene 是一个底层库,而 elasticsearch 和 solr 是内置在 lucene 之上的开箱即用的搜索引擎,我认为 elasticsearch 通过 mongodb-river 提供了与 mongodb 更好的集成支持gridFS附件的索引。看看这些链接:

    http://www.elasticsearch.org/

    https://github.com/richardwilly98/elasticsearch-river-mongodb/

    3 你需要澄清这个问题。

    4 不知道mongodb 2.4版什么时候能出,不过别忘了全文搜索还是一个实验性的功能,而且我觉得这个功能还是不支持gridFS的。

    【讨论】:

      【解决方案2】:

      MongoDB 文本搜索不会从 PDF、DOC 或任何存储在 GridFS 中的文件中提取文本。从 MongoDB 的角度来看,GridFS 文件是未解释的二进制文件。

      如果您想使用 MongoDB 的新文本搜索功能来搜索不同的文件类型,您需要在应用程序中从这些文件中提取文本并将文本添加到您明确插入的文档中MongoDB。您可以使用现有的库(例如 Apache Tika)来完成繁重的工作。请注意,Solr/Lucene 使用 Tika 从富文本文档类型中提取文本。

      关于MongoDB中的文本搜索索引,请参考发行说明here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-18
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 2021-10-24
        • 2017-03-19
        • 1970-01-01
        相关资源
        最近更新 更多