一、准备工作
这里准备一些数据
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();
结果如下: