PHP構(gòu)建自定義搜索引擎的方法
雖然 Google 及其系列產(chǎn)品幾乎無所不能,但是 Web 形式的強大搜索引擎并不能很好地適用于每個站點。如果站點內(nèi)容已被高度專業(yè)化或已明確分類,那就需要使用 Sphinx 和 PHP 來創(chuàng)建一個優(yōu)化的本地搜索系統(tǒng)。以下是小編為大家搜索整理的PHP構(gòu)建自定義搜索引擎的方法,希望能給大家?guī)韼椭,更多精彩?nèi)容請及時關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
在 Internet 時代,人們希望信息能夠像快餐一樣被打包起來:能夠快速無障礙使用,并且分為很小的單位(或者是以字節(jié) 大小為單位?)。實際上,為了滿足急躁而又渴求信息的用戶的需求,甚至最普通的 Web 站點現(xiàn)在都要求具有快速瀏覽樣式的各種菜單:
·RSS 是比薩快遞員,會把新鮮出爐的比薩送上門。
·網(wǎng)絡(luò)日志是當(dāng)?shù)氐闹胁宛^,為您獻(xiàn)上喜愛的風(fēng)味菜肴。
·論壇是家常便飯(或者可能更恰當(dāng)?shù)卣f,“動物屋” 中搶奪食物的場景)。
·而搜索就像在當(dāng)?shù)氐牟蛷d吃自助晚餐一樣:不斷將想吃的食物填滿盤子就行,只要您的食道 —— 還有您的椅子 —— 撐得住。
幸運的是,PHP 開發(fā)人員可以找到各種 RSS、blog 和論壇軟件來創(chuàng)建或者改進(jìn)站點。而且,雖然 Google 和其他搜索站點幾乎無所不能并且執(zhí)行過濾通信,但是搜索引擎并不一定會良好地適應(yīng)各個站點。
例如,如果 Web 站點提供成百上千的全新和翻新的保時捷汽車零件,Google 可能通過諸如 “Carrera parts” 之類的廣義搜索找到您的站點,但是對于更具體的 “used 1991 Porsche 911 Targa headlight bezel” 查詢,它可能不會得到精確結(jié)果。
如果站點內(nèi)容高度專業(yè)化,或者訪問者期望搜索功能與現(xiàn)實工作流類似,那么最好在 Web 的.全局搜索引擎基礎(chǔ)上增加一個為您的站點量身定做的本地搜索系統(tǒng)(有關(guān)專業(yè)化搜索的更多實例,請參閱 “A needle in a billion haystacks”)。
通過本文了解如何向 PHP 站點中添加一個快速、高效、開源和免費的搜索引擎。本文沒有開發(fā)可見的 Web 站點。相反,重點討論交付有效搜索結(jié)果所需的組件:數(shù)據(jù)庫、索引、搜索引擎和 PHP 應(yīng)用程序編程接口 (API)。
訪問優(yōu)秀的 sphinx
要為站點提供自定義搜索功能,您必須有數(shù)據(jù)源和搜索該數(shù)據(jù)源的功能。對于 Web 應(yīng)用程序,數(shù)據(jù)源通常是一個關(guān)系數(shù)據(jù)庫,其中內(nèi)置了一些搜索功能(Equality 是一個簡單的搜索運算符,與 SQL 運算符 LIKE 一樣)。但是,一些搜索可能比數(shù)據(jù)庫可以執(zhí)行的搜索更加具體,或者搜索可能過于復(fù)雜,而導(dǎo)致固有的 SQL JOIN 反應(yīng)遲鈍。
海底撈針
許多站點提供特定于某一個行業(yè)、職業(yè)或者娛樂的內(nèi)容,例如醫(yī)藥、法律、音樂和汽車維修。深入研究這些內(nèi)容可能要求使用特殊工具或者培訓(xùn),或者僅需要使用一個索引來生成相關(guān)的實用結(jié)果。
下面是一些需要定制搜索系統(tǒng)的常見搜索場景:
·查找 Joe Hockey 所撰寫的關(guān)于斯坦利杯 (Stanley Cup) 的所有文章。
·查找 HP LaserJet 3015 All-in-One 打印機的最新驅(qū)動程序。
·查找 Dinosaur Jr. 參與大衛(wèi)深夜脫口秀節(jié)目的電視片段。
要加速搜索,您可以重新安排表,并由此簡化底層查詢(表和 SQL 查詢優(yōu)化高度依賴于模式和引擎。可通過在線搜索查找有關(guān)數(shù)據(jù)庫性能的各種文章和書籍)。此外,您可以添加一個專門化的搜索引擎。應(yīng)用哪種形式的搜索引擎還依賴于數(shù)據(jù)的形式(和數(shù)量)和預(yù)算。有許多選擇可用:您可以將一個 Google 工具連接到您的網(wǎng)絡(luò)中,購買 Endeca 或其他大型商業(yè)搜索產(chǎn)品,或者嘗試 Lucene。但是在很多情況下,使用商業(yè)產(chǎn)品都有點小題大做,或者浪費運營預(yù)算,并且 Lucene 在 2007 年 7 月編寫時并未提供 PHP API。
作為一個備選方案,考慮一下 Sphinx,它是一種開源和免費的搜索引擎,可以非常快速地搜索文本。例如,在一個幾乎有 300,000 行及五個索引列
【PHP構(gòu)建自定義搜索引擎的方法】相關(guān)文章: