mysql全文搜索带空格的布尔模式

时间:2016-04-05 21:50:12

标签: mysql sql search full-text-search

我选择全文搜索

SELECT * FROM datatable WHERE MATCH(field1, field2, field3, field4) 
AGAINST('C 100 330 00 75*' IN BOOLEAN MODE)

C100 330 00 75 in field2,in field1相同的数据,但没有空格 C1003300075,在field3数据中,如“我们在这里”,或“delta star”。

为field2的所有字段选择工作 - (C 100 330 00 75)。 那有什么不对?如果我在搜索之前删除空格,它将影响另一列。我需要搜索,因为用户将输入空格而不是空格。

有什么建议吗? 感谢

2 个答案:

答案 0 :(得分:1)

有两个直接的错误。默认情况下:

  • MySQL忽略短于三个字符的单词。
  • MySQL将数字视为单词。

您可以查看有关微调MySQL全文搜索的documentation。调整后,您需要重建索引以存储您想要的内容。

答案 1 :(得分:1)

Boolean Full-Text Searches 无操作符之前,单词表示:
默认情况下(当既未指定+也未指定时),该单词是可选的,但包含它的行的等级更高。这模仿了没有IN BOOLEAN MODE修饰符的MATCH()... AGAINST()的行为。