假设我想使用MongoDB的GridFS存储PDF或ePub文件,是否可能对数据文件进行全文搜索?
假设我想使用MongoDB的GridFS存储PDF或ePub文件,是否可能对数据文件进行全文搜索?
目前在Mongo中你无法进行真正的全文搜索:http://www.mongodb.org/display/DOCS/Full+Text+Search+in+Mongo
欢迎在这里投票支持它: https://jira.mongodb.org/browse/SERVER-380
Mongo更像是一个通用的可扩展数据存储,目前还没有任何全文搜索支持。根据您的使用情况,您可以使用标准的B树索引和文本中所有单词的数组,但不会进行词干提取或模糊匹配等操作。
然而,我建议将mongodb与基于lucene的应用程序(elastic search很受欢迎)结合使用。您可以将所有数据存储在mongodb中(二进制数据、元数据等),然后在lucene中对文档的纯文本进行索引。或者,如果您的使用情况是纯全文搜索,则可以考虑使用elastic search而不是mongodb。
更新(2013年4月): MongoDB 2.4现在支持基本的全文索引!以下是一些有用的资源。
http://docs.mongodb.org/manual/applications/text-search/
http://docs.mongodb.org/manual/reference/command/text/#dbcmd.text
http://blog.mongohq.com/blog/2013/01/22/first-week-with-mongodb-2-dot-4-development-release/
没有使用MongoDB API,至少我不知道。GridFS似乎是设计成更像简化的文件系统,具有提供直接键值语义的API。在他们的项目想法页面上,列出了两件事情,如果它们处于生产就绪状态,将会对您有所帮助:
还要看看ElasticSearch。我见过Mongo的一些集成,但我不确定有多少工作已经完成来利用GridFS(提到了GridFS附件支持,但我没有使用过它,无法确定)。也许你会成为那个构建它并将其开源的人?这应该是一个有趣的冒险