浅析MongoDB 全文检索

 更新时间:2020年07月24日 08:34:24   作者:菜鸟教程  
这篇文章主要介绍了MongoDB 全文检索的相关资料,文中讲解非常细致,帮助大家更好的学习了解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",
   "runoob"
  ]
}

我们可以对 post_text 字段建立全文索引,这样我们可以搜索文章内的内容:

>db.posts.ensureIndex({post_text:"text"})

使用全文索引

现在我们已经对 post_text 建立了全文索引,我们可以搜索文章中的关键词 runoob:

>db.posts.find({$text:{$search:"runoob"}})

以下命令返回了如下包含 runoob 关键词的文档数据:

{ 
  "_id" : ObjectId("53493d14d852429c10000002"), 
  "post_text" : "enjoy the mongodb articles on Runoob", 
  "tags" : [ "mongodb", "runoob" ]
}

如果你使用的是旧版本的 MongoDB,你可以使用以下命令:

>db.posts.runCommand("text",{search:"runoob"})

使用全文索引可以提高搜索效率。

删除全文索引

删除已存在的全文索引,可以使用 find 命令查找索引名:

>db.posts.getIndexes()

通过以上命令获取索引名,本例的索引名为post_text_text,执行以下命令来删除索引:

>db.posts.dropIndex("post_text_text")

以上就是浅析MongoDB 全文检索的详细内容,更多关于MongoDB 全文检索的资料请关注脚本之家其它相关文章!

相关文章

  • 基于Morphia实现MongoDB按小时、按天聚合操作方法

    基于Morphia实现MongoDB按小时、按天聚合操作方法

    这篇文章主要介绍了基于Morphia实现MongoDB按小时、按天聚合操作 ,实现思路是启动定时任务,对各用户的设备状态数据分别按照小时以及天进行聚合,并存储进数据库中供用户后续查询.需要的朋友可以参考下
    2019-07-07
  • 2021最新版windows10系统MongoDB数据库安装及配置环境

    2021最新版windows10系统MongoDB数据库安装及配置环境

    这篇文章主要介绍了2021最新版MongoDB数据库安装及配置环境(windows10系统),本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • MongoDB中强大的统计框架Aggregation使用实例解析

    MongoDB中强大的统计框架Aggregation使用实例解析

    这篇文章主要介绍了MongoDB中强大的统计框架Aggregation使用实例解析,文中举了Python和Java使用Aggregation的数据统计例子进行讲解,需要的朋友可以参考下
    2016-01-01
  • MongoDB实现自动备份的全过程记录

    MongoDB实现自动备份的全过程记录

    这篇文章主要给大家介绍了关于MongoDB实现自动备份的全过程,文中通过示例代码介绍的非常详细,对大家学习或者使用MongoDB具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • MongoDB安装使用并实现Python操作数据库

    MongoDB安装使用并实现Python操作数据库

    Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。本文就详细的介绍一下如何使用,感兴趣的可以了解一下
    2021-06-06
  • 给MongoDB添加用户权限方法分享

    给MongoDB添加用户权限方法分享

    这篇文章主要介绍了给MongoDB添加用户权限方法分享,十分的细致全面,推荐给大家,有需要的小伙伴可以参考下。
    2015-03-03
  • mongodb 查看数据库和表大小

    mongodb 查看数据库和表大小

    mongodb查看数据库和表的方法比较简单,在为这里推荐使用stats的方法,直观并且详细。
    2014-07-07
  • MongoDB社区版和企业版的差别对照表

    MongoDB社区版和企业版的差别对照表

    这篇文章主要介绍了MongoDB社区版和企业版的差别对照表,本文同时提供了中文和英文版的对照表,需要的朋友可以参考下
    2014-10-10
  • Linux服务器下MariaDB 10自动化安装部署

    Linux服务器下MariaDB 10自动化安装部署

    这篇文章主要介绍了Linux服务器下MariaDB 10自动化安装部署,需要的朋友可以参考下
    2016-08-08
  • 详解MongoDB中创建集合与删除集合的操作方法

    详解MongoDB中创建集合与删除集合的操作方法

    因为MongoDB属于NoSQL,所以集合collection相当于关系型数据库中的表table,这里我们就来详解MongoDB中创建集合与删除集合的操作方法:
    2016-06-06

最新评论