2010-03-20 117 views
1

我想在MYSQL中使用匹配進行有效的全文搜索。特別是我需要使用二元運算符(例如,匹配一些文本,但不包含其他文本)。不過,我也需要高效的事務支持。
但全文搜索只支持MYISAM,而不是Innodb。該怎麼辦?mysql全文搜索

回答

1

假設你需要使用Innodb。

我建議使用外部搜索工具 - 獅身人面像或solr會得到我的投票。它們都比mysql全文搜索返回更好的結果,而且速度更快。我會說獅身人面像比較容易起來,特別是來自mysql。

如果你不能安裝它們中的任何一個,或者沒有時間,那麼你可以移動或複製myisam表中的必要字段,以便使用mysql的全文搜索。

+0

好的建議,但我不能移動或重複表/列,我需要在搜索後刪除匹配結果,最好在單個SQL語句中完成。 – user121196 2010-03-20 00:39:19

1

這是一個建議,而不是回答。

如果您要擁有一個大型數據庫或想要高級功能,請不要使用mysql的全文搜索。你可以使用獅身人面像或lucene。

SPhinx通常更快,更輕,但Lucene有更多的功能。我親自使用獅身人面像。

+0

使用Lucene,因爲Lucene是基於Java的。 – TIMEX 2010-03-20 00:47:32

+0

獅身人面像是PHP唯一的權利? – user121196 2010-03-20 00:47:42

+0

您可以在lucene或獅身人面像中使用任何語言。這是「設置它」的事實,lucene是基於java的。 – TIMEX 2010-03-20 00:49:03

0

你也可以嘗試Ferret它是一個紅寶石實現的apache搜索庫。根據速度測試,它也快得多。