当前位置: 首页 > news >正文

【MongoDB】索引 – 通配符索引

一、准备工作

这里准备一些数据

db.books.drop();db.books.insert({_id: 1, name: "Java", alias: "java 入门", description: "入门图书" });
db.books.insert({_id: 2, name: "C++", alias: "c++",  description: "C++ 入门图书" });
db.books.insert({_id: 3, name: "Java设计模式", alias: "设计模式", description: "java 设计模式" });

二、创建索引

1、创建索引

db.books.createIndex({alias: 'text', description: 'text'},{weights: {alias: 5,description: 10}}
);

上面创建了alias、description字段的文本索引并指定了weights权重;

2、查询索引

db.books.getIndexes();

结果如下:

可以看到weights权重已经设置成功

3、执行查询

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

结果如下:

可以看到查询出了两条数据,由于description字段比alias字段权重高,导致_id为3的数据匹配度比_id为1的数据匹配度高。

4、执行过程

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

结果如下:

http://www.lryc.cn/news/230608.html

相关文章:

  • python安装pip install报错Could not fetch URL https://pypi.org/simple/pip/...更换镜像源
  • C++ 算数运算符 学习资料
  • 问题 H: 棋盘游戏(二分图变式)
  • SQL 主从数据库实时备份
  • C/C++:在#define中使用参数
  • Hive 查询优化
  • 【Java 进阶篇】JQuery 案例:优雅的隔行换色
  • Redis 常用的类型和 API
  • 在qt的设计师界面没有QVTKOpenGLWidget这个类,只有QOpenGLWidget,那么我们如何得到QVTKOpenGLWidget呢?
  • 力扣每日一道系列 --- LeetCode 138. 随机链表的复制
  • 无人零售:创新优势与广阔前景
  • 【华为OD题库-022】阿里巴巴找黄金宝箱(IV)-java
  • Linux 图形界面配置RAID
  • (脏读,不可重复读,幻读 ,mysql5.7以后默认隔离级别)、( 什么是qps,tps,并发量,pv,uv)、(什么是接口幂等性问题,如何解决?)
  • 安全通信网络(设备和技术注解)
  • 深度学习_12_softmax_图片识别优化版代码
  • element-ui设置下拉选择切换必填和非必填
  • Linux的命令——关于操作用户及用户组的命令
  • pycharm 设置多级跳转SSH
  • LeetCode 189.轮转数组(三种方法解决)
  • GB28181设备对接视频流的流程
  • 类属性修改(为什么python类不具备被赋值能力?)
  • uniapp App端 解决input@input事件动态修改值不生效的问题
  • ELK分布式日志
  • Kylin-Server-V10-SP3+Gbase+宝兰德信创环境搭建
  • po与vo互转工具类
  • 基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(三)
  • PyCharm:2023新版PyCharm无UI工具栏,如何回旧版
  • 阿里云国际站:云备份
  • C#中.NET 6.0 Windows窗体应用通过EF访问数据库并对数据库追加、删除记录