2016-11-29 62 views
0

我有一个NodeJS应用程序使用mongoosastic api for Elasticsearch。现在我需要一种将条件(isDeleted == false)添加到指定查询(查询:req.query.q)的方法。如何给弹性搜索查询提供一些条件

这是我的代码

exports.search = function (req, res) { 
    if (!req.query.q) return res.status(400).send('No Query Provided') 
    log.error(req.query.q) 
    User.search({query_string: {query: req.query.q}}, (err, results) => { 
    if (err) return handleError(res, err) 
    var ret = _.map(results.hits.hits, result => ({ 
     userID: result._id, 
     _score: result._score, 
     name: result._source.name, 
     loc: result._source.loc, 
     info: result._source.info, 
     images: result._source.images 
    })) 
    return res.send(ret) 
    }) 
} 

我怎么能这样做?

回答

0

您可以使用过滤来过滤数据。检查您的插件网站的example。下面的例子也是你的答案。

var geoQuery = {query_string: {query: req.query.q}}; 

var myFilter = { 
    term: { 
    isDeleted: true 
    } 
}; 

User.search(geoQuery, {filter: myFilter}, function(err, res) { /* ... */ }) 
+0

对不起,但它没有帮助 –

+0

它为什么没有帮助? – hkulekci

+0

我是这么说的,但是当搜索已删除的用户时,它会查找并显示 –