【问题标题】:How to use Spring Data ElasticSearch with MongoDb如何将 Spring Data ElasticSearch 与 MongoDb 一起使用
【发布时间】:2017-01-13 05:20:32
【问题描述】:

我正在尝试在使用Spring Data 时对存储在数据库中的文本文件进行全文搜索。 MongoDb 非常适合搜索,但它只能存储 16Mb 大小的文档。另一方面,GridFs 可以存储更大的文件,但不允许对其保存的数据进行搜索。 所以问题是:

  1. Elasticsearch 文档和数据库的大小限制是多少。(我可以放弃 GridF 来存储更大的文件吗?

  2. 我可以同时使用 Spring Data MongoDb 和 Spring Data Elasticsearch 吗?(Mongo 用于常用信息存储和查询(MongoRepository)和 Elastic 用于全文 搜索存储的文本数据。

如果是的话,如果有人可以帮助我设置它,我将不胜感激。(称为 mongo-connector??)我已经在我的项目中使用 Spring Data MongoDb。提前致谢。

【问题讨论】:

    标签: mongodb elasticsearch spring-data gridfs


    【解决方案1】:
    1. Lucene 使用 32 位寻址。理论上你可以使用2GB的文件。但我认为你会在 2GB 之前面临与 Elastic 无关的另一个问题。有更好的做法来存储大数据。
    2. 您可以使用 spring 数据中的ElasticsearchRepository

    example project

    【讨论】:

    • 我想存储 20Mb 的文件并对它们进行全文搜索。但是文件的数量会超过2GB。是否有可能有很多
    • 当然。举个例子——我的一个项目使用 Mongo,数据库大小超过 2 TB。
    • 但在 Mongo 文档大小不能超过 16MB :) 你使用弹性搜索和 mongo 对吗?
    • 我在 Mongo 中有很多文档。不是很大,但数量很大。我正在使用 River 插件来结合 Mongo 和 Elastic。也许您不应该将这些文档保留在 Mongo 中?将它们保存在云端 (Amazon S3) 上的文件系统中,并在 Elastic 中构建与文件 ID 相关的索引。
    • 好。我的意图是存储最多 20MB 的 txt 文件,并对它们进行完整的 txt 搜索。其余信息将存储在 MongoDb 中。据我了解,这是合理的做法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 2017-11-07
    • 2019-11-09
    • 1970-01-01
    • 2017-02-02
    • 2012-05-10
    相关资源
    最近更新 更多