【MongoDB】索引 – 文本索引

news2024/11/29 20:55:23

一、准备工作

这里准备一些数据

db.books.insertMany([
    {_id: 1, name: "Java", description: "java 入门图书", translation: [{ language: "english", description: "java basic book" }]},
    {_id: 2, name: "C++", description: "C++ 入门图书", translation: [{ language: "english", description: "c++ basic book" }]},
    {_id: 3, name: "Java设计模式", description: "java 设计模式", translation: [{ language: "english", description: "c++ design mode" }]}
]);

二、创建索引

1、创建索引

db.books.createIndex({description: 'text'});

上面创建了description字段的文本索引

2、查询索引

db.books.getIndexes();

结果如下:

可以看到多了一个名称为description_text的索引;另外可以看到索引中有权重(weights)、默认语言(default_language)、指定语言字段(language_override)、文本索引版本(textIndexVersion)

三、示例:使用英文查询

1、执行查询

db.books.find ({$text: { $search: 'java'}});

结果如下:

2、执行过程

db.books.find ({$text: { $search: 'java'}}).explain();

结果如下:

可以看到查询过程中会使用到索引名称为description_text的索引

四、示例:使用中文查询

1、执行查询

db.books.find ({$text: { $search: '入门语言'}});

结果如下:

2、执行过程

db.books.find ({$text: { $search: '入门语言'}}).explain();

结果如下:

可以看到查询过程中会使用到索引名称为description_text的索引

五、示例:使用中文查询

1、执行查询

db.books.find ({$text: { $search: '入门'}});

查询不到任何结果

2、执行过程

db.books.find ({$text: { $search: '入门'}}).explain();

结果如下:

可以看到查询过程中会使用到索引名称为description_text的索引

3、分析

在创建文本索引时,会先对文本进行分词,根据分词后的结果建立索引;这里分词使用的是空格,所以使用java或者入门语言进行搜索时都可以查询到结果,而使用入门进行搜索时却无法查询到任何数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1176559.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

七年老程序员的九十月总结:上热榜、社区分享

作者简介:张拭心,Android GDE(Google Developer Expert),CSDN 博客专家如果感觉博主的文章还不错的话,请三连(点赞留言转发)支持一下博主哦联系方式:godblesszsx&#xf…

第二证券:政策效应逐步显现 A股修复行情有望持续演绎

上星期,A股商场延续企稳反弹的态势,上证指数震荡上涨0.43%;沪深两市日均成交额回升至8700亿元左右;北向资金近一个月初次转为周净买入5.57亿元。 安排观点一起认为,在稳增加、稳预期相关政策持续发力,上市…

linux 查看驱动模块(lsmod)和 驱动设备(ls /dev)

一、lsmod lsmod 命令,用于列出当前 linux 系统中加载的模块。当驱动开发人员编写好驱动代码,并生成驱动代码对应的驱动模块后,可以通过 insmod xxx.ko 将驱动模块(.ko)加载到 linux 操作系统中。最后,通过…

基于ruoyi框架项目-部署到服务器上

基于ruoyi框架项目-部署到服务器上 文章目录 基于ruoyi框架项目-部署到服务器上1.前端vue编译,后的dist下内容打包(前后端分离版本需要)2.后端打包成jar包(如果是thymeleaf仅需打包jar)3.上传到服务器目录下4. docker部…

什么是MySQL的执行计划(Explain关键字)?

