2012-10-29 57 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