我对此感到困惑。
我目前正在开发一个电子商务网站,并拥有一个充满测试产品的表格。在此表中有一个名为“name”的字段,其类型为TEXT并具有FULLTEXT索引。
我插入了几百行虚拟数据,每一行都插入了“测试产品”(没有引号),因为它在“名称”字段中的值。
但是,运行以下命令会返回零结果,即使“product”一词当前位于每行的名称字段中。
SELECT name FROM Products 在哪里(名称)反对('产品')
我检查了服务器变量,一切都设置为默认值。最小字符是4,停用词是默认字符等。据我所知,产品不是停用词。
如果我可以提供任何可能有助于找到此问题解决方案的更多信息,请与我们联系。
非常感谢提前。
答案 0 :(得分:5)
从MySQL documentation on Fulltext searches开始,您的搜索查询被视为触发停用词,因为相关字符串存在于所有行中。
的链接当您第一次尝试时,50%的阈值具有重要意义 全文搜索,看看它是如何工作的:如果你创建一个表和 只插入一行或两行文本,文本中的每个单词 发生在至少50%的行中。因此,任何搜索都不会返回 结果。一定要插入至少三行,最好是多行 更多。需要绕过50%限制的用户可以使用布尔值 搜索模式