我使用nodeJs Mongoose来执行文本搜索;文本搜索空白转义
var mongoose = require('mongoose');
var config = require('../config');
var mongoosePaginate = require('mongoose-paginate');
var poiSchema = mongoose.Schema({
city:String,
cap:String,
country:String,
address: String,
description: String,
latitude: Number,
longitude: Number,
title: String,
url: String,
images:Array,
freeText:String,
owner:String,
});
poiSchema.index({'$**': 'text'});
poiSchema.plugin(mongoosePaginate);
mongoose.Promise = global.Promise;
mongoose.connect(config.database);
module.exports = mongoose.model('Poi', poiSchema);
正如你可以在这里看到
poiSchema.index({'$**': 'text'});
我创建我的架构内各个领域的文本索引。
当我尝试执行文本搜索,我开发这个代码:
var term = "a search term";
var query = {'$text':{'$search': term}};
Poi.paginate(query, {}, function(err, pois) {
if(!pois){
pois = {
docs:[],
total:0
};
}
res.json({search:pois.docs,total:pois.total});
});
不幸的是,当我使用的空白项里面搜索,它会读取每一个单场比赛中短期集合里面的所有文件搜索按空白分隔。
我想象文本索引有作为标记化器空白;
我需要知道如何逃避空白,以搜索具有整个术语搜索而不分裂它的每个领域。
我试图用\\
替换空格,但没有任何更改。
可以请别人帮我吗?