目录
一、MongoDB官网地址
- 一、MongoDB官网地址
- 二、MongoDB全文索引(Text Indexes)的概述
- 三、MongoDB创建全文索引(Text Indexes)的语法
- 四、MongoDB创建全文索引(Text Indexes)的示例
- 4.1、数据准备
- 4.2、创建全文索引(Text Indexes)
- 4.3、通过$text操作符查询数据
- MongoDB官网地址:https://www.mongodb.com/docs/manual/core/index-single/
- MongoDB支持全文检索功能,可通过建立文本索引来实现简易的分词检索。
- 全文索引能解决快速文本查找的需求,比如有一个博客文章集合,需要根据博客的内容来快速查找,则可以针对博客内容建立文本索引。
- MongoDB的文本索引功能存在诸多限制,而官方并未提供中文分词的功能,这使得该功能的应用场景十分受限。
-
语法
db.reviews.createIndex( { comments: "text" } )
-
语法解释
操作符解释$text在有text index的集合上执行文本检索。$text将会使用空格和标点符号作为分隔符对检索字符串进行分词, 并且对检索字符串中所有的分词结果进行一个逻辑上的 OR 操作。
-
准备数据集,执行脚本
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()
-
创建name和description的全文索引
db.stores.createIndex({name: "text", description: "text"})
-
查看创建的全文索引
> db.stores.getIndexes()
-
通过$text操作符来查寻stores集合中所有包含“coffee”、”shop”、“java”的数据
> db.stores.find({$text: {$search: "java coffee shop"}})