再说了,如果我想使用存储MongoDB的GridFS的PDF或ePub档案,才有可能执行全文上的数据文件搜索?
Answer 1:
你不能做目前蒙戈内真正的全文检索: http://www.mongodb.org/display/DOCS/Full+Text+Search+in+Mongo
随意在这里为它投票: https://jira.mongodb.org/browse/SERVER-380
蒙戈更多的是一种通用的可扩展的数据存储,并作为但它不具有任何全文搜索支持。 根据你的使用情况,您可以使用标准的B树索引所有的文本字的数组,但它不会做词干或模糊匹配,等等。
不过,我会推荐相结合的MongoDB用基于Lucene的应用程序(弹性搜索流行)。 您可以将所有MongoDB中的数据(二进制数据,元数据等),然后指数Lucene的文档的纯文本。 或者,如果你的使用情况是纯粹的全文搜索,你可能只采用弹性的搜索,而不是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/
Answer 2:
不使用的MongoDB的API,而不是我所知道的。 GridFS的似乎是设计成更像是一个简化的文件系统与API,这些API提供了一个简单的键值语义。 在他们的项目创意页他们列出两件事情,如果在生产就绪状态存在,这将有助于你:
- GridFS的FUSE ,它会让你安装GridFS的作为本地文件系统,然后指数像你磁盘上的将指数东西
- 与像Lucene和工具实时全文搜索集成Solr的 。 有在GitHub上,有些项目到位桶 ,你可能想看看。
另外,也要看看ElasticSearch 。 我已经看到了与蒙戈一些集成 ,但我不知道有多少已经完成进军GridFS的 (GridFS的附件支持被提及,但它肯定我没有工作就知道了)。 也许你会成为一个构建它,然后开源呢? 应该是一个有趣的冒险