MongoDB 全文检索和标签功能

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介:

简单翻译。

原文: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

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
4月前
|
JSON 自然语言处理 数据库
数据库-ElasticSearch入门(索引、文档、查询)
数据库-ElasticSearch入门(索引、文档、查询)
285 0
|
存储 NoSQL Java
使用 MongoDB 搜索附近的人|学习笔记
快速学习使用 MongoDB 搜索附近的人
493 0
使用 MongoDB 搜索附近的人|学习笔记
|
NoSQL MongoDB 数据库
MongoDB 查询文档
MongoDB 查询文档
142 0
|
JSON NoSQL MongoDB
MongoDB(10)- 查询嵌套文档
MongoDB(10)- 查询嵌套文档
340 0
MongoDB(10)- 查询嵌套文档
|
存储 NoSQL Java
MongoDB:17-MongoDB-索引限制及其他限制规则
MongoDB:17-MongoDB-索引限制及其他限制规则
781 0
|
NoSQL 数据库 MongoDB
MongoDB文档操作
一、插入并保存文档 1.1 insert()方法 1.2 save()方法 1.3 批量插入 1.4 插入原理与方法 二、删除文档 2.1 remove()方法 2.2 deleteOne()以及deleteMany() 2.
1046 0
|
NoSQL MongoDB
MongoDB修改文档
MongoDB修改文档 一、文档替换     文档替换其实在之前已经有讲过了,就是传入两个对象,第一个对象作为调节,第二个条件作为满足条件的文档修改的内容,例如:     db.test.
1673 0
|
存储 NoSQL 关系型数据库
mongodb高级聚合查询
  在工作中会经常遇到一些mongodb的聚合操作,特此总结下。mongo存储的可以是复杂类型,比如数组、对象等mysql不善于处理的文档型结构,并且聚合的操作也比mysql复杂很多。 注:本文基于 mongodb v3.
3081 0