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

基于.net構(gòu)建海量非結(jié)構(gòu)文本與用戶行為協(xié)同的搜索引擎研究

2018-08-15 10:01:34李德華鞏宇張自鋒楊小龍
軟件工程 2018年5期
關(guān)鍵詞:搜索引擎

李德華 鞏宇 張自鋒 楊小龍

摘 要:從全文檢索的原理出發(fā),介紹搜索引擎和全文檢索的索引原理和機(jī)制,通過實(shí)例講述如何創(chuàng)建lucene索引、如何管理索引。通過索引的目錄結(jié)構(gòu)和內(nèi)容結(jié)構(gòu)的分析,討論了基于.net平臺(tái)如何使用lucene的索引功能創(chuàng)建搜索引擎。目前多數(shù)項(xiàng)目采用Java、C++等為開發(fā)語言,構(gòu)建索引器。本文提出基于.net的索引器的設(shè)計(jì)實(shí)例分析,解決了在.net開發(fā)環(huán)境下,海量非結(jié)構(gòu)文本搜索的問題。結(jié)合用戶行為理論優(yōu)化搜索引擎的用戶體驗(yàn),增加用戶粘性,提高用戶的忠誠度。

關(guān)鍵詞:搜索引擎;索引器;.net;Lucene;用戶行為

中圖分類號(hào):TP315 文獻(xiàn)標(biāo)識(shí)碼:A

Abstract:Starting from the principle of full-text search,this paper introduces the indexing principle and mechanism of search engine and full-text search.It describes how to create a lucene index and how to manage the index through an example.Through the analysis of the index's directory structure and content structure,we discussed how to use lucene's indexing function to create a search engine based on .net platform.At present,most projects use Java,C++,etc.as the development language and build indexers.This paper presents a design example analysis of a net-based indexer and solves the problem of massive unstructured text search under .net development environment.Combining user behavior theory to optimize the user experience of search engines,increase user stickiness and increase user loyalty.

Keywords:search engine;indexer; .net;Lucene;user behavior

1 引言(Introduction)

搜索引擎技術(shù)發(fā)展迅速,各大公司相繼推出自己的產(chǎn)品,包括百度搜索、360搜搜、搜狗搜索、google搜索、bing搜索等,各個(gè)產(chǎn)品之間競爭激烈,因此如何提高用戶的體驗(yàn),保證產(chǎn)品的熱度,在競爭中取得更多的市場分額,這成為了許多專家和學(xué)者研究的焦點(diǎn)。許多專家經(jīng)過研究,提出結(jié)合用戶的行為理論和用戶行為屬性,優(yōu)化數(shù)據(jù)的索引操作(Indexing),把用戶的行為優(yōu)化到搜索引擎索引器中。

2 搜索引擎與用戶行為理論(Search engine and

user behavior theory)

搜索引擎是一項(xiàng)以互聯(lián)網(wǎng)信息為基礎(chǔ),進(jìn)行信息資源的搜集、發(fā)現(xiàn)、理解、提取和處理的系統(tǒng)工程,為用戶提供信息搜索服務(wù),并對(duì)信息進(jìn)行基于多種算法的理解和解析,為用戶提供個(gè)性化的信息服務(wù),是人們獲取信息的工具,搜索引擎已經(jīng)成為人們進(jìn)入Internet門戶。用戶行為理論是指用戶獲取、使用相關(guān)的物品或服務(wù),所產(chǎn)生的各項(xiàng)活動(dòng),用戶對(duì)使用對(duì)象的認(rèn)知和使用,有一個(gè)完整的過程。那么用戶行為理論與搜索引擎研究的結(jié)合,具體可以分為幾個(gè)階段,認(rèn)知、熟悉、試用、使用、忠誠。具體內(nèi)容如表1。

搜索引擎系統(tǒng)一般由搜索器(Crawler)、索引器(Indexer)、檢索器(Searcher)和用戶接口(UI,User Interface)四個(gè)部分組成。本文主要從索引器入手,結(jié)合用戶行為理論和用戶行為參考指標(biāo),進(jìn)行索引的優(yōu)化。

2.1 基于用戶屬性優(yōu)化索引器

索引器對(duì)獲取的網(wǎng)頁進(jìn)行深度分析與挖掘,提取其中重要的信息,包括網(wǎng)頁的標(biāo)題、關(guān)鍵詞、生成時(shí)間等。建立網(wǎng)頁之間的相關(guān)關(guān)系,生成倒排文檔等。在建設(shè)索引器過程中,為了提高用戶的滿意度,將結(jié)合用戶的行為理論,從用戶角度出發(fā),提取更多與用戶相關(guān)的屬性優(yōu)化索引內(nèi)容。其中包括網(wǎng)頁的地址屬性、時(shí)間屬性、人物屬性等。

索引模塊由信息提取模塊、中文分詞模塊、網(wǎng)頁提純模塊和索引模塊組成。按照一定的方法對(duì)網(wǎng)頁文檔進(jìn)行索引,形成索引數(shù)據(jù)庫。首先是提取網(wǎng)頁的純文本頁面,去除其中的HTML頁面,然后采用分詞算法,實(shí)現(xiàn)文本內(nèi)容的切分,提取網(wǎng)頁的關(guān)鍵屬性,其效果如圖1所示。

根據(jù)文本的內(nèi)容,提取其中的關(guān)鍵屬性,結(jié)合用戶的行為理論,優(yōu)化索引器。當(dāng)用戶登錄搜索界面的時(shí)候,系統(tǒng)獲取用戶的IP,進(jìn)而獲得用戶的地址,那么用戶的搜索結(jié)果,會(huì)自動(dòng)根據(jù)地址的匹配,優(yōu)化展示的順序。同時(shí)根據(jù)用戶的瀏覽結(jié)果推測用戶的喜好,進(jìn)而優(yōu)化搜索結(jié)果的排序。

2.2 索引基本結(jié)構(gòu)

以Lucene為例介紹索引的基本結(jié)構(gòu),Lucene作為一個(gè)優(yōu)秀的全文檢索引擎,其系統(tǒng)結(jié)構(gòu)具有強(qiáng)烈的面向?qū)ο筇卣鳌ucene是一個(gè)建立索引的框架,在這個(gè)框架下用戶可以根據(jù)需要進(jìn)行大量的二次開發(fā),提高用戶行為相關(guān)的各種屬性的權(quán)重。Lucene定義了一個(gè)與平臺(tái)無關(guān)的索引文件格式,建立用戶行為相關(guān)的索引文件。

以下將討論Lucene系統(tǒng)的結(jié)構(gòu)組織,并給出系統(tǒng)結(jié)構(gòu)與源碼組織圖,如圖2所示。

說明:Lucene的最初版本是Java,經(jīng)過很多技術(shù)達(dá)人的努力,開放出了的基于.net的索引器。

處理原始網(wǎng)頁的目的是去除網(wǎng)頁中無關(guān)的HTML標(biāo)簽,只取出其中有用的信息。把HtmlParser引用到搜索引擎項(xiàng)目中,效果如圖5所示。

索引器的核心代碼文件ClassIndex.cs,代碼如下:

nSearch.FS.oneHtmDat newDat=nSearch.FS.ClassFSMD.GetOneDat(i);

//生成標(biāo)題

nSearch.DebugShow.ClassDebugShow.WriteLineF("測試newDat:"+newDat.url.ToString()+"信息");

WebRequest geturlcontent=WebRequest.Create(newDat.url);

WebResponse getresponse=geturlcontent.GetResponse();

Stream stream1=getresponse.GetResponseStream();

StreamReader read=new StreamReader(stream1,

Encoding.GetEncoding("gb2312"));

string readcontent=read.ReadToEnd();

Match TitleMatch=Regex.Match(readcontent,"([^<]*)",RegexOptions.IgnoreCase|RegexOptions.Multiline);

string ti=TitleMatch.Groups[1].Value;

read.Dispose();

read.Close();

nSearch.DebugShow.ClassDebugShow.WriteLineF("標(biāo)題"+ti.ToString());

//生成body

System.IO.Stream stream2=new

以上實(shí)現(xiàn)了網(wǎng)頁代碼中標(biāo)題和網(wǎng)頁主體的提取。

3.3 分詞設(shè)計(jì)

