999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JAVA的搜索引擎的設計與實現

2015-06-25 04:07:16楊爍任曉菲
科技創新與應用 2015年21期
關鍵詞:搜索引擎

楊爍 任曉菲

摘 要:在浩瀚無邊的網絡資源中,特別是院校等自建網站的大型單位中,信息檢索是一件很困難的工作,而建立搜索引擎顯得尤為重要。文章闡述在廣域網或局域網下建立信息檢索的技術描述,從四個方面進行系統分析。為了使大家加深對信息檢索的理解,從原理上解釋從指定的Web頁面中按照超連接進行解析、搜索,并把搜索到的每條結果進行建立索引。然后通過Web服務器接受客戶端請求后,將關鍵字用ICTCLAS.dll中文切詞工具進行切割,將關鍵字列表在索引中搜索出所匹配的結果,并將其顯示給客戶。此外,還利用Ajax等一些技術增加了一些自動提示的效果,使得搜索界面更加人性化。

關鍵詞:搜索引擎;網絡蜘蛛;Lucene;中文切詞

引言

面對浩瀚的網絡資源,各區間之間達到資源共享,為盡快達到用戶索取資源的目的性而建立搜索引擎,毫不夸張的說所有的用戶都可以從搜索出發到達自己想去的網上任何一個地方。伴隨著網絡的發展,搜索引擎主要經歷了三個發展時期。從1994年初始,在“求全”的基礎上開展應用,反應速率較慢。從1966年出現分布式方案,采取機器抓取技術,大大提高了檢索速度。在2000年左右,在改進二代技術基礎上,增加了互動性和個性化,采用自動分類、自動聚類、區域智能識別等技術,成為當今主流搜索引擎技術,提高用戶應用效率。

1 搜索引擎的結構

1.1 搜索引擎系統概述

搜索引擎是根據用戶的查詢請求,按照一定算法從索引數據中查找信息返回給用戶。為了保證用戶查找信息的精度和新鮮度,搜索引擎需要建立并維護一個龐大的索引數據庫。一般的搜索引擎由網絡機器人程序、索引與搜索程序、索引數據庫等部分組成。

網絡機器人程序建立Lucene索引從SQL中搜索信息Tomcat服務器Lucene索引數據庫瀏覽器JSP網絡機器人程序、文檔網絡、機器人程序,建立Lucene索引從SQL中搜索信息Tomcat服務器Lucene索引數據庫瀏覽的機器人程序系統結構圖。

1.2 搜索引擎的構成

搜索引擎的工作原理主要指輸入一定規則,在相應的數據中抓取存儲,進行預處理,組織排名調用索引庫數據獲取信息。

1.2.1 網絡蜘蛛

網絡蜘蛛也稱為“網絡機器人”(Spider),用Myeclipse、MysqL開發,采用Spring+Struts+Hibernate框架構成的系統。

1.2.2 索引與搜索

采用索引技術,采用NON-CLUSTERED方法,生成關鍵詞到URL,并以特定數據結構存儲在方式。高度注意提高信息查詢的精度,利用信息機制進行過濾和個性化服務,采用分布式結構來提高系統規模和性能返回用戶的方式。

1.2.3 Web服務器

Web 服務器也被稱為HTTP服務器,它通過HTTP協議與客戶端通信,采取超文本連接的概念,利用Blog、Rss、Psdcasting、SNS、WIKI、Page Rank等技術任,使資源比較直觀的表現出來。

1.3 搜索引擎的主要指標及分析

搜索引擎的主要指標有響應時間、召回率、準確率、相關度等。這些指標決定了搜索引擎的技術指標,搜索引擎的技術指標決定了搜索引擎的評價標準。具有較快的反應速度和高召回率、準確率是衡量搜索引擎的重要指標,而實現此功能是需要搜索引擎技術指標來保障的。

2 網絡機器人

2.1 網絡機器人概念

網絡機器人稱Spider程序,是專業Bot程序的一種,用于查找大量的Web頁面。

2.2 網絡機器人的結構分析

Internet內存有很多協議,系統層中的協議較為復雜。網頁是建立在系統層基于HTTP(Hypertext Transfer Protocol)協議基礎上的,而TCP/IP(Transmission Control Protocol/Internet Protocol)是HTTP的基礎協議,因此網絡機器人就是一種Socket協議。

2.2.1 網絡機器程序結構

Spider在不同網頁之間跳轉,必須找到一個關鍵點,也就是頁面上的超連接。網頁代碼由網絡機器人解析,分解頁面內的超連接,通過內部遞歸結構和非遞歸結構這兩種結構實現Spider程序。URL在同一時間只能在一個隊列內,這種狀態稱為URL狀態。

