• 
    

    
    

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

      基于Lucene的站內(nèi)搜索引擎開發(fā)研究

      2016-07-21 08:59:34郭肇毅樂山師范學(xué)院計(jì)算機(jī)科學(xué)學(xué)院四川樂山614000
      河南科技 2016年3期

      郭肇毅(樂山師范學(xué)院 計(jì)算機(jī)科學(xué)學(xué)院,四川 樂山 614000)

      ?

      基于Lucene的站內(nèi)搜索引擎開發(fā)研究

      郭肇毅
      (樂山師范學(xué)院計(jì)算機(jī)科學(xué)學(xué)院,四川樂山614000)

      摘要:經(jīng)典搜索引擎目前的性能已十分良好,但在對(duì)于某些特定網(wǎng)站內(nèi)部信息的檢索方面,若采取直接嵌入經(jīng)典搜索引擎的方式,往往效果不佳。本文基于Lucene這一全文檢索工具包,在對(duì)詞條進(jìn)行分析方面,將Lu?cene自帶分析器與盤古分詞工具相結(jié)合,開發(fā)了一款針對(duì)一個(gè)經(jīng)典論壇的站內(nèi)搜索引擎,經(jīng)檢測(cè)性能良好。

      關(guān)鍵詞:Lucene;站內(nèi)搜索引擎;盤古分詞

      隨著信息化進(jìn)程的深入,政務(wù)公開等的需要,許多機(jī)關(guān)事業(yè)單位、企業(yè)等都建立了自己?jiǎn)挝?、部門的網(wǎng)站。但是,要在這些網(wǎng)站中快速地查找到自己所需要的信息是一件十分費(fèi)時(shí)、費(fèi)力的工作,特別是對(duì)于某些BBS論壇,要想查找相關(guān)主題的帖子也是十分困難的。目前,很多網(wǎng)站采用內(nèi)嵌Google、百度等搜索引擎的形式來(lái)做相關(guān)的搜索工作。但是,由于網(wǎng)站本身的特點(diǎn),采用內(nèi)嵌大型搜索引擎的方式往往會(huì)造成效率低下。因此,開發(fā)一款針對(duì)網(wǎng)站本身特點(diǎn)的站內(nèi)搜索引擎十分必要[1]。

      本文通過仔細(xì)鉆研搜索引擎的基本原理的前提下,基于一個(gè)著名的開源搜索引擎類庫(kù)—Lucene,開發(fā)了一款針對(duì)某個(gè)論壇的站內(nèi)搜索引擎,經(jīng)檢測(cè)搜索性能良好。

      1 相關(guān)工作

      1.1搜索引擎簡(jiǎn)介

      所謂搜索引擎,就是按照一定的規(guī)則和方法,運(yùn)用特定的計(jì)算機(jī)算法從網(wǎng)絡(luò)上搜索信息,并對(duì)搜索到的信息進(jìn)行相應(yīng)處理后,將用戶所要查找內(nèi)容的相關(guān)信息展示給用戶。常見的搜索引擎主要有全文索引搜索引擎、目錄索引搜索引擎、元搜索引擎、垂直搜索引擎等。盡管搜索引擎如此多種多樣,但它們的組成結(jié)構(gòu)大體上是一樣。一般搜索引擎包括5個(gè)組成部分:用戶接口(一般是圖形化接口)、網(wǎng)絡(luò)爬蟲、索引文件數(shù)據(jù)庫(kù)、搜索工具和索引工具[2]。其示意圖如圖1所示。

      圖1 搜索引擎結(jié)構(gòu)示意圖

      搜索引擎的大致原理如下。

      ①通過網(wǎng)絡(luò)爬蟲抓取因特網(wǎng)上的信息。其具體流程為:根據(jù)信息是否有關(guān),若是相關(guān)信息,則將相應(yīng)的網(wǎng)頁(yè)內(nèi)容下載下來(lái),以便之后建立索引等相關(guān)操作,同時(shí)查看該網(wǎng)頁(yè)是否含有其他鏈接,若有,同樣將其存儲(chǔ)下來(lái)以便之后的搜索。網(wǎng)絡(luò)爬蟲搜索抓取信息主要采用深度優(yōu)先搜索算法和廣度優(yōu)先搜索算法。

      ②索引工具是建立索引的工具,原理是將網(wǎng)頁(yè)內(nèi)容按照特定的算法處理后,建立相應(yīng)的索引保存到索引文件數(shù)據(jù)庫(kù)。建立索引的目的是為了之后查找的方便,類似于書本中的目錄。書本有了目錄,查找相應(yīng)的內(nèi)容就會(huì)方便很多。其中,倒排索引是一種常見的索引形式,而這是Lucene采用的索引形式。

      ③當(dāng)用戶想要查找某些信息的時(shí)候,用戶通過相應(yīng)的搜索引擎用戶接口輸入想要查找的內(nèi)容,特定的搜索工具對(duì)用戶輸入的信息進(jìn)行一些特定處理,然后在索引文件數(shù)據(jù)庫(kù)中查找相關(guān)的內(nèi)容,查找到后,將相關(guān)的信息通過用戶接口反饋給用戶。

      1.2Lucene簡(jiǎn)介

      Lucene是一個(gè)開源的全文檢索工具包,原作者叫Doug Cutting。Lucene最初只有java版本,但因其強(qiáng)大的功能,逐漸有了很多其他語(yǔ)言的版本,比如C++、C#、Perl等,而且全球的愛好者在不斷地對(duì)其進(jìn)行完善。

      使用Lucene從文檔中檢索關(guān)鍵字時(shí),大體上可以分為以下步驟:①對(duì)要進(jìn)行查找的文檔進(jìn)行預(yù)處理;②將大文檔切分成多個(gè)小文檔;③為相應(yīng)的文檔構(gòu)建索引;④構(gòu)建查詢對(duì)象;⑤再在索引中查找相關(guān)內(nèi)容。

      在Lucene中,可以按關(guān)鍵詞查詢指定的列,根據(jù)相關(guān)度返回結(jié)果,也可以自定義搜索結(jié)果排序方式。

      由于在建立索引時(shí),寫入索引并能夠被用戶檢索的是一個(gè)個(gè)詞條。因此,只有通過分詞才可能讓信息檢索系統(tǒng)理解用戶的檢索,進(jìn)而為其搜索相關(guān)內(nèi)容。Lucene本身自帶有分詞工具,但其工具性能不很優(yōu)秀,而市面上也存在大量的第三方分詞工具,比如盤古分詞就是其中的一種。

      2 實(shí)驗(yàn)部分

      實(shí)驗(yàn)采用的Lucene版本是v2.9.4的.net版本,所用到的盤古分詞采用的是v2.3.1。實(shí)驗(yàn)采用ASP.NET進(jìn)行用戶界面的開發(fā),借鑒了很多知名搜索引擎網(wǎng)站的風(fēng)格特點(diǎn),翻頁(yè)采用的是緩存與不多的IO相結(jié)合的機(jī)制,減少了多用戶同時(shí)訪問時(shí)對(duì)服務(wù)器帶來(lái)的壓力。另外,構(gòu)建的索引文件是對(duì)一個(gè)知名論壇內(nèi)部數(shù)據(jù)進(jìn)行分析所構(gòu)建出來(lái)的。

      本實(shí)驗(yàn)主要的創(chuàng)新點(diǎn)在如下。

      ①用盤古分詞的分析器分析輸入關(guān)鍵字的各個(gè)被切分出(盤古分詞器切分的)的部分的權(quán)重,然后在索引中的Title域和Content域中查找這些權(quán)重不同的部分。

      ②用lucene自帶的Ngram和StandardAnalyzer切分并分析輸入關(guān)鍵字的權(quán)重,分析權(quán)重的具體操作如下:首先切出的詞的最短長(zhǎng)度是輸入關(guān)鍵字的一半,然后如果輸入關(guān)鍵字是三字詞或以上,那么則賦予這個(gè)關(guān)鍵字所有切分出的部分以較高的權(quán)重,且被切出的部分字?jǐn)?shù)越多權(quán)重越大;如果輸入關(guān)鍵字是兩字詞或以下,那么賦予該兩字詞以較高的權(quán)重,切出的單字以較低的權(quán)重(因?yàn)橛脩糨斎氲氖莾勺衷~,說明這個(gè)兩字詞一定是一個(gè)很特殊且很重要的詞,故可以賦予較高的權(quán)重),然后這部分是在Title這個(gè)域中去查詢,加上前面建索引的時(shí)候?qū)itle的權(quán)重用setBoost提高一點(diǎn),通過這兩種方式來(lái)提高標(biāo)題命中所占的權(quán)重。

      ③用①和②中的東西進(jìn)行BooleanQuery,如果關(guān)鍵字的長(zhǎng)度大于4,則二者取或,否則,二者取與,這樣可以既保證準(zhǔn)確性,又保證搜到盡可能多的東西。

      表1所示為搜索“果手”所顯示的前10條記錄。

      表1 實(shí)驗(yàn)效果圖

      從表1中可以發(fā)現(xiàn),站內(nèi)搜索引擎性能基本能夠達(dá)到市面上著名搜索引擎的效果。

      3 結(jié)論

      本文基于Lucene這一全文檢索開發(fā)包,開發(fā)了一款適應(yīng)于具體某個(gè)著名論壇的站內(nèi)搜索引擎,通過整個(gè)開發(fā)過程,發(fā)現(xiàn)盡管Lucene已經(jīng)非常優(yōu)秀,但其也有相對(duì)薄弱的地方,比如自帶的分析器還不夠十分強(qiáng)大,而市面上分詞工具雖然能夠與之結(jié)合,取得不錯(cuò)的性能,但仍有提高的空間,在之后的研究中,可以考慮引入深度學(xué)習(xí)的思想,來(lái)改進(jìn)現(xiàn)有的分詞工具,使最后得到的搜索引擎效果更好。

      參考文獻(xiàn):

      [1]馬志強(qiáng),劉利民,蘇依拉,等.基于Lucene的站內(nèi)搜索引擎研究[J].內(nèi)蒙古工業(yè)大學(xué)學(xué)報(bào),2009,28(1):52-57.

      [2]衛(wèi)權(quán)崗,馬建紅,劉靜.基于Lucene的WEB站內(nèi)搜索引擎的研究與實(shí)現(xiàn)[J].信息通信,2011(5):97-98.

      中圖分類號(hào):TP391.3

      文獻(xiàn)標(biāo)識(shí)碼:A

      文章編號(hào):1003-5168(2016)02-0021-02

      收稿日期:2016-02-03

      作者簡(jiǎn)介:郭肇毅(1987-),男,碩士,助教,研究方向:自然語(yǔ)言處理。

      Research on the Development of the Search Engine Based on Lucene

      Guo Zhaoyi
      (Leshan Normal University,School of Computer Science,Leshan Sichuan 614000)

      Abstract:The performance of the classic search engine is very well nowadays.However,on the search of some special websites’internal information,the result is not very good if adopting directly embed the clas?sic search engine.This paper developed a search engine inside the website for a classic bbs,by taking ad?vantage of lucene,which is afull-text searchtool kit.On the side of analyzing word term,we adopt the ana?lyzer which belongs to the Lucene itself and PanGu Analyzer.The performance of our search engine is quite good by detecting.

      Keywords:Lucene;search engine inside the website;PanGu Analyzer

      五家渠市| 武平县| 台州市| 塘沽区| 海宁市| 九寨沟县| 连平县| 惠来县| 庆阳市| 清徐县| 四平市| 宣恩县| 望都县| 平江县| 洛浦县| 玛沁县| 阿合奇县| 巴马| 西乌珠穆沁旗| 庆元县| 宁安市| 阿尔山市| 怀安县| 临夏县| 三原县| 博白县| 滨州市| 长海县| 小金县| 抚州市| 宁化县| 武安市| 安岳县| 六安市| 松江区| 江城| 克拉玛依市| 云安县| 林芝县| 壤塘县| 横山县|