MongoDB——索引类型之全文索引(Text Indexes)
Posted 小志的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB——索引类型之全文索引(Text Indexes)相关的知识,希望对你有一定的参考价值。
目录
一、MongoDB官网地址
二、MongoDB全文索引(Text Indexes)的概述
- MongoDB支持全文检索功能,可通过建立文本索引来实现简易的分词检索。
- 全文索引能解决快速文本查找的需求,比如有一个博客文章集合,需要根据博客的内容来快速查找,则可以针对博客内容建立文本索引。
- MongoDB的文本索引功能存在诸多限制,而官方并未提供中文分词的功能,这使得该功能的应用场景十分受限。
三、MongoDB创建全文索引(Text Indexes)的语法
-
语法
db.reviews.createIndex( comments: "text" )
-
语法解释
操作符 解释 $text 在有text index的集合上执行文本检索。$text将会使用空格和标点符号作为分隔符对检索字符串进行分词, 并且对检索字符串中所有的分词结果进行一个逻辑上的 OR 操作。
四、MongoDB创建全文索引(Text Indexes)的示例
4.1、数据准备
-
准备数据集,执行脚本
db.stores.insert( [ _id: 1, name: "Java Hut", description: "Coffee and cakes" , _id: 2, name: "Burger Buns", description: "Gourmet hamburgers" , _id: 3, name: "Coffee Shop", description: "Just coffee" , _id: 4, name: "Clothes Clothes Clothes", description: "Discount clothing", _id: 5, name: "Java Shopping", description: "Indonesian goods" ] )
-
查看初始化的数据
> db.stores.find()
4.2、创建全文索引(Text Indexes)
-
创建name和description的全文索引
db.stores.createIndex(name: "text", description: "text")
-
查看创建的全文索引
> db.stores.getIndexes()
4.3、通过$text操作符查询数据
-
通过$text操作符来查寻stores集合中所有包含“coffee”、”shop”、“java”的数据
> db.stores.find($text: $search: "java coffee shop")
以上是关于MongoDB——索引类型之全文索引(Text Indexes)的主要内容,如果未能解决你的问题,请参考以下文章