共计 1845 个字符,预计需要花费 5 分钟才能阅读完成。
MongoDB 支持对文本内容执行文本搜索操作,其提供了索引 text index 和查询操作 $text 来完成文本搜索功能。下面我们通过一个简单的例子来体验一下 MongoDB 提供的全文检索功能。
1. 新建 blogs collection,并插入如下的 document。
db.blogs.insert({_id:1,title:”MongoDB text search”,content:”this is a simple MongoDB text search introduction”})
db.blogs.insert({_id:2,title:”MongoDB text index”,content:”this is ae MongoDB text index introduction”})
db.blogs.insert({_id:3,title:”MongoDB text operators”,content:”this is ae MongoDB text query introduction”})
2. 创建 Text Index。
只有拥有 text index 的 collection 才支持全文检索;
每个 collection 只能拥有一个 text index;
Text index 可以包含任何的 string 类型、string 数组类型的字段;
Text index 可以包含多个字段;
执行如下新建 text index 的语句
db.blogs.ensureIndex({title:”text”,content:”text”})
3. 执行简单的全文检索
db.blogs.find({$text:{$search:”index”}})
4. 查询包含 index 或者 operators 的记录
db.blogs.find({$text:{$search:”index operators”}})
5. 查询包含 mongodb 但是不包含 search 的记录
db.blogs.find({$text:{$search:”mongodb -search”}})
6. 查询包含 text search 词组的记录
db.blogs.find({$text:{$search:”\”text search\””}})
7. 使用权重排序搜索结果
默认情况下全文检索返回的结果是无序的;
每次全文检索 MongoDB 会针对文档的匹配程度为每个 document 计算一个相对的分数;
MongoDB 提供了 $meta textScore 来支持全文检索的分数;
db.blogs.find({$text:{$search:”mongodb index”}}, {score:{$meta:”textScore”}} ).sort({score:{$meta:”textScore”}})
更多 MongoDB 相关教程见以下内容:
CentOS 编译安装 MongoDB 与 mongoDB 的 php 扩展 http://www.linuxidc.com/Linux/2012-02/53833.htm
CentOS 6 使用 yum 安装 MongoDB 及服务器端配置 http://www.linuxidc.com/Linux/2012-08/68196.htm
Ubuntu 13.04 下安装 MongoDB2.4.3 http://www.linuxidc.com/Linux/2013-05/84227.htm
MongoDB 入门必读(概念与实战并重) http://www.linuxidc.com/Linux/2013-07/87105.htm
Ubunu 14.04 下 MongoDB 的安装指南 http://www.linuxidc.com/Linux/2014-08/105364.htm
《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF] http://www.linuxidc.com/Linux/2012-07/66735.htm
Nagios 监控 MongoDB 分片集群服务实战 http://www.linuxidc.com/Linux/2014-10/107826.htm
基于 CentOS 6.5 操作系统搭建 MongoDB 服务 http://www.linuxidc.com/Linux/2014-11/108900.htm
MongoDB 的详细介绍:请点这里
MongoDB 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/142775.htm