中文分詞[8](Chinese Word Segmentation)指的是根據(jù)一定的算法對(duì)文章中的句子、詞語進(jìn)行識(shí)別,切分成多個(gè)詞語單元。分詞就是將連續(xù)的字序列按照一定的規(guī)范重新組合成詞序列的過程。在英文的行文中,句子中詞語之間以空格進(jìn)行區(qū)分,而中文只是字、句和段能通過明顯的分界符來簡單劃界,詞之間是沒有明顯劃分的,雖然英文也同樣存在短語的劃分問題,在詞的劃分方面中文比之英文要復(fù)雜的多、困難的多,另外中文也有一詞多意的現(xiàn)象,因此必須采用多種不停的算法,包括貝葉斯分類、神經(jīng)網(wǎng)絡(luò)識(shí)別等。

在提取了標(biāo)題和網(wǎng)頁內(nèi)容后,必須利用分詞系統(tǒng)進(jìn)行詞語的切分,然后才能用于建立倒排文檔。提供分詞工具的單位非常之多,有知名的研究機(jī)構(gòu)也有互聯(lián)網(wǎng)公司,根據(jù)項(xiàng)目的需要選擇好的開發(fā)工具非常重要,本文根據(jù)需要,選擇了中科院開發(fā)的c#版本分詞系統(tǒng),而放棄了Lucene提供的中文分詞工具[9](全稱是Lucene.Net.Analysis.China.dll),因?yàn)樵谑褂肔ucene的分詞工具過程中,發(fā)現(xiàn)Lucene.Net.Analysis分詞效果一般,并且已經(jīng)被封裝,相比中科院的分詞系統(tǒng)缺乏靈活性,中科院的分詞系統(tǒng)全開源,可以進(jìn)行修改,特別是詞典可以自由進(jìn)行修改。本文采用中科院的分詞系統(tǒng),詞典部分使用的是簡化版本[10]。在分詞的過程中,結(jié)合用戶的行為理論,把用戶相關(guān)的用戶屬性進(jìn)行合理切分,并且作為建立倒排文檔的關(guān)鍵詞。

把分詞系統(tǒng)導(dǎo)入到項(xiàng)目中的nSearch.Index文件中為分詞系統(tǒng)做好準(zhǔn)備,如圖6所示。

reference library

在ClassIndex.cs建立分詞的分析器,代碼如下所示:

//定義分析器

Analyzer KTDAnalyzer=new KTDictSegAnalyzer(wordPath);

//PerFieldAnalyzerWrapper可以對(duì)不同的Field進(jìn)行不同的分析

PerFieldAnalyzerWrapper wrapper=new PerFieldAnalyzerWrapper(KTDAnalyzer);

wrapper.AddAnalyzer("ID",KTDAnalyzer);

wrapper.AddAnalyzer("News_Url",KTDAnalyzer);

wrapper.AddAnalyzer("News_Date",KTDAnalyzer);

//創(chuàng)建IndexWriter

writer=new IndexWriter(indexDirectory,wrapper,true);

至此建立索引的準(zhǔn)備工作基本完成。

3.4 索引創(chuàng)建

當(dāng)所有的原始網(wǎng)頁都處理好之后,就可以建立相應(yīng)的索引,本實(shí)例為索引庫建立了一個(gè)庫E:\DATATEST\Index,用來保存全部的索引文件。索引建立流程[11]如圖7所示。

首先將Lucene導(dǎo)入項(xiàng)目,效果如圖8所示。

在引用了Lucene后在ClassIndex.cs中即可建立document,索引建立后會(huì)寫到硬盤中,具體代碼如下:

Lucene.Net.Documents.Document doc=new Lucene.Net.Documents.Document();

doc.Add(new Field("ID",i.ToString() ?? "",F(xiàn)ield.Store.YES,F(xiàn)ield.Index.UN_TOKENIZED));

doc.Add(new Field("News_Title",ti,F(xiàn)ield.Store.YES,F(xiàn)ield.Index.TOKENIZED,F(xiàn)ield.TermVector.NO));//標(biāo)題A

doc.Add(new Field("News_Body",body,F(xiàn)ield.Store.YES,F(xiàn)ield.Index.TOKENIZED,F(xiàn)ield.TermVector.NO));//簡要顯示C

doc.Add(new Field("News_Url",newDat.url,F(xiàn)ield.Store.YES,F(xiàn)ield.Index.NO,F(xiàn)ield.TermVector.NO));//url