圖1表示URL隊列工作流程,Spider在URL被加入等待隊列中程序被激活運行,Spider程序會按指定方式排序分析網頁中URL,直到無列隊時工作停止。

2.2.2 Spider程序構造

只有了解Spider程序工作原理及功能擴展,才能構建出高效的Spider程序。

Spider類:這是一個實現了Runnable的類,以便實現多線程提高性能。

此外Spider還實現了Constants,Constants接口實際上是一個定義常量的地方,它定義了一些與線程處理有關的常量。工作流程圖如圖2所示:

2.2.3 提升程序性能。Web頁面資源在互聯網中十分豐富,提高Spider程序的效能成為最迫切的需求,就如何提高程序有效性介紹幾種技術:(1)Java的多線程技術。多線程技術是指同一程序同時運行多個任務的能力,通過優化內部程序分工,強化程序間關聯度,提高和改善程序性能。(2)數據庫技術。利用數據庫技術是存儲網頁中站點隊列,將網頁站點從內存中解放出來,達到提高性能的作用。

2.2.4 Spider代碼分析

程序結構圖為:

程序代碼簡要實現如下:

public class Spider extends Logger implements Runnable, Constants

{

private SpiderConfig config;

private DownloadQueue queue;

private Set urlsDownloadedOrScheduled;

private Set urlsDownloading;

private int downloadsInProgress;

private boolean quit;

private int running;

private long lastCheckpoint;

public void start();

public void stop();

private void writeCheckpoint();

public void readCheckpoint();

public void run();

private int queueSize();

private List downloadURL(URLToDownload url, URLGetter urlGetter, HTMLParser htmlParser);

private List filterURLs(List URLs);

}

3 基于lucene的索引與搜索

3.1 Lucene檢索簡介

Lucene是開放源代碼的全文引擎工具包,用java編寫方便嵌套各類應用中實現檢索的工具。

3.2 Lucene原理分析

3.2.1 Lucene原理。Lucene的API設計功能強大,可以映射到各類軟件中,將數據處理為交叉引用查找,提高索引和搜索效率,Lucene類似于索引全文的數據庫系統。

3.2.2 Lucene的索引效率。Lucene索引將查詢的模糊化變成多個精確查詢的邏輯組合過程,進而提高查詢的效率。將數據通過全文索引一一建立反向索引,以term匹配數據,實現接口對接支持,以緩沖式批量讀取的形式將特別算法匹配率最高的前100條結果輸出,用自身算法實現不同語言接口的對接,從優選擇符合需要的索引規則,建立最優排序規則,提高索引效率。

3.2.3 中文切分詞機制。目前采取比較流行的自動切分算法,這種算法必須要創建相對較為豐富的詞庫用以識別單字或詞,利用規則將多個關鍵詞進行組合,并映射到相應的索引中,查找出所需內容。

4 構建自己的搜索引擎

4.1 為什么要構建自己的搜索引擎

伴隨經濟發展,信息呈現爆炸式增長的新情況,使用一個入口查尋搜索已經不能用戶的需要,提供全面、精確、高效的搜索引擎是滿足用戶需求的必然要求。

4.2 通過Lucene建立索引

4.2.1 參數設置。建立索引至少需要兩個參數:目標文件路徑,索引的路徑。它可以以配置文件的形式存在,但是簡單起見,作者直接用常量在類中了。

4.2.2 建立索引。索引的建立索引的類為LuceneSearch.java,它主要用來搜索數據和處理結果的。

4.3 通過Struts+Tomcat構架系統

有了上面的一些基本功能點,我們還差一個跟用戶交互的UI接口,和一個運行B/S模式的web服務器。選用JSP+Struts,Web服務器作者選用Tomcat。

4.3.1 UI和web層設計。UI分成兩層,最外一層為跟客戶端接觸的JSP頁面,里面還有一層來處理我們的請求——Action層。

Action層是由Struts技術來完成的。Struts是一種基于MVC設計模式的框架,其中struts-config.xml是其核心配置文件。

4.3.2 基于Tomcat的Web服務器。Web服務器以實現在網絡中發布信息、查詢數據、處理數據等為目的,可搭建眾多應用程序的基礎平臺。Tomcat是一個免費開放源代碼、應用廣泛的頂級程序,是運行servlet和JSP Web應用軟件的必備程序。由于程序免費、源代碼開放、維護及時、技術先進、性能穩定等特點,成為目前較為流行的Web服務器之一,得以廣泛的應用。Tomcat服務器由一系列可配置組件構成,核心組件為Catalina Servlet組件,其層次關系如圖3:

