Node.js 基于Mongoostic的全文检索中的模糊搜索
我一直在开发一个具有搜索功能的网站,该功能将查询与MongoDB中的各种文章相匹配。目前mongoDB不支持模糊搜索,这是我想要的搜索功能。为此,我发现Elasticsearch最适合处理此类问题。为此,我在node.js中使用了Mongoostic客户端。我能够保存数据项并搜索查询,但它无法搜索其中是否存在任何拼写错误。我如何定制查询以帮助查找文本,即使有一些打字错误或单词丢失Node.js 基于Mongoostic的全文检索中的模糊搜索,node.js,mongodb,mongoosastic,Node.js,Mongodb,Mongoosastic,我一直在开发一个具有搜索功能的网站,该功能将查询与MongoDB中的各种文章相匹配。目前mongoDB不支持模糊搜索,这是我想要的搜索功能。为此,我发现Elasticsearch最适合处理此类问题。为此,我在node.js中使用了Mongoostic客户端。我能够保存数据项并搜索查询,但它无法搜索其中是否存在任何拼写错误。我如何定制查询以帮助查找文本,即使有一些打字错误或单词丢失 const mongoose = require('mongoose'); const mongoosast
const mongoose = require('mongoose');
const mongoosastic = require('mongoosastic');
mongoose.connect('mongodb://localhost:27017/mongosync');
var UserSchema = new mongoose.Schema({
name: String
, email: String
, city: String
});
UserSchema.plugin(mongoosastic, {
"host": "localhost",
"port": 9200
}, {hydrate:true, hydrateOptions: {lean: true}});
var User = mongoose.model('user', UserSchema);
// User.createMapping((err, mapping) => {
// console.log('mapping created');
// });
// var newUser = new User({
// name: 'Abhishek',
// email: 'abhishek.patel@company.com',
// city: 'bhopal'
// });
// newUser.save((err) => {
// if(err) {
// console.log(err);
// }
// console.log('user added in both the databases');
// })
// newUser.on('es-indexed', (err, result) => {
// console.log('indexed to elastic search');
// });
User.search(
{query_string: {query: "abheshek"}},
function(err, results) {
if(err){
console.log('ERROR OCCURED');
} else {
console.log(results);
}
});
我认为这会有帮助:)
我认为这会有帮助:)
Place.search({
match: {
name: {
query: q,
fuzziness: "auto"
}
}
}, (err, results) => {
if (err) return next(err);
const data = results.hits.hits.map(hit => hit);
// return res.json(data);
return res.status(200).json({locations: data});
});