doc.Add(new Field("News_Date",time,F(xiàn)ield.Store.YES,F(xiàn)ield.Index.NO,F(xiàn)ield.TermVector.NO));//

以上就是一個(gè)索引建立的完整過程。

隨著信息技術(shù)的發(fā)展和計(jì)算機(jī)深入廣泛的應(yīng)用,人們對(duì)全文檢索的動(dòng)態(tài)性要求變得十分的迫切,并且進(jìn)一步還要求根據(jù)用戶的需求進(jìn)行個(gè)性化。應(yīng)該說是全文索引的動(dòng)態(tài)性是未來的一個(gè)必然的趨勢(shì)。實(shí)現(xiàn)索引的動(dòng)態(tài)更新的一個(gè)很大的難題在于更新時(shí)間復(fù)雜度非線性。動(dòng)態(tài)全文數(shù)據(jù)庫索引的創(chuàng)建效率非常高。由于倒排表模型在索引的創(chuàng)建效率上高于其他的模型,且應(yīng)用也較為成熟,因此本設(shè)計(jì)主要也是使用倒排表模型的動(dòng)態(tài)索引創(chuàng)建算法。在本設(shè)計(jì)中采用了一種準(zhǔn)動(dòng)態(tài)全文索引的更新的策略。

4 結(jié)論(Conclusion)

研究了全文檢索索引器中涉及的幾個(gè)關(guān)鍵技術(shù),其中有中文分詞技術(shù),索引結(jié)構(gòu)形式及其工作原理。建立了一個(gè)基于中文檢索的索引器系統(tǒng)。在本文中系統(tǒng)的討論了全文檢索索引庫所涉及的各種技術(shù)。在融合用戶行為理論的要求下,必須對(duì)系統(tǒng)進(jìn)行的各個(gè)模塊進(jìn)行深度優(yōu)化,提升用戶的滿意度。在實(shí)際的應(yīng)用中內(nèi)存分配、分頁管理、文件系統(tǒng)管理、虛擬內(nèi)存技術(shù)、內(nèi)存映射、cache管理等各種相關(guān)的技術(shù)都提高索引創(chuàng)建和更新的效率[12]。如何在這些方面對(duì)索引庫進(jìn)行進(jìn)一步的優(yōu)化,將是未來研究的工作和挑戰(zhàn)。利用本文設(shè)計(jì)的索引器,可以應(yīng)用于海量文本數(shù)據(jù)庫中,建立資料的索引,提供快速的查找功能。

參考文獻(xiàn)(References)

[1] 賈捷.基于MVC+Lucene.Net框架下的垂直搜索引擎研究與設(shè)計(jì)[D].吉林大學(xué),2015.

[2] 孫藝珍,季小迪,張京濤.基于.Net的全文搜索引擎設(shè)計(jì)與實(shí)現(xiàn)[J].西安科技大學(xué)學(xué)報(bào),2014,34(06):701-706.

[3] 王莉.基于ASP.NET搜索引擎模型的實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2011(11):199-201;205.

[4] 張文生,孫永忠.ASP.NET網(wǎng)站搜索引擎優(yōu)化方法研究[J].信息技術(shù),2010,34(03):146-148.

[5] 蔡建超,郭一平,王亮.基于Lucene.Net校園網(wǎng)搜索引擎的設(shè)計(jì)與實(shí)現(xiàn)[U].計(jì)算機(jī)技術(shù)與發(fā)展,2006(11):73-80.

[6] 陰愛英.基于線程并行計(jì)算的Apriori算法[J].西安科技大學(xué)學(xué)報(bào),2014,34(1):71-74.

[7] 戚艷軍,龔尚福.用戶角色的XML動(dòng)態(tài)加密方法研究[J].西安科技大學(xué)學(xué)報(bào),2012,32(1):101-106.

[8] 劉磊安,符志強(qiáng).基于Lucene.net網(wǎng)絡(luò)爬蟲的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與設(shè)計(jì),2010,6(8):1870-1878.

[9] 馬俊.基于正則表達(dá)式技術(shù)的信息搜集引擎應(yīng)用研究[D].成都:電子科技大學(xué),2006.

[10] Otis Gospodnetic,Erik Hatcher.Lucene in action[M]Beijing: Publishing House of Electronics Industry,2007:100-105.

[11] 武毅.基于Lucene .Net的全文檢索研究與應(yīng)用[D].長沙:國防科學(xué)技術(shù)大學(xué),2011.

