如何使用 Sail.js 和 MySQL 实现全文搜索?
Posted
技术标签:
【中文标题】如何使用 Sail.js 和 MySQL 实现全文搜索?【英文标题】:How to implement Full Text Search with Sail.js and MySQL? 【发布时间】:2014-08-10 03:00:19 【问题描述】:我认为 Waterline 目前不支持此功能。
那么我还需要安装哪些其他 npm 包才能让用户在应用中使用全文搜索?
我希望我的用户在单个输入中键入关键字,然后服务器从我指定的数据库的多个表中的多个列中返回过滤数据。
我的网络应用利用了 Angular.js、Sails.js 和 mysql。
【问题讨论】:
【参考方案1】:你的意思是“匹配”-语法?
Waterline 为您提供诸如 find()、findOne() 之类的函数……它们适用于您使用的任何数据库。
如果您想访问 Waterline 中未实现的语法(通常是因为并非所有数据库都支持它),您可以使用 query()
-function (postgresql/mysql) 或 native()
-function (mongodb):
Foomodel.query("SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('" + var +"')", function(err,result)
if(err)
return console.log(err);
else
console.log(result);
);
见:http://beta.sailsjs.org/#/documentation/reference/Models/Model-Methods/query.html
【讨论】:
您的回答在处理简单场景时非常鼓舞人心,尽管顺便应避免 SQL 注入。我想我需要比这更强大的东西,我提到我需要从多个表中获取查询结果,如果我使用纯 SQL,事情会很糟糕。那么,您是否尝试过将全文搜索引擎与 Sails.js 结合起来,例如:foragejs.net? 为了防止 SQL 注入,我建议遵循此文档github.com/balderdashy/waterline-docs/blob/master/queries/…以上是关于如何使用 Sail.js 和 MySQL 实现全文搜索?的主要内容,如果未能解决你的问题,请参考以下文章