• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于物聯(lián)網(wǎng)技術(shù)的智慧搜索引擎設(shè)計(jì)

      2017-04-25 13:38:13齊勇軍
      電腦知識(shí)與技術(shù) 2017年2期
      關(guān)鍵詞:網(wǎng)絡(luò)爬蟲搜索引擎物聯(lián)網(wǎng)

      齊勇軍

      摘要:物聯(lián)網(wǎng)應(yīng)用發(fā)展迅速,已經(jīng)與互聯(lián)網(wǎng)技術(shù)相互融合。針對(duì)搜索引擎廣闊的應(yīng)用前景以及分析國(guó)內(nèi)外搜索引擎的發(fā)展現(xiàn)狀,根據(jù)搜索引擎系統(tǒng)的工作原理設(shè)計(jì)一種基于物聯(lián)網(wǎng)技術(shù)的搜索引擎。對(duì)搜索引擎進(jìn)行了相關(guān)的研究。一個(gè)搜索引擎由搜索器、索引器、檢索器和用戶接口四個(gè)部分組成。搜索器的功能是在互聯(lián)網(wǎng)中漫游,發(fā)現(xiàn)和搜集信息。索引器的功能是理解搜索器所搜索的信息,從中抽取出索引項(xiàng),用于表示文檔以及生成文檔庫(kù)的索引表。檢索器的功能是根據(jù)用戶的查詢?cè)谒饕龓?kù)中快速檢出文檔,進(jìn)行文檔與查詢的相關(guān)度評(píng)價(jià),對(duì)將要輸出的結(jié)果進(jìn)行排序,并實(shí)現(xiàn)某種用戶相關(guān)性反饋機(jī)制。用戶接口的作用是輸入用戶查詢、顯示查詢結(jié)果、提供用戶相關(guān)性反饋機(jī)制。結(jié)合搜索引擎發(fā)展現(xiàn)狀分析了搜索引擎的系統(tǒng)功能需求,并進(jìn)行了可行性論證,進(jìn)而提出了基于java的技術(shù)方案,明確采用jsoup、elasticsearch、jfinal等相關(guān)開發(fā)技術(shù);然后通過網(wǎng)絡(luò)爬蟲抓取數(shù)據(jù)下載到本地,建立索引;在系統(tǒng)實(shí)現(xiàn)環(huán)節(jié),重點(diǎn)對(duì)需求分析中確定的主要功能模塊進(jìn)行代碼編程、修改及優(yōu)化;最后,設(shè)計(jì)了若干具體測(cè)試用例對(duì)系統(tǒng)進(jìn)行了較全面的測(cè)試,驗(yàn)證設(shè)計(jì)效果。

      關(guān)鍵詞:物聯(lián)網(wǎng);搜索引擎;網(wǎng)絡(luò)爬蟲;索引器;jsoup

      中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)02-0274-03

      隨著信息技術(shù)與物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展和融合,越來越多的產(chǎn)業(yè)與行業(yè)廣泛應(yīng)用了物聯(lián)網(wǎng)技術(shù),如工農(nóng)業(yè)、智能家居、快遞物流、設(shè)備監(jiān)控等,物聯(lián)網(wǎng)中包含很多實(shí)體,這就意味著海量的實(shí)時(shí)數(shù)據(jù)需要傳輸、存儲(chǔ)及有效展示。面對(duì)越來越多的傳感器及其所產(chǎn)生的數(shù)據(jù),只有結(jié)合智能的物聯(lián)網(wǎng)搜索,才能最大限度地實(shí)現(xiàn)這類數(shù)據(jù)的價(jià)值。

      1 模塊設(shè)計(jì)

      本搜索引擎由四個(gè)模塊組成,主要包括網(wǎng)頁(yè)抓取模塊,網(wǎng)頁(yè)內(nèi)容抽取模塊,內(nèi)容索引模塊和內(nèi)容呈現(xiàn)模塊。系統(tǒng)的模塊流程圖1如下:

      1.1 網(wǎng)頁(yè)抓取模塊

      網(wǎng)頁(yè)抓取模塊主要完成對(duì)指定站點(diǎn)進(jìn)行網(wǎng)頁(yè)的抓取并將所抓取的網(wǎng)頁(yè)保存到本地?cái)?shù)據(jù)庫(kù)。

      本系統(tǒng)是從鳳凰、騰訊、網(wǎng)易、搜狐新聞網(wǎng)上爬取相關(guān)的網(wǎng)頁(yè),輸入鳳凰、騰訊、網(wǎng)易、搜狐新聞網(wǎng)的頁(yè)面的URL作為種子URL。通過分析鳳凰、騰訊、網(wǎng)易、搜狐新聞網(wǎng)的網(wǎng)頁(yè)URL的格式,對(duì)網(wǎng)絡(luò)爬蟲抓取和分析網(wǎng)頁(yè)的行為進(jìn)行一定的控制,限定應(yīng)抓取的網(wǎng)頁(yè)的URL格式以及限定能進(jìn)入待爬取的URL隊(duì)列的URL的格式。提高網(wǎng)絡(luò)爬蟲爬取速度可以通過改善URL的分配策略,使網(wǎng)絡(luò)爬蟲的并發(fā)線程增多。通過限制對(duì)Robot文件的訪問,也是提高爬蟲爬取網(wǎng)頁(yè)效率的一個(gè)方法。網(wǎng)頁(yè)抓取模塊的功能需求如圖2所示

      1.2 網(wǎng)頁(yè)內(nèi)容抽取模塊

      網(wǎng)頁(yè)內(nèi)容抽取模塊主要負(fù)責(zé)從本地文件所存儲(chǔ)的網(wǎng)頁(yè)中按照某種抽取規(guī)則抽取所需信息,并將所得到的信息按照特定的格式保存到數(shù)據(jù)庫(kù)中。

      通過對(duì)具有代表性的目標(biāo)頁(yè)面進(jìn)行分析,制定信息抽取規(guī)則,實(shí)現(xiàn)對(duì)網(wǎng)頁(yè)上各種內(nèi)容的定位,抽取網(wǎng)頁(yè)文本內(nèi)容。構(gòu)建網(wǎng)頁(yè)信息詞庫(kù),通過分詞器解析抽取出所需網(wǎng)頁(yè)信息內(nèi)容,并將其寫到指定詞庫(kù)文件中。將提取的網(wǎng)頁(yè)非結(jié)構(gòu)化信息轉(zhuǎn)化成結(jié)構(gòu)化信息存儲(chǔ)到數(shù)據(jù)庫(kù)中。

      網(wǎng)頁(yè)內(nèi)容抽取模塊的功能需求如圖3所示。

      1.3 內(nèi)容索引模塊

      利用Luence索引工具對(duì)數(shù)據(jù)庫(kù)中結(jié)構(gòu)化信息建立索引文件,然后把創(chuàng)建好的索引文件保存到磁盤中,根據(jù)用戶輸入的查詢條件在索引文件中進(jìn)行查詢,最終查詢結(jié)果按照一定的順序進(jìn)行排序返回給用戶。

      網(wǎng)頁(yè)內(nèi)容索引模塊的功能需求如圖4所示。

      1.4 內(nèi)容呈現(xiàn)模塊

      通過jsp技術(shù),以Web的形式展示用戶界面,當(dāng)用戶在此界面輸入關(guān)鍵詞時(shí),根據(jù)用戶的關(guān)鍵詞從數(shù)據(jù)庫(kù)中匹配相關(guān)網(wǎng)頁(yè),把相關(guān)網(wǎng)頁(yè)根據(jù)一定的排序規(guī)則返回顯示在用戶界面。

      2 詳細(xì)設(shè)計(jì)

      2.1 網(wǎng)頁(yè)抓取

      網(wǎng)絡(luò)爬蟲是一個(gè)自動(dòng)提取網(wǎng)頁(yè)的程序,它為搜索引擎從萬維網(wǎng)上下載網(wǎng)頁(yè),是搜索引擎的重要組成。傳統(tǒng)爬蟲從一個(gè)或若干初始網(wǎng)頁(yè)的URL開始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過程中,不斷從當(dāng)前頁(yè)面上抽取新的URL放入隊(duì)列,直到滿足系統(tǒng)的一定停止條件。聚焦爬蟲的工作流程較為復(fù)雜,需要根據(jù)一定的網(wǎng)頁(yè)分析算法過濾與主題無關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊(duì)列。然后,它將根據(jù)一定的搜索策略從隊(duì)列中選擇下一步要抓取的網(wǎng)頁(yè)URL,并重復(fù)上述過程,直到達(dá)到系統(tǒng)的某一條件時(shí)停止。該模塊通過網(wǎng)絡(luò)爬蟲從鳳凰、騰訊、搜狐、網(wǎng)易新聞網(wǎng)中的網(wǎng)頁(yè)爬取我們想要的頁(yè)面URL。爬蟲開始時(shí),我們添加種子URL到URL請(qǐng)求隊(duì)列中,我們輸入的種子URL為鳳凰、騰訊、搜狐、網(wǎng)頁(yè)新聞網(wǎng)的頁(yè)面的URL。通過對(duì)鳳凰、騰訊、搜狐、網(wǎng)易新聞網(wǎng)的頁(yè)面的URL格式進(jìn)行分析,當(dāng)?shù)玫降腢RL地址滿足鳳凰、騰訊、搜狐、網(wǎng)易網(wǎng)頁(yè)面的URL格式,則將它添加到URL請(qǐng)求隊(duì)列中。

      網(wǎng)絡(luò)爬蟲的工作流圖如圖5所示。

      定制網(wǎng)絡(luò)爬蟲抓取鳳凰網(wǎng):

      parser="org.webspider.parser.NewsIfengParser"

      listener="org.webspider.listener.DbSpiderListener"

      host="news.ifeng.com" forbidden="">

      <![CDATA[http://news\.ifeng\.com/a/\d{8}/\d+_\d{1}\.shtml]] >

      <![CDATA[http://news.ifeng.com/]] >

      2.2 網(wǎng)頁(yè)信息抽取

      網(wǎng)頁(yè)內(nèi)容抽取主要負(fù)責(zé)將本地文件所存儲(chǔ)的網(wǎng)頁(yè)中按照某種抽取規(guī)則抽取所需信息,并將所得到的信息按照特定的格式保存到數(shù)據(jù)庫(kù)中。

      遍歷存儲(chǔ)所抓取網(wǎng)頁(yè)的本地文件夾,如果遍歷到網(wǎng)頁(yè),則運(yùn)用jsoup對(duì)網(wǎng)頁(yè)的標(biāo)題,作者,時(shí)間,正文實(shí)現(xiàn)定向抓取。將抓取的內(nèi)容保存為.txt文件存放到指定文件夾中。將抓取到的內(nèi)容,如網(wǎng)頁(yè)鳳凰網(wǎng)新聞的標(biāo)題,作者,發(fā)布時(shí)間,正文,鏈接地址,分別存入到數(shù)據(jù)庫(kù)news表中的相應(yīng)列。

      網(wǎng)頁(yè)信息抽取流程圖6如下。

      實(shí)現(xiàn)的關(guān)鍵代碼:

      public class DefaultParser implements Parser{

      @Override

      public List> parse(Page page) {

      //創(chuàng)建一個(gè)List,存放解析出來的Map

      List> datas = new ArrayList>();

      //通過網(wǎng)頁(yè)的html,創(chuàng)建一個(gè)Document

      Document doc = Jsoup.parse(page.getContent());

      //創(chuàng)建一個(gè)map,用于存放解析的具體字段

      Map data = new HashMap();

      //把網(wǎng)頁(yè)的原始url放入map

      data.put("origin_url", page.getUrl());

      //利用jsoup的選擇器,提取標(biāo)題title這個(gè)元素

      Elements title = doc.select("title");

      //得到標(biāo)題的文本,并放到map里去

      data.put("title", title.text());

      //解析得到的map,放入list里去

      datas.add(data);

      //返回解析結(jié)果List

      return datas;}}

      2.3 內(nèi)容索引

      利用Luence索引工具對(duì)數(shù)據(jù)庫(kù)中結(jié)構(gòu)化信息建立索引文件,然后把創(chuàng)建好的索引文件保存到磁盤中,根據(jù)用戶輸入的查詢條件在索引文件中進(jìn)行查詢,最終查詢結(jié)果按照一定的順序進(jìn)行排序返回給用戶。

      實(shí)現(xiàn)的關(guān)鍵代碼:

      /*索引一個(gè)索引庫(kù)的數(shù)據(jù) * * @param indexConfig Index */

      private void indexData(Index index) throws Exception {

      StringTokenizer stFetcher = new StringTokenizer(index.fetcher, FETECHER_SPLIT);

      while (stFetcher.hasMoreTokens()) {String strFectcherName = stFetcher.nextToken();

      Fetcher iFetcher = (Fetcher)new ObjectUtility().newInstance(strFectcherName);

      int records = iFetcher.doIndex(index);

      LOG.info(index.name + ", Index Records:" + records + ", Fetcher Class:" + strFectcherName);

      } }

      2.4 搜索引擎界面設(shè)計(jì)

      本搜索引擎界面簡(jiǎn)單清新。其效果圖如圖8所示。

      3 結(jié)束語

      針對(duì)物聯(lián)網(wǎng)技術(shù)產(chǎn)生的大量數(shù)據(jù),設(shè)計(jì)了一種搜索引擎,并將核心功能完成,能應(yīng)用于實(shí)際。本搜索引擎有如下功能:

      1)通過對(duì)網(wǎng)絡(luò)爬蟲的擴(kuò)展?jié)M足自己從網(wǎng)絡(luò)站點(diǎn)抓取相關(guān)信息的要求

      2)通過jsoup網(wǎng)頁(yè)解析工具實(shí)現(xiàn)對(duì)目標(biāo)網(wǎng)頁(yè)進(jìn)行抽取,并將抽取內(nèi)容保存到數(shù)據(jù)庫(kù)中。

      3)通過luence檢索工具完成對(duì)存儲(chǔ)在數(shù)據(jù)庫(kù)中信息的索引,最后通過jsp向用戶展示所抓取并過濾后的信息。

      4)與MYSQL數(shù)據(jù)庫(kù)結(jié)合使用,減少企業(yè)的開銷成本,同時(shí),在數(shù)據(jù)處理方面,MYSQL數(shù)據(jù)庫(kù)提供了很大的優(yōu)勢(shì),在數(shù)據(jù)的返回處理方面,減少了結(jié)果集的負(fù)擔(dān),同時(shí),也加快了數(shù)據(jù)的傳輸。

      5)系統(tǒng)界面簡(jiǎn)單美觀。

      最后,本文通過對(duì)搜索引擎的分析與測(cè)試,表明對(duì)基于JAVA的搜索引擎的設(shè)計(jì)與實(shí)現(xiàn)是成功的,該搜索引擎性能穩(wěn)定,高效。

      綜上所述,本課題成功地實(shí)現(xiàn)和設(shè)計(jì)了基于JAVA的搜索引擎,并結(jié)合了MYSQL數(shù)據(jù)庫(kù)的使用,軟件的UI交互設(shè)計(jì)友好。

      參考文獻(xiàn):

      [1] 袁津生, 李群, 蔡岳. 搜索引擎原理與實(shí)踐[M]. 北京: 北京郵電大學(xué)出版社, 2008, 11.

      [2] 鄭宇衛(wèi). 基于Lucene構(gòu)建的Web服務(wù)搜索引擎[J]. 電腦編程技巧與維護(hù), 2015.

      [3] 任麗蕓. 搜索引擎中文分詞技術(shù)研究[D]. 重慶: 重慶理工大學(xué), 2011.

      [4] 邱哲, 符滔滔. 開發(fā)自己的搜索引擎--Lucene 2.0+Heritrix[M]. 北京: 人民郵電出版社, 2007-06.

      [5] 桂許軍. 基于JavaEE平臺(tái)與Lucene的信息文檔搜索引擎系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 成都 西南交通大學(xué), 2011.

      [6] Cay S.Horstmann, Gary Cornell.Core Java 2, Volume 1-Fundamentals,6E[M].Prentice Hall/Pearson, 2003.

      [7] Bruce Eckel. Thinking in Java[Z].4th ed. 2007.

      猜你喜歡
      網(wǎng)絡(luò)爬蟲搜索引擎物聯(lián)網(wǎng)
      煉鐵廠鐵量網(wǎng)頁(yè)數(shù)據(jù)獲取系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      基于物聯(lián)網(wǎng)的煤礦智能倉(cāng)儲(chǔ)與物流運(yùn)輸管理系統(tǒng)設(shè)計(jì)與應(yīng)用
      基于高職院校物聯(lián)網(wǎng)技術(shù)應(yīng)用人才培養(yǎng)的思考分析
      基于社會(huì)網(wǎng)絡(luò)分析的權(quán)威網(wǎng)頁(yè)挖掘研究
      中國(guó)或成“物聯(lián)網(wǎng)”領(lǐng)軍者
      主題搜索引擎中網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)研究
      淺析如何應(yīng)對(duì)網(wǎng)絡(luò)爬蟲流量
      網(wǎng)絡(luò)搜索引擎亟待規(guī)范
      基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
      廣告主與搜索引擎的雙向博弈分析
      阿瓦提县| 黎川县| 宜都市| 巴青县| 小金县| 潍坊市| 玛纳斯县| 肥西县| 太白县| 华安县| 黔南| 平远县| 讷河市| 高邑县| 大田县| 大洼县| 松阳县| 沅陵县| 永兴县| 卢龙县| 光泽县| 金坛市| 丽江市| 宜君县| 莎车县| 五华县| 通渭县| 漳平市| 蒙山县| 南投市| 历史| 屯昌县| 昭通市| 宜君县| 河池市| 长宁区| 武汉市| 沂水县| 郯城县| 秦皇岛市| 天峨县|