2012-10-29 99 views
0
SELECT firstname, lastname,comments 
FROMusers 
WHERE MATCH(firstname,lastname,comments) 
AGAINST('$searchterm') 

我嘗試了上面一個作爲查詢的搜索引擎,但MySQL的說,全文索引僅在MYISAM支持,引擎我使用的是InnoDB的,請告訴我最好的coloumn INDEX在InnoDB Engine上搜索的方式。搜索引擎使用PHP,InnoDB引擎的Mysql

+1

爲什麼使用InnoDB,如果它不能滿足您的需求? – lqs

+0

由於foriegn關鍵限制,我一直在使用InnoDB。 – Preetham

回答

1

根據我所知,MySQL的FTS自5.6版本(http://dev.mysql.com/tech-resources/articles/whats-new-in-mysql-5.6.html

你應該看看這裏的MySQL Fulltex搜索文檔http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html

基本上是可利用的InnoDB的,我想你應該明白什麼是'索引'以及MySQL如何編制索引。這篇文章是幫助瞭解MySQL的全文搜索背後的機制http://dev.mysql.com/doc/internals/en/full-text-search.html

有在全文檢索幾個重要的概念是非常有用的:

  1. Boolean mode
  2. Natural language mode
  3. 我也建議你閱讀MySQL FTS中的stopwords list
  4. 系統變量喜歡ft_min_word_len也很重要。

理解了這些之後,我想你會知道如何正確應用MySQL全文搜索。

+0

謝謝尤里卡! – Preetham