具有特定字顺序的MySQL全文教程
我想知道是否有可能以一种方式进行MATCH()AGAINST()(全文)搜索,这些搜索不是直接相邻的,需要按特定顺序排列?在我的网站上,当用户在双引号之间键入单词时,搜索将仅显示具有该特定顺序的单词的结果.例如,如果这是搜索词:
"pizza road"
它会回归’最好的披萨’,但不是’通往最佳披萨的道路’.
我知道BOOLEAN模式将允许“短语”搜索,但这意味着单词需要彼此相邻(仅用空格,句号,逗号等分隔),这显然不会返回列出的任何结果上图:http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html
目前我正在使用regexp来执行此操作,但不用说这是搜索varchar列(无意义全文索引)的一种不好的方法,即使它只是不到200,000行.所以我想知道的是,是否可以使用MATCH()AGAINST()执行相同的搜索?或者我应该将它与正则表达式结合起来?还是有其他方法我没有想过?
我可以根据要求提供表格/代码样本.
提前致谢!
解决方法:
你尝试过类似的东西:
SELECT *
FROM `table`
WHERE MATCH(`first_column`)
AGAINST('+pizza +road' IN BOOLEAN MODE)
HAVING `first_column` LIKE '%pizza %road%'