我的mongo db中有很多文件。我想只检索那些包含“hello world”一词的文件。该文本不是文件名的一部分,但可以在文件的内部(内容)中找到。 mongo是否为此提供任何api?或者我们应该从mongo检索每个文件并在每个文件中搜索它?请帮忙。
答案 0 :(得分:2)
如果您想要全文搜索,可以将mongodb与elasticsearch集成。参见richardwilly98的mongodb-elasticsearch河https://github.com/richardwilly98/elasticsearch-river-mongodb/wiki。对于大型文件,您需要elasticsearch mapper附件。
答案 1 :(得分:1)
目前无法搜索GridFS文件,因为它们只是二进制块。事实上,很少有GridFS用于存储纯文本文件。
最好读取这些文件并将它们存储为MongoDB中的字符串字段。
当然,如果您正在寻找的是全文搜索引擎,那么NoSQL数据库将无法提供所有功能和性能,例如,Apache Solr将提供。
最后,如果您不想移动文件,您的应用程序将需要阅读这些文件,并在其中进行搜索。
答案 2 :(得分:0)