国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

用python做一個搜索引擎(Pylucene)的實例代碼

2020-02-16 01:48:40
字體:
來源:轉載
供稿:網友

1.什么是搜索引擎?

搜索引擎是“對網絡信息資源進行搜集整理并提供信息查詢服務的系統,包括信息搜集、信息整理和用戶查詢三部分”。如圖1是搜索引擎的一般結構,信息搜集模塊從網絡采集信息到網絡信息庫之中(一般使用爬蟲);然后信息整理模塊對采集的信息進行分詞、去停用詞、賦權重等操作后建立索引表(一般是倒排索引)構成索引庫;最后用戶查詢模塊就可以識別用戶的檢索需求并提供檢索服務啦。

圖1 搜索引擎的一般結構

2. 使用python實現一個簡單搜索引擎

2.1 問題分析

從圖1看,一個完整的搜索引擎架構從互聯網搜集信息開始,可以使用python編寫一個爬蟲,這是python的強項。

接著,信息處理模塊。分詞?停用詞?倒排表?what?什么亂七八糟的?不用管它,我們有前輩們造好的輪子---Pylucene(lucene的python封裝版本,Lucene能夠幫助開發者為軟件、系統增添檢索功能。Lucene是一套用于全文檢索和搜尋的開源程序庫)。使用Pylucene可以簡單的幫助我們完成對采集到的信息進行處理,包括索引的建立和搜索。

最后,為了能在網頁上使用我們的搜索引擎,我們使用flask這個輕量級 Web 應用框架做一個小網頁獲取搜索語句并反饋搜索結果。

2.2 爬蟲設計

主要搜集以下內容:目標網頁的標題、目標網頁的主要文字內容、目標網頁指向其他頁面的URL地址。網絡爬蟲的工作流程如圖2所。爬蟲的主要數據結構是隊列。首先,起始的種子節點進入隊列,然后從隊列中取出一個節點訪問,抓取該節點頁面上的目標信息,再將該節點頁面指向其他頁面的URL鏈接放進隊列,再從隊列中取出新的節點進行訪問,直至隊列為空。通過隊列“先進先出”的特點實現廣度優先的遍歷算法,逐個訪問站點的每一頁面。

圖2

2.3 pylucene的使用

Pylucene中關于建立索引的類主要有Directory、Analyzer、IndexWriter、Document、Filed。

Directory是Pylucene中關于文件操作的類。它有SimpleFSDirectory和RAMDirectory、CompoundFileDirectory、FileSwitchDirectory等11個子類,列舉的四個是與索引目錄的保存相關的子類,SimpleFSDirectory是將構建的索引保存至文件系統之中;RAMDirectory是將索引保存至RAM內存之中;CompoundFileDirectory是一種復合的索引保存方式;而FileSwitchDirectory允許臨時切換索引的保存方式以發揮各種索引保存方式的優點。

Analyzer,分析器。它是對爬蟲獲得的將要進行構建索引的文本進行處理的類。包括了文本進行分詞操作、去掉停用詞、轉換大小寫等操作。Pylucene自帶了若干分析器,構建索引時也可使用第三方分析器或者自寫分析器。分析器的好壞關系到構建索引的質量與搜索服務的所能提供的精準度與速度。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 夏河县| 民县| 天镇县| 达拉特旗| 伊吾县| 贵定县| 平阳县| 海晏县| 宁武县| 即墨市| 开阳县| 偏关县| 柳州市| 贺州市| 交口县| 葵青区| 锡林浩特市| 商洛市| 京山县| 辽源市| 于田县| 丽水市| 邵东县| 保定市| 清新县| 双鸭山市| 嘉黎县| 务川| 大兴区| 禄劝| 西乌珠穆沁旗| 陆良县| 兴业县| 葫芦岛市| 邢台县| 景洪市| 工布江达县| 威海市| 慈利县| 孟津县| 远安县|