2017-10-13 82 views
0

我無法弄清楚爲什麼這不起作用。MySql匹配()在布爾模式

這裏是我的查詢它的工作原理:

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

回答

1

使用全文搜索時有幾個重要概念 - 而documentation有更多詳細信息。

一個關鍵概念是什麼定義一個詞。這在這裏並不重要,但MySQL允許您指定分隔符。

另一個關鍵概念是隻有一些單詞被索引。兩個常見的原因爲什麼字不索引︰

  • 他們太短(或我想太長,但這是不尋常的)。
  • 它們在停用詞列表中。

停用詞表中的單詞通常是「填充」單詞 - 如「the」,「otherwise」,「。 。 。你可能會猜測「關於」。

您可以覆蓋停用詞列表。您需要提供另一個停用詞表(或根本沒有)。然後重建索引。