我在VARCHAR
列上有一个FULLTEXT
索引。我在此专栏中搜索内容如下:
SELECT ID, NAME
FROM people
WHERE MATCH(people.NAME) AGAINST (? IN BOOLEAN MODE);
例如,我会将这个值绑定到我的参数:+firstname* +lastname*
- 在大多数情况下,这将返回预期的结果。但是,在我不明白的边缘情况下,这不匹配。举个例子:
列中的名称为 Liliana De Lima
。如果我绑定此值:+liliana*
它将找到该行。如果我绑定这个值:+liliana* +d*
它没有。为什么?
通常,我将多个单词与上述逻辑绑定没有问题。例如,绑定值+peter* +p*
将返回名称 Peter Prip
的结果。
我相信
"De"太短,所以+d*不会匹配它。也许看看修改ft_min_word_len参数。