2012-05-08 52 views

回答

3

你不能做目前蒙戈內真正的全文檢索:http://www.mongodb.org/display/DOCS/Full+Text+Search+in+Mongo

隨意在這裏爲它投票: https://jira.mongodb.org/browse/SERVER-380

蒙戈更多的是一種通用的可擴展的數據商店,而且它還沒有任何全文搜索支持。根據您的使用情況,您可以使用標準b-tree索引以及文本中所有單詞的數組,但不會進行詞幹匹配或模糊匹配等。

但是,我會建議將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/

+1

MongoDB 2.4現在支持全文搜索。 –

+0

是的。我想我應該更新這個。 –

+1

MongoDB 2.6現在將全文搜索作爲其常規查詢操作符的一部分(直到2.4,您必須使用db.runCommand)。但是,您不能在gridfs文件中進行任何類型的搜索。它們只是二進制塊,如果它們是圖像的一部分或教科書的章節,mongo會將它們視爲沒有區別。 – amenadiel

0

不使用MongoDB API,不是我所知道的。 GridFS似乎是designed to be more like a simplified file system,API提供了一個直接的鍵值語義。在他們的project ideas頁他們列出兩件事情,這將有助於你,如果在生產準備狀態存在:

  • GridFS FUSE,它會讓你安裝GridFS的爲本地文件系統,然後指數像你將索引的東西你磁盤
  • 實時全文搜索與Lucene和Solr等工具集成。 github上有一些項目,您可能需要檢查bitbucket

也看看ElasticSearch。我看過some integration with Mongo,但我不確定已經完成了多少工作to tap into the GridFS(提到GridFS附件支持,但我沒有和它一起工作以確定)。也許你會成爲一個人,然後開源呢?應該是一個有趣的冒險

+1

GridFS的導火索是完全過時。 –