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

【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.kler.cn/a/132211.html

相关文章:

  • 抖音直播间涨粉助手,其开发流程与需要的技术和代码分享
  • FreeRtos 任务切换深入分析
  • leetcode - 串联所有单词的子串 - 最小覆盖子串 - x 的平方根
  • CCNA课程实验-14-Final_Lab
  • 小程序授权获取头像
  • 代码随想录算法训练营第10天|● 20. 有效的括号 ● 1047. 删除字符串中的所有相邻重复项 ● 150. 逆波兰表达式求值
  • py代码-python异步执行代码
  • HTML5学习系列之项目实战1
  • 国科大数据挖掘期末复习——聚类分析
  • ES6模块导入与导出的方式
  • 接口测试vs功能测试
  • 验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)
  • syslog-ng 发送metric 到 Prometheus + Grafana
  • 美术作品的著作权
  • SQL Server如何建表
  • upload-labs关卡9(基于win特性data流绕过)通关思路
  • lua中的正则表达式
  • Linux C/C++全栈开发知识图谱(后端/音视频/游戏/嵌入式/高性能网络/存储/基础架构/安全)
  • [C/C++]数据结构 链表(单向链表,双向链表)
  • 从0到0.01入门 Webpack| 001.精选 Webpack面试题