我目前在一个使用 ExpressJS、PostgreSQL 和 Sequelize 作为 ORM 的项目中工作。我开发了一个搜索功能,可以进行按名称搜索项目的查询:
models.foo.findAll({
where: {
$or: [
{name: {$ilike: keywords}},
{searchMatches: {$contains: [keywords]}}
]
},
order: [['name', 'ASC']]
})
Run Code Online (Sandbox Code Playgroud)
这工作正常,但如果名称包含特殊字符(如 á、é、í、ó 或 ú),此查询将找不到它。
有没有办法使查询搜索名称具有有意义的特殊字符?就像我搜索“土豆”这个名字一样,结果“土豆”、“大土豆”和“我们是土豆”会出现,但不会出现“我们吃土豆”(因为 á != o)