我有一个名为“ torrents”的收藏,包含大约320万个文档。它基本上包含了公共洪流元数据。
模式:
x-
现在的问题是,当我使用关键字进行文本搜索时,该关键字还包含需要长时间执行的搜索查询的编号。
let mongoose = require('mongoose');
let TorrentSchema = mongoose.Schema({
infohash: {type: String, index: true, unique: true},
title: {type: String, index: true},
category: {type: String, default: "Unknown", index: true},
size: {type: Number, default: 0},
trackers: [{
downloads: {type: Number},
peers: {type: Number},
seeds: {type: Number},
tracker: {type: String}
}],
files: [{path: String, length: Number}],
swarm: {
seeders: {type: Number, default: 0, index: -1},
leechers: {type: Number, default: 0}
},
imported: {type: Date, default: Date.now, index: true},
lastmod: {type: Date, default: Date.now, index: true}
});
TorrentSchema.virtual('getFiles').set(function () {
return this.map(res => {
if (typeof res === "string") return [{path: res, length: 0}];
return res;
})
});
TorrentSchema.virtual('downloads').get(function () {
let downloads = 0;
for (let download of this.trackers) {
downloads += download.downloads
}
return downloads;
});
TorrentSchema.index({title: 'text'}, { language_override: 'none' });
module.exports = mongoose.model('Torrent', TorrentSchema);
现在的问题是。使用“ ubuntu”之类的字母进行搜索时,它的运行速度非常快。但是使用包含数字的字符串搜索时会出现问题。像“ ubuntu 18”一样,没有数字的字符串(如“ ubuntu iso”)在很短的时间内就没有用了。搜索其他一些关键字(例如“ somevideo 1080p”,“ somemovie 2”等)时,也会发生同样的事情。
您对此问题有任何解决办法吗?
答案 0 :(得分:0)
看来,用相同的关键字查询几次后,查询速度似乎大大提高了。