在Tomcat中,部署應用程序并不復雜,按指定的方法安裝調試,即可達到編譯效果,提高訪問速度。

5 結束語

文章對基于網絡的搜索引擎結構和性能指標進行了分析,介紹了網絡機器人的基本概念,分析了Spider程序的結構和功能,對一些結合具體代碼舉例說明,增強了對搜索引擎的了解應用,并加入利用Lucene索引技術闡述,采用Tomcat框架提高交互體驗,進一步增強自建探索引擎的效率。

參考文獻

[1]盧亮,張博文.搜索引擎原理、實踐與應用[M].北京:電子工業出版社,2007,9.

[2]佘正平.搜索引擎的關鍵詞分析與處理[J].情報探索,2008,5.

[3]何會民,韓東霞.基于Lucene的網絡新聞搜索引擎研究與實現[J].商場現代化,2008,9.

[4]曾偉輝.深層網絡爬蟲研究綜述[J].計算機系統應用,2008,5.

[5]房志峰.中文搜索引擎中的分詞技術研究[J].科學技術與工程,2008,9.

[6]埃克爾著(美),陳昊鵬(譯).JAVA編程思想[M].北京:機械工業出版社,2007,6.

猜你喜歡
搜索引擎
Chrome 99 Canary恢復可移除預置搜索引擎選項
網絡搜索引擎亟待規范
中國衛生(2015年12期)2015-11-10 05:13:38
Nutch搜索引擎在網絡輿情管控中的應用
警察技術(2015年3期)2015-02-27 15:37:09
基于Nutch的醫療搜索引擎的研究與開發
廣告主與搜索引擎的雙向博弈分析
基于Lucene搜索引擎的研究
知識漫畫
百科知識(2012年11期)2012-04-29 08:30:15
一種自反饋式元搜索系統的設計
搜索引擎,不止有百度與谷歌
搜索,也要“深搜熟濾”
主站蜘蛛池模板: 久久九九热视频| 精品精品国产高清A毛片| 久久精品aⅴ无码中文字幕| a国产精品| 欧美一级高清片久久99| 青青草国产免费国产| 国产精品99r8在线观看| 国产在线精品美女观看| 国产日韩欧美中文| 国产精品无码制服丝袜| 亚洲永久精品ww47国产| 在线观看免费人成视频色快速| 日韩AV无码一区| 一级香蕉人体视频| 九色在线观看视频| 五月激情综合网| 国产福利免费视频| 99re66精品视频在线观看| 永久免费av网站可以直接看的| 午夜啪啪网| 久久精品人人做人人爽| 在线精品亚洲一区二区古装| 精品国产www| 在线视频精品一区| 亚洲欧美不卡| 久久狠狠色噜噜狠狠狠狠97视色| 久996视频精品免费观看| 免费人成网站在线高清| 亚洲熟妇AV日韩熟妇在线| 亚洲欧美日韩精品专区| 亚洲成av人无码综合在线观看| 特级做a爰片毛片免费69| 国产av一码二码三码无码| 在线综合亚洲欧美网站| 国产97公开成人免费视频| 国产福利大秀91| 青青草原国产一区二区| 欧美另类第一页| 日本草草视频在线观看| 精品一区二区三区自慰喷水| 91小视频版在线观看www| 亚洲无码不卡网| 国产一在线| 欧美成一级| 伊人成色综合网| 国产成人精品一区二区免费看京| 成人小视频在线观看免费| 国产女人18水真多毛片18精品| 激情综合网激情综合| 久久精品人妻中文系列| 农村乱人伦一区二区| 欧美精品在线看| 精品视频在线观看你懂的一区| 欧美啪啪网| 成人国内精品久久久久影院| 成色7777精品在线| 91久久偷偷做嫩草影院电| 欧美性色综合网| 一区二区午夜| 91极品美女高潮叫床在线观看| 亚洲中文字幕国产av| 色色中文字幕| 国产成人精品免费视频大全五级| 中文字幕在线视频免费| 又爽又大又黄a级毛片在线视频 | 欧美视频在线第一页| 2018日日摸夜夜添狠狠躁| 久久人人97超碰人人澡爱香蕉 | 99er精品视频| 一本视频精品中文字幕| 精品久久久久久成人AV| 国产新AV天堂| 五月婷婷亚洲综合| 日韩毛片在线视频| 国产一级一级毛片永久| 国产在线视频福利资源站| 中文字幕乱码二三区免费| 波多野结衣一区二区三视频 | 亚洲欧美另类久久久精品播放的| 国产成人精品高清不卡在线| 亚洲中字无码AV电影在线观看| 日本欧美一二三区色视频|