資源描述:
《基于heritrix和sphinx的購物比較搜索引擎研究》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、基于Heritrix和Sphinx的購物比較搜索引擎研究 隨著網(wǎng)絡(luò)商品的極大豐富和分類的細(xì)化,搜索引擎已成為購物信息的重要來源。比較購物搜索引擎是一種基于專業(yè)化的垂直搜索引擎,通過對電子商務(wù)網(wǎng)站或者部分實(shí)體店的商品信息進(jìn)行采集和整理,向消費(fèi)者提供特定準(zhǔn)確的商品信息及相關(guān)輔助設(shè)施,減少信息不對稱,優(yōu)化購買決策;同時(shí),幫助商家降低推廣成本獲得針對性極高的目標(biāo)用戶,是未來網(wǎng)絡(luò)購物搜索的發(fā)展趨勢。然而,目前國內(nèi)的比較購物引擎普遍追求“大而全”,在細(xì)化用戶需求和購物體驗(yàn)上較為欠缺。商品信息比較偏重價(jià)格方面,對影響購物體驗(yàn)的其他因素,諸如商家信譽(yù)、折扣降價(jià)、用戶評價(jià)、退換條款等較少涉及。本文
2、提出采用Heritrix和Sphinx技術(shù)搭建購物搜索引擎,將國內(nèi)大型B2C網(wǎng)站作為爬取信息來源,運(yùn)用聚焦爬蟲技術(shù)將目標(biāo)定為抓取與用戶某一特定體驗(yàn)主題內(nèi)容相關(guān)的網(wǎng)頁,以期更好的細(xì)分消費(fèi)者人群,有針對性地滿足用戶體驗(yàn)?! ∫?、Heritrix和Sphinx技術(shù)特點(diǎn) Heritrix工作原理 Heritrix是一款基于java語言開發(fā)的開源網(wǎng)絡(luò)爬蟲,用于對網(wǎng)上的資源進(jìn)行歸檔,建立網(wǎng)絡(luò)數(shù)字圖書館,目前已經(jīng)建立了400TB的數(shù)據(jù)。 Heritrix爬蟲每次只對一張網(wǎng)頁的內(nèi)容深度復(fù)制,包括獲取圖像以及其它非文本內(nèi)容,抓取并存儲相關(guān)的內(nèi)容。具體篩爬過程中,爬蟲先從隊(duì)列中取出下一個(gè)URL,
3、通過HTTP協(xié)議將對應(yīng)的網(wǎng)頁爬取下來,然后解析內(nèi)容,并且提取出包含的URL,將其中新發(fā)現(xiàn)的URL追加到隊(duì)列中。最后將網(wǎng)頁存放到本地磁盤的網(wǎng)頁庫中。爬取過程在積累到一定數(shù)量網(wǎng)頁時(shí)即可終止,或者在隊(duì)列為空的時(shí)候終止。 工作原理 Sphinx是一個(gè)基于SQL的全文檢索引擎,本系統(tǒng)所采用的是基于Sphinx研發(fā)并獨(dú)立發(fā)布的Coreseek,是一款專攻中文搜索和信息處理的中文全文檢索/搜索軟件,它適用于行業(yè)/垂直搜索、論壇/站內(nèi)搜索、數(shù)據(jù)庫搜索聯(lián)盟、文檔/文獻(xiàn)檢索、信息檢索、數(shù)據(jù)挖掘等應(yīng)用場景。Sphinx整個(gè)系統(tǒng)主要由索引建立和維護(hù)程序、查詢服務(wù)程序、輔助工具程序三大部分組成?! 《?、
4、比較購物搜索引擎系統(tǒng)構(gòu)建 系統(tǒng)架構(gòu) 系統(tǒng)整體架構(gòu)由四部分組成:1)由Heritrix擴(kuò)展而來的爬蟲系統(tǒng),負(fù)責(zé)從互聯(lián)網(wǎng)抓取商品相關(guān)的信息。2)MySQL數(shù)據(jù)庫,存儲由Heritrix抓取的數(shù)據(jù)。3)Sphinx全文索引服務(wù)器,負(fù)責(zé)對商品建立全文索引。4)Tomcat服務(wù)器,負(fù)責(zé)向客戶端提供搜索服務(wù)。具體系統(tǒng)整體架構(gòu)圖如圖1?! ≡诔跏蓟A段,Heritrix任務(wù)需事先通過配置和測試,確認(rèn)后可由Linux系統(tǒng)通過Cron來自動調(diào)度。根據(jù)用戶輸入的商品信息,網(wǎng)絡(luò)爬蟲的每個(gè)抓取任務(wù)只負(fù)責(zé)單個(gè)購物網(wǎng)站數(shù)據(jù)的抓取,但每個(gè)任務(wù)的線程數(shù)量可由實(shí)際情況進(jìn)行調(diào)整。篩爬啟動和結(jié)束時(shí)間通過Bash腳本
5、來監(jiān)控,每隔一定的時(shí)間去檢測相應(yīng)的進(jìn)程是否已經(jīng)結(jié)束,如果某個(gè)抓取任務(wù)結(jié)束,則設(shè)定好下一次啟動的時(shí)間間隔。在本文構(gòu)建的模型中采用MySQL數(shù)據(jù)庫存儲篩爬的信息,但直接從MySQL數(shù)據(jù)庫生成全文索引讀取比較費(fèi)時(shí),因此采用基于SQL的全文檢索引擎Sphinx結(jié)合MySQL,以“主索引+增量索引”的模式,大部分的搜索都集中在Sphinx全文索引中,少量數(shù)據(jù)可能需要直接訪問MySQL數(shù)據(jù)庫,這樣可以使應(yīng)用程序更容易實(shí)現(xiàn)專業(yè)化的全文檢索。具體運(yùn)行過程中通過Cron設(shè)定計(jì)劃任務(wù),每隔一定的時(shí)間,Sphinx會從MySQL數(shù)據(jù)庫生成增量索引,然后執(zhí)行主索引和增量索引的合并,并且在后臺操作過程中,一
6、直可以向客戶提供搜索服務(wù)。 數(shù)據(jù)存儲模型的建立 目前各種購物平臺和測評網(wǎng)站給出的商品信息異常復(fù)雜,每個(gè)網(wǎng)站的頁面都有自身特定的格式,相同商品在不同網(wǎng)站上也不盡相同,尤其是不同類型的商品在屬性上差異極大,因此,需要建立統(tǒng)一的數(shù)據(jù)模型存儲數(shù)據(jù),也即通過多張表能夠描述各種類型商品的基本屬性,而不需要針對每種商品建立不同的存儲表。本設(shè)計(jì)中構(gòu)建了商品表、商品別名表、品牌表、信息采集表、信息采集元數(shù)據(jù)表、商品路徑表、網(wǎng)站表、店鋪表和商品類別表等一系列數(shù)據(jù)模型。以商品信息表為例,如表2-1所示?! ”?-1商品表 字段名定義類型特性說明 idbigintunsigned自增、主鍵商品id
7、 namevarchar非空、全文索引商品的名字 brand_idbigintunsigned外鍵品牌id instance_idvarchar非空ISBN,ISRC,型號等 is_uniquebool非空是否唯一 datetimedatetime非空創(chuàng)建時(shí)間 instance_id可以是型號、貨號、ISBN、ISRC等用來區(qū)分商品的編號。大部分商品都會有型號,因此只要有相同品牌且型號相同,就可以肯定是同一種商品。brand_id指向brand,指品牌如T