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