什么是Explain Explain被称为执行计划,在语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,模拟MySQL优化器来执行SQL语句,执行查询时,会返回执行计划的信息,并不执行这条SQL。(注意&…

SAM 微调在医学上的尝试

1、2023下半年 1、 UNet与SAM结合的正确的道路SAMUS,一路SOTA没对手! https://github.com/xianlin7/SAMUS 2、 本文提出 SonoSAM:一种用于分割超声图像上感兴趣对象的快速基础模型。 https://zhuanlan.zhihu.com/p/663988684 未开源 绿色是预测的&…

周大福开启“超越时光”天然钻石之旅,将非常钻石领入日常人生

(2023年11月6日)创立于1929年的周大福凭借独具匠心的设计、超凡卓越的品质和历史悠久的底蕴,成为了中国传统文化与现代审美相融合的知名珠宝品牌。周大福不仅在黄金珠宝领域声名显赫,在天然钻石方面也拥有独树一帜的专业实力。早在…

【广州华锐互动】3D全景虚拟旅游在文旅行业的应用场景

随着科技的不断发展,3D全景虚拟旅游正在成为一种新兴的旅游体验方式,它可以帮助旅游者更加深入地了解旅游信息,提升旅游体验。下面我们将详细介绍3D全景虚拟旅游可以应用于哪些场景。 一、旅游规划 3D全景虚拟旅游可以帮助旅游者更加直观地进…

Linux 本地Yearning SQL审核平台远程访问

文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具,为DBA与开发人员使用…

CDN加速:国内外价格与企业云服务最佳搭配方案

随着互联网的快速发展,CDN(内容分发网络)已经成为了企业提供高质量、高速度内容传递的不可或缺的工具。CDN通过将内容分发到离用户更近的服务器上,提高了网站性能,减少了加载时间,改善了用户体验。在本文中…

建表时如何合理选择字段类型

前言 我们在建表的时候关于字段类型的选择会有这么几类人: 严谨型 严格调研每个字段可能的大小,然后根据不同字段类型的限制,进行选择,这一类人在创建关系型数据表的时候是没有问题的。图自己省事型 把所有字段都设置为String&a…

硬件知识积累 共模电感的介绍

1. 基础知识了解 1. 共模电流(Common Mode Current): 解释1:共模电流是不存在传导或有线回流通路的高频电流,共模电流与位移电流(传导线路周边变化的电场)一同组成环路实现电流闭合。 解释2: 共模电流是指通过电路的两…

GD32单片机远程升级下载,手机在线升级下载程序,GD32在线固件下载升级,手机下载程序固件方法

GD32、STM32单片机,是我们最常见的一种MCU。通常我们在使用STM32单片机都会遇到程序在线升级下载的问题。 GD32/STM32单片机的在线下载通常需要以下几种方式完成: 1、使用ST/GD提供的串口下载工具,本地完成固件的升级下载。 2、自行完成系统B…

自定义拖拽列表

效果图 DataAnalysis.vue <template><div class"app-container"><div class"operate"><el-select class"t_select" v-model"templateName" clearable placeholder"模版" size"default" cle…

电脑监控软件安装教程(30秒钟教会你快速安装)

在现代化办公中&#xff0c;如果有需要安装电脑监控软件的可以参考下面这篇文章&#xff1a; 一、准备阶段 可以自行到官网获取安装包&#xff0c;比如去域之盾官网&#xff0c;即可通过客服获取试用包。 二、操作阶段 1、这个就是安装包&#xff0c;点击运行。 2、这个是正…

Postgresql数据类型-数字类型

PostgreSQL支持的数字类型有整数类型、用户指定精度类型、浮点类型、serial类型。 PostgreSQL支持的数字类型如表所示 smallint、integer、bigint都是整数类型&#xff0c;存储一定范围的整数&#xff0c;超出范围将会报错。smallint存储2字节整数&#xff0c;字段定义时可写成…

大模型使用技巧

目录 1、文心一言&#xff1a;https://yiyan.baidu.com/ 2、智谱清言 ChatGLM&#xff1a;https://chatglm.cn/ 3、百川智能&#xff1a;https://www.baichuan-ai.com/ 4、科大讯飞星火大模型&#xff1a;https://xinghuo.xfyun.cn 5、字节跳动 AI 豆包 https://www.do…

idea2023 PoJie以后无法修改内存无效,heap内存设置

1. 打开电脑环境变量 2. 找到对应pojie文件 vmoptions目录 3. 修改这个文件 添加或者修改配置 -Xms128m -Xmx8192m4. 重启idea 修改成功

史上最全,从初级测试到高级测试开发面试题汇总,冲击大厂年50w+

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 接口测试面试相关…

考研408-计算机网络 第一章-计算机网络体系结构学习笔记及习题

第一章 计算机网络体系结构 一 计算机网络概述 1.1 概念及功能 1.1.1 计算机网络的概念 计算机网络就是互连的、自治的计算机系统的集合 互连&#xff1a;通过通信链路互联互通 自治&#xff1a;各个节点之间无主从关系&#xff0c;高度自治的 1.1.2 计算机网络的功能 功…