0

所以我对mysqls匹配有问题。

我需要做这样的事情:

SELECT somefield FROM my_table WHERE MATCH(somefield) AGAINST ('some 2 x 3');

“一些 2 x 3”是我正在寻找的东西。但问题是mysql搜索每个单词,所以它会搜索'some','2','x'和'3',因为我不能在我的mysql设置中更改ft_min_word_len,所以这不起作用并忽略任何东西少于 2 个字符。

所以我想做的是在查询中对“2 x 3”位进行分组。所以它可以像这样出来???

SELECT somefield FROM my_table WHERE MATCH(somefield) AGAINST ('some {2 x 3}');

这将搜索“一些”和“2 x 3”

如果有可能我该怎么做?

感谢您的帮助!

4

1 回答 1

2

似乎全文不是您请求的正确解决方案。MySQL 不会索引短语2 x 3,甚至不会索引单词some,因为它在停用词列表中。我建议您扩展查询 withOR somefield LIKE '%some 2 x 3%'子句来处理全文搜索不够的情况。

于 2012-06-08T10:48:33.757 回答