我想使用mysql的全文索引使用多个搜索词来搜索数据库:
SELECT description FROM `products` WHERE match(name, description) against('*ana* *apple*' IN BOOLEAN MODE)
我希望上面的查询返回以下记录,但它不起作用:
babana pie
applet
fried bananas
juicy apples
我的查询可以吗?
您可能会遇到全文的限制,即出现在超过一定百分比的记录中的单词将被视为“噪音”并被忽略。 “香蕉”和“苹果”都出现在 50% 的样本记录中,因此很可能不是很好的匹配。尝试在您的测试数据中添加一些其他水果并搜索更“稀有”的东西。
您将仅获得与苹果相关的记录,这是因为 MySQL FTS 不支持单词(例如:ana)和短语(例如:“apple ban”)之前的通配符。如果通配符为通配符,它将被忽略在单词之前给出,对于短语大小写错误将返回。