李博
摘要:本論文設(shè)計(jì)了一個(gè)提供附近商店的搜素、商店內(nèi)商品的搜素與商品的訂閱追蹤的系統(tǒng)。使用該系統(tǒng)用戶也能增加自己的實(shí)體商店與商店內(nèi)商品的信息到系統(tǒng)中。使用該系統(tǒng)能很好的把線上流量和線下消費(fèi)資源相結(jié)合。
關(guān)鍵詞:LBS;電子商務(wù);搜索引擎
引言
如何在眾多LBS服務(wù)上使使用者找到想要的信息成為L(zhǎng)BS搜索引擎的重大挑戰(zhàn)之一。使用者需要更準(zhǔn)確的搜索結(jié)果,一般搜索引擎已經(jīng)不能滿足使用者的需求,此時(shí),針對(duì)特定領(lǐng)域優(yōu)化,以提供特定搜索結(jié)果的垂直搜索引擎,就慢慢發(fā)展起來(lái)。
目前的在LBS服務(wù),使用者能方便尋找附近的商店,但是要從各個(gè)商店中找到需要的商品與價(jià)錢的比較,就非常地耗時(shí)與不容易,使用者如何在LBS中快速而且正確地找到自己需要的商品以及能隨時(shí)得到關(guān)注的商品的最新信息就成為了一個(gè)重要的議題。
通過(guò)本系統(tǒng)的設(shè)計(jì),能夠讓使用者迅速找到合適的商品,并且提供各個(gè)商店的商品追蹤。在商品的搜索引擎中,我們先對(duì)商店提供的大量商品資料,依照定義的類別做預(yù)先處理與分類。在多樣的商品中,最后呈現(xiàn)給使用者的是吻合搜索條件商品的地理信息且經(jīng)過(guò)分群的搜索結(jié)果。
1、背景知識(shí)
1.1 搜索引擎
搜索引擎的主要設(shè)計(jì)大致可分為:Crawler、Preprocessingand Mining、 Index和Userlnterface。
1) Crawler:網(wǎng)絡(luò)頁(yè)面資料的搜集是通過(guò)Crawler的自動(dòng)化程序來(lái)抓取,也被稱為網(wǎng)頁(yè)Robot。一開(kāi)始設(shè)定起始的網(wǎng)址,crawler會(huì)去抓這些網(wǎng)頁(yè)存放到后端,并從已抓取的網(wǎng)頁(yè)中取出需要的其他網(wǎng)頁(yè)連結(jié),再根據(jù)這些網(wǎng)頁(yè)連結(jié)抓取其他的網(wǎng)頁(yè),這樣就能大量搜集網(wǎng)絡(luò)上的網(wǎng)頁(yè)資料。
2) Processing ond Mining:網(wǎng)頁(yè)資料搜集完后,對(duì)資料進(jìn)行分析,找出需要的部分,并對(duì)這些資料依種類去做不同處理。
3) Index:處理抓取完的網(wǎng)頁(yè)后,會(huì)對(duì)這些資料產(chǎn)生index,加快網(wǎng)頁(yè)資料內(nèi)容查詢的速度。在網(wǎng)頁(yè)資料量不大時(shí),能夠采取簡(jiǎn)單的sequential搜索,但是當(dāng)資料量變大時(shí),會(huì)在資料上建立額外的資料結(jié)構(gòu)以加快搜索,這些就稱為index,index就像一個(gè)查詢表,給定一個(gè)關(guān)鍵字就能通過(guò)index得知所有出現(xiàn)關(guān)鍵字的網(wǎng)頁(yè)與位置。
4) Userlnterfoce:前端的使用者界面負(fù)責(zé)對(duì)使用者下的搜索字符串做處理,并且呼叫內(nèi)部搜索程序通過(guò)index來(lái)找尋符合的資料,然后將查詢到的資料,產(chǎn)生搜索結(jié)果頁(yè)面顯示。
1.2 Google Map JavaScript API
Google Maps JovoScript API可以讓Google Map嵌入至網(wǎng)頁(yè)中,在v3版本中的API能夠提供每日25000次地圖的載人,如果超過(guò)限制連續(xù)90天才會(huì)受到限制,但是非營(yíng)利組織通過(guò)申請(qǐng)Google Earth Outsearch授權(quán)后可以不受使用限制的約束。
API除了提供地圖顯示的服務(wù)之外,還有導(dǎo)航、距離矩陣、海拔高度、地理編碼、街景等服務(wù)。
1.3 Google place API
用于在給定的范圍找到詳細(xì)的地方信息,與Google MAP和Google+ Locol使用相同Dotobase。提供Place Seorch、Plo ce Detail、Place Photo等服務(wù)。
2、系統(tǒng)簡(jiǎn)介
2.1 系統(tǒng)架構(gòu)
本系統(tǒng)架構(gòu)主要是依循LAMP架構(gòu),分成以下幾個(gè)部分:
1) Google API:負(fù)責(zé)提供地理位置編碼處理與部分商店資料。
2)Web User Interfo ce:負(fù)責(zé)前端的界面顯示。
3) Subscription System:負(fù)責(zé)商品訂閱與管理。
4) MySQL:負(fù)責(zé)商店資料、商品資料、用戶資料和Index的存儲(chǔ)與查詢。
5) SearchEngine:負(fù)責(zé)收集商店資料、處理商店資料和建立Index索引。
2.2商店搜索引擎
商店搜索引擎在設(shè)計(jì)上大致可分為三個(gè)部分:第一部分是商店資料的搜集;第二部分是商店資料的解析與擷取;第三部分是建立Index索引與搜索。以下說(shuō)明各部分之間的關(guān)系與功能。
(1)商店資料的收集
搜索引擎最重要的第一步就是資料的搜集,對(duì)于商店搜索引擎來(lái)說(shuō),不需要目標(biāo)網(wǎng)站上所有的網(wǎng)頁(yè),只需要特定含有商店資料的網(wǎng)頁(yè),所以為了要提高搜集資料的準(zhǔn)確性會(huì)按照人工指定的起始網(wǎng)址開(kāi)始搜集,再?gòu)闹袑ふ移渌纳痰曩Y料網(wǎng)址,這樣也方便定期去更新搜集目標(biāo)網(wǎng)站的商店資料網(wǎng)頁(yè)。
(2)商店資料的解析與提取
搜集到商店資料的網(wǎng)頁(yè)后,因?yàn)榫W(wǎng)頁(yè)中有許多的廣告,鏈接與評(píng)論,這些都是不需要的資料,所以會(huì)對(duì)網(wǎng)頁(yè)進(jìn)行解析后提取需要的商店資料。解析出來(lái)的商店資料由于需要地理坐標(biāo)編碼,所以還需要通過(guò)Google Map API詢問(wèn)。
商店資料的來(lái)源除了通過(guò)Crawler在網(wǎng)絡(luò)上搜集之外,也可以使用Web User Interface中的商店注冊(cè)服務(wù)來(lái)增加商店。使用者需要在注冊(cè)網(wǎng)頁(yè)輸入賬號(hào)、密碼、電子郵件、商店名稱、商店地址、商店電話、商店分類、商店照片和商店敘述進(jìn)行注冊(cè)。
商店地址在輸入后會(huì)顯示在Google地圖上,使用者可以通過(guò)地圖旁邊的經(jīng)緯度欄來(lái)調(diào)整以后出現(xiàn)在Google地圖上的確切位置,而商店照片上傳后會(huì)通過(guò)GraphicMagick進(jìn)行處理壓縮。
成功注冊(cè)后在Server端建立商店個(gè)人文件夾,與商店有關(guān)的資料都會(huì)存放在此,包含商店照片、商品照片、商品文件夾等資料。
(3)建立Index索引與搜索
解析完商店資料網(wǎng)頁(yè)后所得到資料與網(wǎng)址連結(jié)Index會(huì)儲(chǔ)存在MySQL中。解析網(wǎng)頁(yè)提取出商店資料后會(huì)建立Index。在這里Index是用來(lái)確保Crawler搜集的商店不會(huì)重復(fù)。
2.3 商品搜索
商品搜索是要提供使用者搜索附近哪間商店有銷售使用者輸入的關(guān)鍵字的商品。
(1)商品資料來(lái)源
由于是實(shí)體商店上的商品,必須依靠商店管理者自行上傳商品。商店使用者需要先登入網(wǎng)站后,才能在商品上架網(wǎng)頁(yè)輸入商品產(chǎn)地、商品價(jià)錢、廠商、商品名稱、商品產(chǎn)地、服務(wù)電話、商品分類、商品照片和商品敘述進(jìn)行上架。
商品照片會(huì)通過(guò)Plupload上傳后,再通過(guò)GrophicMagick進(jìn)行處理壓縮,而成功上架后會(huì)在Server端的商店個(gè)人文件夾中建立商品文件夾,與商品有關(guān)的資料都會(huì)存放在此,包含商品照片、商品訂閱清單等資料,并且會(huì)在MySQL中建立商店個(gè)人商品表。
(2)商品搜索流程
使用者進(jìn)行商品查詢時(shí),會(huì)先透過(guò)Google Map API將欲搜尋的商品所在地址轉(zhuǎn)成地理坐標(biāo)編碼,再跟搜尋商品關(guān)鍵字、商品分類、排序條件一起傳到后端后,透過(guò)MySQL先把符合條件的附近商店資料取出,再?gòu)闹姓业矫總€(gè)商店內(nèi)符合的商品資料。
將最后搜尋結(jié)果以JSON格式回傳給使用者端。另外,還會(huì)把搜尋時(shí)用的地理坐標(biāo)編碼儲(chǔ)存起來(lái),讓Google Crowler之后能夠進(jìn)行更多商店的搜集。
當(dāng)使用者端接到JSON格式的搜索結(jié)果后,會(huì)將結(jié)果解析,把商店位置標(biāo)記在Google地圖上,并且對(duì)這些標(biāo)記綁上點(diǎn)擊事件與顯示窗口。當(dāng)點(diǎn)擊Google地圖中的標(biāo)記后,會(huì)跳出一個(gè)信息窗口,窗口中會(huì)顯示商店簡(jiǎn)介與搜索此商店內(nèi)中所有商品的網(wǎng)頁(yè)連結(jié)。
除此之外,會(huì)在地圖外面插入一個(gè)結(jié)果頁(yè)面,將搜索結(jié)果顯示出來(lái),如同標(biāo)記一樣會(huì)綁上點(diǎn)擊事件,當(dāng)選擇的商店結(jié)果被點(diǎn)擊后會(huì)把標(biāo)記在Google地圖上的信息窗口調(diào)出,并且會(huì)在商店結(jié)果頁(yè)面上再插入一個(gè)此商店內(nèi)商品結(jié)果頁(yè)面,將符合關(guān)鍵字的商品按照排序條件列出,同樣也對(duì)這些商品結(jié)果綁上點(diǎn)擊事件,當(dāng)選擇的商品結(jié)果被點(diǎn)擊后會(huì)再插入一個(gè)此商品的簡(jiǎn)介頁(yè)面。(如圖1所示)
2.4 商品訂閱與管理
提供使用者對(duì)有興趣的商品進(jìn)行訂閱追蹤,當(dāng)商店管理者對(duì)商品資料進(jìn)行改變后,可以主動(dòng)通知使用者,讓使用者隨時(shí)能得知最新的商品信息。
(1)訂閱流程
一般使用者注冊(cè)后即可以使用訂閱服務(wù),在登入后查看商品搜索結(jié)果的頁(yè)面時(shí),每樣商品就都會(huì)附一個(gè)訂閱按鈕,按下訂閱按鈕后,會(huì)將要求送到后端,后端會(huì)先檢查商品專屬的訂閱清單,如果存在的話,會(huì)從中查詢此使用者有無(wú)在該訂閱清單中,有的話就取消要求,沒(méi)有的話會(huì)新增使用者到該訂閱清單中,并且接著檢查使用者有無(wú)使用過(guò)訂閱服務(wù)。如果商品專屬的訂閱清單不存在的話,會(huì)建立商品訂閱清單到server端,再接著檢查使用者有無(wú)使用過(guò)訂閱服務(wù)。使用者第一次使用訂閱服務(wù)的話,會(huì)在server端建立個(gè)人訂閱清單與提供該商品的商店欄位,將商品編號(hào)增加到該清單中的商店欄位里;如果不是第一次的話,會(huì)查詢是否已經(jīng)訂閱過(guò)提供該商品的商店內(nèi)其他的商品,有的話就新增商品編號(hào)到清單中的該商店欄位,沒(méi)有的話就新增商店欄位再加入商品編號(hào)。
(2)管理流程
一般使用者在注冊(cè)后即可以使用訂閱服務(wù),而使用者有訂閱商品時(shí),會(huì)需要一個(gè)能夠管理訂閱清單的服務(wù)。當(dāng)一般使用者按下訂閱管理的連結(jié)后,會(huì)將要求送到后端,后端會(huì)先檢查使用者個(gè)人的訂閱清單,將訂閱清單中的信息解析后,再通過(guò)MySQL取得詳細(xì)商品信息,最后回傳給使用者端,使用者端會(huì)將結(jié)果解析顯示,而使用者也可以在訂閱管理頁(yè)面刪除特定商品訂閱。
除了一般使用者的訂閱管理,商店使用者也需要商品管理頁(yè)面對(duì)商品的資料進(jìn)行修改。當(dāng)商店使用者按下商品管理的連結(jié)后,會(huì)將修改內(nèi)容送到后端,而后端在修改完MySQL內(nèi)的商品資料后,會(huì)檢查商品自己的訂閱清單,再利用email通知有訂閱該商品的使用者,商品的資料已經(jīng)變更。
3、結(jié)論
系統(tǒng)提供了附近實(shí)體商店與商店內(nèi)商品的搜索,搭配電子地圖的顯示讓使用者可以一目了然之外,使用者還能增加自己的實(shí)體商店與商店內(nèi)商品的信息到系統(tǒng)中,而使用者對(duì)于有興趣的商品,可以訂閱該商品以便能隨時(shí)得到該商品的最新信息。
參考文獻(xiàn):
[1]張衛(wèi)豐,徐寶文,周曉宇,等.Web搜索引擎綜述[J].計(jì)算機(jī)科學(xué),2001,28(9):24-28.
[2]許高建.基于Web的文本挖掘技術(shù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(06):187-190.