gpt4 book ai didi

具有特定词序的 MySQL 全文

转载 作者:行者123 更新时间:2023-11-29 02:35:12 29 4
gpt4 key购买 nike

我想知道是否可以进行 MATCH() AGAINST()(全文)搜索,使得不直接相邻的单词需要按特定顺序排列?在我的网站上,当用户在双引号之间键入单词时,搜索将仅显示具有特定顺序的这些单词的结果。例如,如果这是搜索词:

"pizza road"

它将返回“The best pizza down the road”,而不是“the road to the best pizza”。

我知道 BOOLEAN 模式将允许“短语”搜索,但这意味着单词需要彼此相邻(仅用空格、句号、逗号等分隔),这显然不会返回任何一个上面列出的结果:http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html

目前我正在使用正则表达式来执行此操作,但不用说,这是搜索 varchar 列(毫无意义的全文索引)的糟糕方法,即使它只有不到 200,000 行。所以我想知道是否可以仅使用 MATCH() AGAINST() 执行相同的搜索?或者我应该将它与正则表达式结合起来吗?还是有其他我没想到的方法?

我可以根据要求提供表格/代码示例。

提前致谢!

最佳答案

你有没有试过这样的事情:

SELECT * 
FROM `table`
WHERE MATCH(`first_column`)
AGAINST('+pizza +road' IN BOOLEAN MODE)
HAVING `first_column` LIKE '%pizza %road%'

关于具有特定词序的 MySQL 全文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6288753/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com