【发布时间】:2017-03-19 14:34:06
【问题描述】:
我正在尝试改进我网站上的搜索,这就是它目前的样子(我使用 NodeJS、Sequelize 和 PostgreSQL):
db.food.findAll({
where: {
nameFood: {
$iLike: '%' + queryName + '%'
}
}
}).then(function (foods) {
foods.sort(compareFood);
res.json(foods);
}, function (e) {
res.status(500).send();
});
我认为这是不言自明的,但如果有不清楚的地方,请在 cmets 上问我。
现在,此搜索算法考虑了 WHOLE 参数,因此搜索“chicken eggs”将不会返回任何内容,因为在我的数据库中它们被保存为“eggs”。
我的快速改进想法是拆分查询以查找空格,然后查询每个关键字,例如:
var keywords = queryName.split(' ');
有了关键字,现在我如何查询可变次数并将结果加入数组中,以便像食品中的那样返回?
我检查了这里的文档和一些问题,但找不到任何东西,感谢任何帮助,非常感谢。
【问题讨论】:
标签: node.js database search sequelize.js querying