2012-11-20 50 views
0

我正在使用針對30-40條記錄數據庫的全文搜索。它的80%在一張桌子裏。因爲全名可以以多種方式存儲在「bill gates」,「gates,bill」,「bill和Melinda gates」等中,所以我在名字和姓氏上進行搜索。我們也有一個暱稱數據庫,所以它將搜索'賬單','將','william'等。根本沒有時間找到暱稱,但是一旦我實現查詢以包括它現在需要更長時間的暱稱。mysql全文搜索第一個/最後一個暱稱搜索速度很慢

SELECT * FROM db1 
WHERE MATCH (Name) AGAINST (' +bill +gates 'IN BOOLEAN MODE) UNION ALL 
... (then the other 8 dbs the same) limit 500 

相比:

SELECT * FROM db1 
WHERE MATCH (Name) AGAINST (' +("bill" "will" "william") +gates 'IN BOOLEAN MODE) UNION ALL 
... (then the other 8 dbs the same) limit 500 

有沒有一種方法,以加快這件事?搜索時間爲40秒以上,相比之下3-5秒。比爾蓋茨這樣的名字很容易達到500分的標準似乎要花費更長的時間,儘管它有更多的機會擊中。

回答

0

使用搜索引擎而不是MySql它會節省您的時間。 看看Solr或獅身人面像。

獅身人面像有一個mysql插件。