首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于mongoosastic的全文检索中的模糊检索

基于mongoosastic的全文检索中的模糊检索
EN

Stack Overflow用户
提问于 2020-01-20 16:15:37
回答 1查看 313关注 0票数 0

我一直在做一个网站,它有一个搜索功能,可以将查询与MongoDB中的各种文章进行匹配。目前,mongoDB不支持模糊搜索,而这正是我想要的搜索功能。为此,我发现Elasticsearch在处理这类问题时效果最好。为此,我在node.js上使用了mongoosastic客户端。我可以保存数据项并搜索查询,但它不能搜索其中是否存在任何拼写错误。我如何定制查询,以帮助查找文本,即使有一些打字错误或单词丢失。

代码语言:javascript
复制
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);
    }
});
EN

回答 1

Stack Overflow用户

发布于 2020-10-05 19:51:56

我认为这会有所帮助:)

代码语言:javascript
复制
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});
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59819223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档