期待已久的特性,但目前仍然在beta阶段,所以官方建议不要在生产环境使用。也因此需要手动打开这个特性。

在命令行指定

mongod --setParameter textSearchEnabled=true ...

也可以放在配置文件中

setParameter = textSearchEnabled=true

还可以通过命令启动:

db.adminCommand( { setParameter : 1, textSearchEnabled : true } )

如果是用在Replica Set中,则每个结点都必须启用这个配置。

进行以上配置后,可以通过ensureIndex命令来为一个字段配置全文索引,如:

db.reviews.ensureIndex( { comments: "text" } )

关于创建全文索引的详细说明请参考这里。其中有意思的是全文索引除了对单一字段有效外,也可以配置为对文档中的所有文本字段有效:

db.collection.ensureIndex(
{ "$**": "text" },
{ name: "TextIndex" }
)

这条命令会建立一个名为“TextIndex”的对文档中所有文本字段都有效的全文索引。

全文索引只能使用text命令来访问,而不是在查找文档时默认使用。这是beta特性的特殊处理,官方预计将在2.6版本中使它变为常规find语法的一部分。大概会是这个样子:

collection.find({ caption: { $text: "query" }})

但是目前只能使用这样的语法:

t.runCommand( "text", { search : "Australian" } );

注意全文索引是大小写敏感的,这点和Sql Server不太一样,使用时要小心。并且默认只会返回头100条结果,这是由性能问题决定的。

全文索引也会丢掉无意义的冠词、数词,如a, an, the等,但这取决于使用的语言。语言可以在创建全文索引时指定:

db.collection.runCommand( "text", { search: <string>,
filter: <document>,
project: <document>,
limit: <number>,
language: <string> } )

这部分内容可以参考这里

MongoDb 2.4 beta新特性——全文索引的更多相关文章

  1. BizTalk 2013 Beta 新特性介绍

    BizTalk2013 Beta于2012年11月6日发布,下面来介绍一下BizTalk 2013 Beta的新特性. [核心更新功能] 1. 与云服务集成 BizTalk 2013 Server提供 ...

  2. OpenNebula 4.0 Beta 新特性介绍

    http://blog.chinaunix.net/uid-20940095-id-3561376.html 2013年3月26号,OpenNebula社区发布了OpenNebula 4.0 Beta ...

  3. MongoDB 4.2 新特性解读 (转载)

    MongoDB World 2019 上发布新版本 MongoDB 4.2 Beta,包含多项数据库新特性,本文尝试从技术角度解读. Full Text Search MongoDB 4.2 之前,全 ...

  4. MongoDB 4.2新特性:分布式事务、字段级加密、通配符索引、物化视图

    MongoDB 4.2已经发布,我们来看看它增加了哪些新特性?分布式事务?数据库加密?通配符索引? 在2019年MongoDB World大会上,CTO Eliot Horowitz介绍了MongoD ...

  5. MongoDB 3.0 新特性【转】

    本文来自:http://www.open-open.com/lib/view/open1427078982824.html#_label3 更多信息见官网: http://docs.mongodb.o ...

  6. 跨平台的 .NET 运行环境 Mono 3.2 新特性

    Mono 3.2 发布了,对 Mono 3.0 和 2.10 版本的支持不再继续,而且这两个分支也不再提供 bug 修复更新. Mono 3.2 主要新特性: LLVM 更新到 3.2 版本,带来更多 ...

  7. Atitit opencv版本新特性attilax总结

    Atitit opencv版本新特性attilax总结 1.1. :OpenCV 3.0 发布,史上功能最全,速度最快的版1 1.2. 应用领域2 1.3. OPENCV2.4.3改进 2.4.2就有 ...

  8. Swift3新特性汇总

    之前 Apple 在 WWDC 上已将 Swift 3 整合进了 Xcode 8 beta 中,而本月苹果发布了 Swift 3 的正式版.这也是自 2015 年底Apple开源Swift之后,首个发 ...

  9. Visual Studio 2015速递(3)——ASP.NET 新特性

    系列文章 Visual Studio 2015速递(1)——C#6.0新特性怎么用 Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力) Visual Studi ...

随机推荐

  1. apache下php无法解析直接显示源代码解

    在http.conf中加入php的设置 #php5_start phpIniDir "d:/Program Files/php" LoadModule php5_module &q ...

  2. 网站引导页插件intro.js 的用法

    intro.js是一个用于制作网页引导效果的js插件,用法很简单,intro.js.v2.0.rar 1.在需要的页面添加引用 intro.js introjs.css 这两个文件已经足够,但是文件夹 ...

  3. python 之编码问题详解

    前在一个项目中遇到用post提交一个xml,xml中含有中文,对于单独的py文件,使用urllib2.urlopen完全ok,但在django中使用就一直报编码错误,然后在网上看到这篇文章不错,决定m ...

  4. ubuntu 14.10 安装 zabbix

    在ubuntu 14.10 上部署 zabbix 2.x 基本软件包安装 既然是ubuntu系统,当然要用好apt-get神器. 参考教程 URL:http://blog.csdn.net/cloud ...

  5. linux驱动学习之Input输入子系统

    以前,看过国嵌关于input子系统的视频课程,说实话,我看完后脑子里很乱,给我的印象好像是input子系统驱动是一个全新的驱动架构,疑惑相当多.前几天在网上,看到有很多人介绍韦东山老师的linux驱动 ...

  6. Mingyang.net:如何获取所有的请求参数?

    第一种方法:用@RequestParam. @RequestMapping(params="m=update", method=RequestMethod.POST) public ...

  7. POJ 2524

    并查集思想,初始化每个元素的根节点为本身. 求解目标是求解存在几个集合.解决方案:查看有多少个根节点,表现在记忆数组上就是有多少个元素的根是它本身. #include<stdio.h> # ...

  8. css 使用background背景实现border边框效果

    css中,我们一般使用border给html元素设置边框,但也可以使用background背景来模拟css边框效果,本文章向大家介绍css 使用background背景实现border边框效果,需要的 ...

  9. HDU2063_过山车_C++

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2063 又是一道二分图匹配的裸题,直接上匈牙利算法 注意一点它末尾的0结束,是标志着有多组数据……坑…… # ...

  10. Ant 脚本打印系统属性变量、ant内置属性

    Ant 脚本打印系统属性变量.ant内置属性 作用 编写ant脚本的时候,经常会引用到系统属性,本脚本用于打印系统常用属性(System.getProperties)与环境变量(Environment ...