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)的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB中各种类型的索引

mysql全文索引之模糊查询

kibana-1可视化之创建索引

全文搜索之MySQL与ElasticSearch搜索引擎

mongodb的全文索引实现

MongoDB——索引类型之Hash索引(Hashed Indexes)