第41章 MongoDB 全文检索教程
全文检索对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。
这个过程类似于通过字典中的检索字表查字的过程。
MongoDB 从 2.4 版本开始支持全文检索,目前支持15种语言的全文索引。
- danish
- dutch
- english
- finnish
- french
- german
- hungarian
- italian
- norwegian
- portuguese
- romanian
- russian
- spanish
- swedish
- turkish
启用全文检索
MongoDB 在 2.6 版本以后是默认开启全文检索的,如果尊敬的读者使用之前的版本,尊敬的读者需要使用以下代码来启用全文检索:
>db.adminCommand({setParameter:true,textSearchEnabled:true})
或者使用命令:
mongod --setParameter textSearchEnabled=true
创建全文索引
考虑以下 posts 集合的文档数据,包含了文章内容(post_text)及标签(tags):
{
"post_text": "enjoy the mongodb articles on Runoob",
"tags": [
"mongodb",
"liulianjiangcsdn"
]
}
咱们可以对 post_text 字段建立全文索引,这样咱们可以搜索文章内的内容:
>db.posts.ensureIndex({post_text:"text"})
使用全文索引
现在咱们已经对 post_text 建立了全文索引,咱们可以搜索文章中的关键词 liulianjiangcsdn:
>db.posts.find({$text:{$search:"liulianjiangcsdn"}})
以下命令return 了如下包含 liulianjiangcsdn 关键词的文档数据:
{
"_id" : ObjectId("53493d14d852429c10000002"),
"post_text" : "enjoy the mongodb articles on Runoob",
"tags" : [ "mongodb", "liulianjiangcsdn" ]
}
如果尊敬的读者使用的是旧版本的 MongoDB,尊敬的读者可以使用以下命令:
>db.posts.runCommand("text",{search:"liulianjiangcsdn"})
使用全文索引可以提高搜索效率。
删除全文索引
删除已存在的全文索引,可以使用 find 命令查找索引名:
>db.posts.getIndexes()
通过以上命令获取索引名,本例的索引名为post_text_text,执行以下命令来删除索引:
>db.posts.dropIndex("post_text_text")
本专栏所有文章
第1章 MongoDB 教程 | 第2章 NoSQL 简介教程 |
---|---|
第3章 MongoDB 简介教程 | 第4章 Windows MongoDB教程 |
第5章 Linux MongoDB教程 | 第6章 OSX MongoDB教程 |
第7章 MongoDB 概念解析教程 | 第8章 MongoDB 连接教程 |
第9章 MongoDB 创建数据库教程 | 第10章 MongoDB 删除数据库教程 |
第11章 MongoDB 创建集合教程 | 第12章 MongoDB 删除集合教程 |
第13章 MongoDB 插入文档教程 | 第14章 MongoDB 更新文档教程 |
第15章 MongoDB 删除文档教程 | 第16章 MongoDB 查询文档教程 |
第17章 MongoDB 条件操作符教程 | 第18章 MongoDB $type 操作符教程 |
第19章 MongoDB Limit与Skip方法教程 | 第20章 MongoDB 排序教程 |
第21章 MongoDB 索引教程 | 第22章 MongoDB 聚合教程 |
第23章 MongoDB 复制(副本集)教程 | 第24章 MongoDB 分片教程 |
第25章 MongoDB 备份与恢复教程 | 第26章 MongoDB 监控教程 |
第27章 MongoDB Java教程 | 第28章 MongoDB PHP 扩展教程 |
第29章 MongoDB PHP教程 | 第30章 MongoDB PHP7教程 |
第31章 Node.js MongoDB教程 | 第32章 MongoDB 关系教程 |
第33章 MongoDB 数据库引用教程 | 第34章 MongoDB 覆盖索引查询教程 |
第35章 MongoDB 查询分析教程 | 第36章 MongoDB 原子操作教程 |
第37章 MongoDB 高级索引教程 | 第38章 MongoDB 索引限制教程 |
第39章 MongoDB ObjectId教程 | 第40章 MongoDB Map Reduce教程 |
第41章 第41章 MongoDB 全文检索教程教程 | 第42章 MongoDB 正则表达式教程 |
第43章 MongoDB 管理工具教程 | 第44章 MongoDB GridFS教程 |
第45章 MongoDB 固定集合教程 | 第46章 MongoDB 自动增长教程 |
寄语
本文有榴莲酱CSDN原创,欢迎点赞、转载,博客地址:https://blog.csdn.net/qq441540598
- 喜欢不等于爱,喜欢不是爱。如果你不喜欢,别接受他人的爱。如果对方只是喜欢你不是爱你,也别接受他的喜欢。宝贝,你要记得,在这个世界上,你是独一无二的,没有人像你,你也不需要去代替谁,你也没有办法去代替谁。在你的人生舞台上,你是自己的主角,不需要去做谁的配角。宝贝,别在难过的时候接受别的男子的爱,那对他不公平,你也不会幸福,要分清楚,是喜欢还是同情或者是怜悯。可是宝贝,别如你所说的,找一个爱自己的人就好。世界上好男生很多,你会遇到喜欢你而你又喜欢他的人。所以宝贝,别放纵爱,别吝啬爱。
- 别忘了答应自己要做的事,别忘了答应自己要去的地方。再见一月,你好二月。
- 无论何时都不要拒人于千里之外,更不能过多地暴露自己的锋芒。会韬光养晦,在你自己变得更好之后再去做想做的事情。样你做好了自己,才能让自己的交际环境更好。
- 生使一切的人站在一条水平线上,死使卓越的人露出头角来。
- 每个人的经历乃至这个世界都是因缘所致,佛陀从来不会造出一个怎样的世界或是怎样的人类,所以,很多外在的事情是很难改变的,就好像你种下了一粒豆子,然后虔诚地祈求佛陀,让这粒种子长出一个南瓜,这是佛陀帮不了你的事情。