所以我遇到了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}');
这将搜索“some”和“2 x 3”
如果可能的话,我怎么可能这样做?
感谢您的帮助!
答案 0 :(得分:2)
似乎全文不适合您的请求。 MySQL不会将短语2 x 3
编入索引,甚至也不会对单词some
编制索引,因为它位于停用词列表中。我建议您使用OR somefield LIKE '%some 2 x 3%'
子句扩展查询,以处理全文搜索不够的情况。