全文搜索始终返回空结果集

时间:2015-07-01 14:36:49

标签: mysql full-text-search full-text-indexing fulltext-index

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

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

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'语句的任何其他查询时,我得到了emtpy结果集:

我必须使用此声明,反对匹配或喜欢。 有没有人碰巧知道为什么会这样? 谢谢。

1 个答案:

答案 0 :(得分:2)

使用全文搜索时,有两个真正重要概念。第一个是最小工作长度(见here)。默认情况下,该值为4,表示忽略短于此的单词。再见" red"," ok"," ten"和其他简短的话。

第二个重要概念是停用词列表(参见here)。这也可以摆脱" ok"和"首先"。

您的文字没有"蓝色"和"红色"被忽略,因此您的查询不会返回任何内容。

在决定确实需要包含的单词后,您需要重新构建索引。