[12] Chih-Hao Tasi.MMSEG:a word identification system formandarin Chinese text based on two variants of the maximum matching algorithm[OL].http://technology.chtsai.org/mmseg/,2013.

作者簡介:

李德華(1985-),男,碩士,工程師.研究領(lǐng)域:電網(wǎng)調(diào)峰調(diào)頻技術(shù),企業(yè)信息化.

鞏 宇(1982-),男,碩士,工程師.研究領(lǐng)域:電網(wǎng)調(diào)峰調(diào)頻技術(shù),企業(yè)信息化.

張自鋒(1988-),男,碩士,工程師.研究領(lǐng)域:信息技術(shù)情報(bào),企業(yè)信息化.

楊小龍(1982-),男,碩士,工程師.研究領(lǐng)域:電網(wǎng)調(diào)峰調(diào)頻技術(shù),企業(yè)信息化.

猜你喜歡
搜索引擎
Chrome 99 Canary恢復(fù)可移除預(yù)置搜索引擎選項(xiàng)
網(wǎng)絡(luò)搜索引擎亟待規(guī)范
Nutch搜索引擎在網(wǎng)絡(luò)輿情管控中的應(yīng)用
基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
廣告主與搜索引擎的雙向博弈分析
基于Lucene搜索引擎的研究
知識(shí)漫畫
一種自反饋式元搜索系統(tǒng)的設(shè)計(jì)
搜索引擎,不止有百度與谷歌
搜索,也要“深搜熟濾”
主站蜘蛛池模板: 色屁屁一区二区三区视频国产| 三上悠亚精品二区在线观看| 国产精品男人的天堂| 国产精品99久久久久久董美香| 操国产美女| 久久综合伊人 六十路| 国产福利微拍精品一区二区| 国产va视频| 72种姿势欧美久久久久大黄蕉| 午夜小视频在线| 91精品久久久无码中文字幕vr| 风韵丰满熟妇啪啪区老熟熟女| 亚洲欧美日韩高清综合678| 国产地址二永久伊甸园| 嫩草影院在线观看精品视频| 欧美午夜在线播放| 四虎永久免费地址| 一级一级特黄女人精品毛片| 国产在线观看人成激情视频| 久久青草精品一区二区三区| 天堂va亚洲va欧美va国产 | 成人精品免费视频| 四虎影视无码永久免费观看| 国产成人欧美| 亚洲精品图区| 欧美中文字幕在线播放| Aⅴ无码专区在线观看| www.狠狠| 性欧美久久| 成AV人片一区二区三区久久| 手机永久AV在线播放| 伦伦影院精品一区| 久久久久人妻一区精品色奶水| 亚洲国产精品无码久久一线| 久久一本精品久久久ー99| 少妇精品在线| 久久一本精品久久久ー99| 伊人成人在线| 成人综合久久综合| 亚洲精品手机在线| 在线观看国产网址你懂的| 91在线播放免费不卡无毒| 亚洲91在线精品| 免费国产高清精品一区在线| 久久久精品国产SM调教网站| 国产激爽大片高清在线观看| 日本不卡在线| 亚洲AⅤ波多系列中文字幕| 在线国产91| 一级毛片无毒不卡直接观看 | 亚洲中文无码av永久伊人| 国产成人久久综合777777麻豆| 色婷婷亚洲综合五月| 波多野结衣亚洲一区| 精品视频福利| 亚洲第一在线播放| 国产精品免费p区| 熟女成人国产精品视频| julia中文字幕久久亚洲| 91久久精品国产| 日本午夜三级| 免费Aⅴ片在线观看蜜芽Tⅴ | 国产综合色在线视频播放线视| 欧美亚洲香蕉| 欧美亚洲一区二区三区在线| 四虎永久在线| 国国产a国产片免费麻豆| 91亚洲免费| 无码高潮喷水专区久久| 成人在线不卡| 久久免费精品琪琪| 色婷婷综合在线| 日韩a级毛片| 国产精品手机在线播放| 在线观看国产网址你懂的| 国产区免费| 色九九视频| 国产毛片高清一级国语| 国产又色又爽又黄| 久久semm亚洲国产| 91小视频在线观看免费版高清| 国产免费观看av大片的网站|