[英]How do I get this lightning fast search?
我剛來到這個網站: http : //www.hittaplagget.se 。 如果輸入以下搜索詞moo
,則自動彈出自動提示。
但是,如果您訪問我的網站http://storelocator.no ,並使用相同的搜索短語(在“搜索品牌”字段中),則自動建議的時間會更長。
我知道我們只能猜測他們使用的是哪種技術,但是希望這里的人能比我做得更好。
在我的解決方案中,我只執行SELECT moo% FROM table
並返回結果。 我還沒有索引我的表,因為它只有7000行。 但是我正在考慮使用Lucene為我的表建立索引。
誰能建議我需要做些什么才能獲得同樣快速的自動建議?
您必須在保存搜索詞的列上添加索引,即使是7000也是如此-否則,數據庫每次都會搜索整個列表。 參見http://dev.mysql.com/doc/refman/5.0/en/create-index.html 。
Lucene是全文搜索索引,可能不是您要找的內容。 Lucene會在整個索引列中找到任何出現的“ moo”(例如Mootastic和Fantasticmoo),盡管它比x類似於'%moo%'類型的搜索要快,但不一定能加快搜索速度。
正如其他人已經指出的那樣,如果要執行“開始於”類型的搜索,則需要使用常規索引(甚至可能是唯一索引)。
您將需要對表進行表掃描,因此我建議:
如果行很小,則對7000行表進行表掃描應該非常有效; 我從您的問題域了解到情況將會如此。
但正如其他人指出的那樣-不要在不需要時將7000行發送到客戶端。
常規索引可以將LIKE'someprefix%'優化為范圍掃描,因此擁有一個索引可能會有所幫助。 如果要在條目的任何部分中搜索字符串,則將使用表掃描(在如此小的表上這樣做應該不會太慢!)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.