我们正在使用v5.6中引入的InnoDB FTS功能,并且在构建搜索时遇到问题,无法有效地查找电子邮件地址。
不允许@符号(它会抛出错误)和'。'似乎把事情搞砸了。例如:
for:user@email.com
由于@符号而产生错误:
SELECT * FROM table WHERE MATCH (email) AGAINST ('+user@email.com*' IN BOOLEAN MODE)
因为句号而没有返回结果:
SELECT * FROM table WHERE MATCH (email) AGAINST ('+user* +email.com*' IN BOOLEAN MODE)
这会返回一个结果,但不是那么完整:
SELECT * FROM table WHERE MATCH (email) AGAINST ('+user* +email*' IN BOOLEAN MODE)
使用电子邮件地址作为搜索字词时,是否有人可以提供改进FTS搜索方法的见解和建议?