MongoDB 全文檢索索引和標籤功能

來源:互聯網
上載者:User

簡單翻譯。

原文:http://www.mongodb.org/display/DOCS/Full+Text+Search+in+Mongo

MongoDB是通過增加一個tags的數組來實現標籤功能(tagging)。

obj = {
  name:     "Apollo"     ,      
  text:  "Some text about Apollo moon landings", 
  tags: [ "moon"  ,  "apollo"    "spaceflight" , ]     
}


建立索引:

db.articles.ensureIndex( { tags: 1 } );


搜尋:

//尋找一個articles中標籤為"apollo"的文檔,並輸出這個文檔的name屬性。

> print(db.articles.findOne( { tags: "apollo"} ).name);  
Apollo


全文檢索搜尋則是把所有的文本分詞後放到一個keywords數組中,實質和tag功能一樣:


{ title :  " this    is fun" ,           
  _keywords : ["this", "is" , "fun"]
}


和專門的全文檢索搜尋引擎比較:

    MongoDB只是內建功能可以實現全文檢索搜尋,它並不是一個專門的全文檢索搜尋引擎。

    專門的全文檢索搜尋引擎提供以下的功能:

        1.分詞

        2.排名(rank)查詢(MongoDB可以實現,但需要自已寫代碼)

        3.bulk index building

    儘管bulk index building可以讓索引很快地建立,但是這並不能達到即時的效果,MongoDB有一大好處,可以即時,傳統的工具很難達到這樣的效果。


實際使用的例子:

The Business Insider web site uses MongoDB for its blog search function in production.
Mark Watson's opinions on Java, Ruby, Lisp, AI, and the Semantic Web - A recipe example in Ruby.
Full text search with MongoDB at Flowdock

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.