【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();

结果如下:

【MongoDB】索引 – 通配符索引_第1张图片

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

3、执行查询

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

结果如下:

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

4、执行过程

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

结果如下:

【MongoDB】索引 – 通配符索引_第2张图片

你可能感兴趣的:(MongoDB,mongodb,nosql,数据库)