在搜索查询中出现匹配问题

时间:2014-08-18 20:25:48

标签: php mysql match fulltext-index

我有一个网站列出产品的情况。

我正在使用带有匹配搜索的全文索引

有一个名为“itemcode”的字段,该字段为varchar类型

例如,其中一个代码就像

一样
  

“WTC-153-U”

当我在文本框中键入“WTC-153”时,我没有得到任何结果,我想这是基于连字符和数字,是否有任何解决方法或更好的方法?

我似乎无法在不修改那么多代码的情况下找到解决方案

查询就像这样

SELECT field FROM table WHERE MATCH(itemcode) AGAINST ('WTC-153')

由于

1 个答案:

答案 0 :(得分:0)

-计为单词分隔符,因此'WTC-153-U'计为三个单词'WTC''153''U'

使用MyISAM时,全文搜索的默认下限字长限制为4个字符,InnoDB为3(可以更改)。

如果您使用的是InnoDB,则可以通过在文本中搜索'WTC''153'来解决此问题。显然,即使这些单词不在一起,也会返回结果或按照正确的顺序。

否则您可以使用LIKE '%WTC-153%'进行搜索,但无法使用该索引。 LIKE 'WTC-153%'将能够使用索引,但只有在字段以'WTC-153'开头时才会返回该行。