2012-11-23 65 views
0

我很喜歡在MySQL中執行全文搜索,但是我特別感興趣的單詞往往是簡短單詞或可能會出現的單詞在停止列表中。例如,我可能想要搜索以「它是」開頭的所有條目。MySQL文本索引w /不停止單詞或最小單詞長度

這是最好的方法是什麼?我是否應該手動刪除所有停用詞並將最小詞長度設置爲0?還是有另一種方法來做到這一點?

非常感謝。

回答

1

在my.ini的文本文件(MySQL的):

ft_stopword_file = "" or link an empty file "empty_stopwords.txt" 
ft_min_word_len = 2 

//設置您的最小長度,但要注意,較短的單字(3,2)將增加查詢時間大幅提升,特別是如果全文索引列字段很大。

保存該文件,重新啓動服務器。

下一步應該與此查詢來修復指標:

REPAIR TABLE tbl_name QUICK. 

但是,如果表使用InnoDB存儲引擎,這將無法正常工作。你將不得不改變它在MyISAM:

ALTER TABLE t1 ENGINE = MyISAM; 

因此,再次:

  1. 編輯my.ini文件並保存
  2. 重新啓動服務器(這不能動態地進行)
  3. 更改表引擎(如果需要)ALTER TABLE tbl_name ENGINE = MyISAM;
  4. 執行修理REPAIR TABLE tbl_name QUICK。

請注意,InnoDB和MyISAM有它們的速度差異。一個讀取速度更快,其他寫入更快(在互聯網上閱讀更多內容)