我无法弄清楚为什么这不起作用。
这是我的查询有效:
SELECT
id,
title
FROM
`pages`
WHERE MATCH (title) AGAINST ('Visual*' IN BOOLEAN MODE)
ORDER BY title
LIMIT 10;
这是我的页面表:
id title
===============================
1 About Us
2 Visual Data
但是这个没有返回任何记录:
SELECT
id,
title
FROM
`pages`
WHERE MATCH (title) AGAINST ('About*' IN BOOLEAN MODE)
ORDER BY title
LIMIT 10;
这里是SQL小提琴:http://sqlfiddle.com/#!9/d264f2/2
答案 0 :(得分:1)
使用全文搜索时有几个重要概念 - documentation有更多详细信息。
一个关键概念是定义一个单词。这在这里并不重要,但是MySQL允许你指定分隔符。
另一个关键概念是只有一些单词被编入索引。单词未被索引的两个常见原因是:
停用词列表中的单词通常是"填充"单词 - 例如"","否则" ,. 。 。你可能会猜到"关于"。
您可以覆盖停用词列表。您需要提供另一个停用词列表(或根本不提供)。然后重建索引。