Iveely 搜索引擎0.3.0 發布 & 如何搭建自己的搜索引擎


        Iveely Search Engine在經過一個月艱辛的測試之后,0.3.0終於與大家見面了,本次版本的主題是:實時信息檢索

        項目及源碼下載地址 http://iveelyse.codeplex.com 也許你會懷疑我指的是否是"實時搜索“?我想回答你的是,這是邁向實時搜索的一大步。那么0.3.0到底新增加了哪些東西?0.3.0中更改了爬蟲策略,索引策略。 在爬蟲方面,我們放棄了以前的完整遍歷整個網站,采用廣度遍歷3000個網頁后,然后下次再廣度遍歷3000個不同的網頁且更新以前爬行過得網頁,這樣可以保證最新的數據可以盡快搜到。索引方面,拋棄了以往的數據結構,采用新的二維表,快速定位索引項。當然還有添加了IveelySE.Resource,用於保證資源文件的存在,因為前兩個版本的時候很多網友反應有些文件找不到,現在不用擔心這個問題了。當然我們還添加了Help Tools project ,例如用它可以查看IveelySE的一些數據信息,當然並不是很全面。下圖是IveelySE對博客園進行爬取后的網頁PageRank查看:

 

        下面我們看一下,如何根據IveelySE 0.3.0 1分鍾 搭建自己的搜索引擎。

第一步:環境配置(可選)

IveelySE是在Windows下開發的,運行環境.Net 4.0 ,請確定您的計算機或服務器上安裝了.Net 4.0 ,如果你的計算機或服務器是Linux,請參考Mono安裝.Net環境。如果環境都存在,請忽略此配置。

第二步:定位應用程序集:IveelySE.Run.Task.exe

在默認情況,IveelySE的應用程序都定位在\IveelySE\IveelySE.Program文件夾中,我們主要使用的是IveelySE.Run.Task.exe進行我們的任務,在上一個版

本我們已經實現了一鍵式運行,此刻不要認為其它文件都不重要,在IveelySE生成的每個文件都是有意義的。請不要任意刪除文件。主要文件的意義如下:

        文件名   含義

strai.aiml 智能應答知識文件,支持函數式擴展。

StopWord.txt  停用詞文件

IveelySE.Index.exe  索引處理應用程序

IveelySE.Run.Task.exe  任務驅動機應用程序

IveelySE.Segment.exe  分詞程序

IveelySE.Spider.exe  爬蟲應用程序

IveelySE.Tools.exe  數據查看工具

IveelySE.AI.dll  智能應答處理程序

IveelySE.Cache.dll  緩存處理程序

IveelySE.Classify.dll  分類處理程序(暫時保留)

        第三步:修改配置文件:IveelySE.Config

        IveelySE.Config 是IveelySE的所以配置信息存儲的地方,任何一個配置信息,都在這里配置。每一個配置項的含義如下:

        配置項 含義

HighLight 高亮顏色標記

Delimiter  分隔符

TrainFile  隱馬爾科夫分詞模型訓練文件

CrawlerTemp 爬蟲數據臨時存放目錄

DataDir  正式數據文件存放目錄

  PageRankFile 網頁權值存放文件

PageRankContent  網頁URL關聯文件

PageRankList  網頁權值集合

IndexTemp  索引臨時文件

IndexDir  索引文件

SystemUpdate  系統是否更新,標識系統是否存在新的數據產生

CurrentPageIndex  當前網頁記錄的編號

Crawler  爬蟲入口地址,支持多地址,以,分隔

第四步: 執行任務,運行IveelySE.Run.Task.exe

運行截圖如下:

(圖一) 

 

(圖二) 

第五步: 執行搜索,打開網頁http://127.0.0.1:8088/query=yourkeyword

        下面,你就看到了時刻搜索的信息,過一會你會看到信息的信息會出現在你的搜索結果中,哪怕是首頁中剛放不久的信息。

 

根據上面信息你是否發現了,僅僅過了4分鍾,就可以搜索到頁面上的新信息。

  第六步:   個性化定制搜索頁面(可選)

也許你已經發現了,IveelySE搜索的客戶端並沒有寫什么程序,完全來自於瀏覽器的請求。那么在瀏覽器這一端,你就可以自己寫屬於自己的搜索界面

搜索界面如何寫? 

根據http://127.0.0.1:8088/query=我的關鍵詞(第一種訪問方式)搜索規則,在您的頁面當中每次請求這個鏈接即可。詳細略。如果你需要定制復雜的頁面,你

也可以通過TCP\IP協議訪問服務器端口5001,傳入關鍵字,服務端會返回搜索文本(第二種訪問方式)。

 

此時此刻,一個屬於你自己的搜索引擎已經誕生,但是請別着急,我不是一個報喜不報憂的人,我還是要告訴你現階段, IveelySE的不足之處。

1. IveelySE不適合大規模數據處理, 雖然存在BigData項目,但是現階段0.3.0中,我取消了對大數據的支持,原因是大數據處理需要分布式,而分布式現階段並不能為iveelySE的未來帶來一定的意義,當然后期一定很有影響。現階段更加關注IveelySE自身的特色。
2. IveelySE現階段版本,不給於任何性能保證。雖然我知道IveelySE的當前性能,對於100萬URL的網站處理,可以容納,性能也可以達到一定的要求。但是對於內存過小的服務器,CPU較弱的機器,我不能保證性能上有一定的衰減。但是,性能一定是我們關注的重要問題。
IveelySE 下一步 0.4.0的主要目標是什么呢?從0.1.0到0.3.0已經慢慢走過來,0.4.0將圍繞着知識提取為主要目標。什么是知識提取?假設網頁中有句話“微軟亞太研發集團主席是張亞勤,他12歲考入中科大少年班。”,我們希望IveelySE能夠提取里面的知識信息,讓用戶搜索“微軟亞太研發集團主席是誰?”我們希望返回“張亞勤”,“張亞勤多少歲進入中科大少年班?”我們期望返回“12歲”。也許你覺得不可思議,但這正是 IveelySE的定位信條:你最想知道什么?。如果IveelySE不堅定這個方向走下去,那么它將沒有意義。 

 Iveely 是I void everything,enjoy loving you的首字母縮寫,表達搜索人對搜索引擎的熱愛,所有源碼的開放,都是為了知識的共享,如果您有好的想法和建議,可以發送郵件至我:liufanping@iveely.com 或 微博,如果您想參與進來,貢獻您的代碼,請聯系我。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM