【发布时间】:2013-05-08 13:35:48
【问题描述】:
我完全被这个迷惑了。
我目前正在开发一个电子商务网站,并且有一张桌子上摆满了测试产品。此表中有一个名为“name”的字段,它是 TEXT 类型并具有 FULLTEXT 索引。
我插入了几百行虚拟数据,每一行都插入了“测试产品”(不带引号),因为它是“名称”字段中的值。
但是,运行以下命令会返回零个结果,即使单词“产品”当前位于每一行的名称字段中。
从产品中选择名称 WHERE MATCH (name) AGAINST ('product')
我检查了服务器变量,一切都设置为默认值。最小字符为 4,停用词是默认值等。据我所知,产品不是停用词。
如果有任何我可以提供的进一步信息可能有助于找到解决此问题的方法,请告诉我。
非常感谢。
【问题讨论】:
-
SELECT name FROM Products WHERE name LIKE '%product%'? -
我认为所有行共有的字符串被认为“太常见”,因此被忽略。
-
我使用 MATCH...AGAINST 的原因是我可以建立一个强大的搜索引擎,搜索每个产品的名称和描述,最终我可以通过最相关的来订购它们. LIKE 不会获得任何接近相同的结果,因为它不会根据匹配的接近程度对结果进行排序,它只是返回具有相同相关性的所有内容。不过感谢您的回复!
标签: mysql