我使用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});
});
不幸的是,當我使用的空白項裏面搜索,它會讀取每一個單場比賽中短期集合裏面的所有文件搜索按空白分隔。
我想象文本索引有作爲標記化器空白;
我需要知道如何逃避空白,以搜索具有整個術語搜索而不分裂它的每個領域。
我試圖用\\
替換空格,但沒有任何更改。
可以請別人幫我嗎?