当前位置: 首页 > 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/227626.html

相关文章:

  • Git 入门使用
  • 如何写好接口自动化测试脚本
  • openEuler编译安装nmon性能监控工具及可视化分析工具
  • 96 前缀树Trie
  • “第六十六天”
  • MYSQL5.7和MYSQL8配置主从
  • springboot苍穹外卖实战:九、小程序微信登录代码开发+商品浏览
  • 【MySQL系列】 第二章 · SQL(下)
  • SpringBoot_01
  • 【OS】AUTOSAR架构下多核通信
  • 从Docker Hub获取镜像和创建容器
  • 江西开放大学引领学习新时代:电大搜题助力学子迈向成功
  • 入门指南:Docker的基本命令
  • nvdiffrast的MeshRenderer
  • APISIX源码安装问题解决
  • 基于SSM和vue的在线购物系统
  • 力扣100题——子串
  • 自然语言处理中的文本聚类:揭示模式和见解
  • C/C++内存管理——“C++”
  • jsp小知识
  • Flutter:改变手机状态栏颜色,与appBar状态颜色抱持一致
  • 深入分析:一体化运维监控在金融行业的关键作用
  • 物联网AI MicroPython学习之语法 network网络配置模块
  • java根据前、中序遍历结果重新生成二叉树
  • 利用检测结果实现半自动标注
  • Android修行手册 - 万字梳理JNI开发正确技巧和错误缺陷
  • C++学习 --类和对象之继承
  • Redis之缓存
  • Redis6的IO多线程分析
  • kali linux安装教程