全文搜索总是 returns 空结果集

Full Text Search always returns empty result set

我有一个名为 'fact' 的 table 标题列,应该是全文索引。

首先,我添加一个全文索引:

ALTER TABLE fact ADD FULLTEXT title_fts (title)

所以,我插入行:

INSERT INTO fact (id, title) VALUES ('1', 'red blue yellow ok green grey ten first wise form');

然后我执行搜索:

select * from fact f where contains (f.title, '"red" or "blue"')

当我执行以下查询或使用 'contains' 语句的任何其他查询时,我得到空结果集:

我不得不用这个语句,不是against-match之类的。 有没有人碰巧知道为什么会这样? 谢谢。

在使用全文搜索时有两个真正重要的概念。第一个是最小工作长度(参见 here)。默认情况下,该值为 4,这意味着比这短的单词将被忽略。再见"red"、"ok"、"ten"等短词

第二个重要概念是停用词列表(参见here)。这也将摆脱 "ok" 和 "first".

您的文本没有 "blue" 并且 "red" 被忽略,因此您的查询没有 return 任何内容。

在确定真正需要包含的词后,您需要重新构建索引。