MySQL全文搜索与分隔符

时间:2011-09-06 09:32:14

标签: mysql sql database full-text-search

我有一个带有'tags'字段的MySQL表,它使用的是FULLTEXT索引。该字段包含逗号分隔值列表,即“书籍,玩具,巧克力色沙发”。

SELECT * FROM Store WHERE MATCH(Store.tags) AGAINST ('"chocolate"' IN BOOLEAN MODE);

(上面)示例查询匹配包含'巧克力色沙发'的记录。我只想检索分隔符中包含“巧克力”的记录(在本例中为逗号)。换句话说,我希望示例记录会使匹配失败。

我查看了包括MySQL Fine-Tuning MySQL Full-Text Search在内的MySQL手册,但我看不出有什么方法可以实现。

任何指针都会受到赞赏。

2 个答案:

答案 0 :(得分:0)

您必须规范化表格,因此每个标记都会保存在自己的行中。

否则,您必须修补并重建MySQL以将空格字符添加到单词字符集中。您提供的链接包含所有说明。

答案 1 :(得分:0)

如果最后一个标签有逗号,您可以搜索添加逗号:

SELECT * FROM Store WHERE MATCH(Store.tags) AGAINST ('"chocolate,"' IN BOOLEAN MODE);

但要注意少于4个字符的标签,它不匹配......好吧,你可以在my.ini中配置它

[mysqld]
ft_min_word_len=3