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

淺析全文搜索引擎solr

2021-12-08 12:23:52李建平
數字通信世界 2021年11期
關鍵詞:搜索引擎

李建平,簡 晨

(國家無線電監測中心陜西監測站,陜西 西安 710200)

1 Luence全文搜索框架

Lucene是一個開放源代碼的全文檢索工具包但不是一個完整搜索引擎,僅提供了構建搜索引擎的基礎架構,我們可以通過Lucene官網站下載該工具包,然后利用這個基礎架構快速地開發出搜索引擎。Lucene的原作者是Doug Cutting,一位資深的全文檢索專家,最初將Lucene發表在自己的個人主頁上,2001年將Lucene捐獻給Apache,使得Lucene成為Jakarta的一個子項目[1]。

Luence的出現使得全文搜索得到了極大的發展,開發者不僅可以根據Luence的API開發搭建獨立的搜索引擎,而且還能夠將它集成到各種系統軟件以及商業軟件中,著名的商業軟件Eclipse的幫助文檔的搜索就是采用了Luence的API。

Luence作為全文搜索引擎,具有以下優勢[2]:

⊙ Luence的索引文件是以8位字節為基礎的,使得可以兼容各種不同的平臺。

⊙ 在傳統的全文檢索引擎倒排索引的基礎上,實現了分塊索引,提升了索引速度。

⊙ 優秀的面向對象的系統架構,降低了開發人員的學習難度。

2 solr概述

在上文中介紹了Lucence,開發人員可以利用API擴展到自己的系統軟件中,但是這對于非專業的開發人員來說,要通過Lucence API來進行開發,難度還是很大,基于此,solr全文搜索引擎[3]應運而生,它很好地解決這個問題,使得Lucence在全文搜索領域得到進一步的發展。

從圖1可以看出,solr是在Lucence java開源搜索包的基礎上實現的一個獨立的全文搜索引擎,可以獨立運行在Servelet容器中。solr對用戶和開發者提供了兩種訪問接口,一種是HTTP訪問接口,通過solr自帶的簡單的Web界面進行交互,適合比較簡單應用,另一種是API接口,通過這些API開發者可以根據用戶需求定制搜索功能開發。

圖1 solr全文搜索架構

3 solr安裝配置

3.1 solr安裝

solr配置使用過程[4]如下,建議JDK8.0,Tomcat7.0以上,solr選擇4.5版本以上。

①按照要求安裝JDK,配置成功環境變量;

②下載并且成功安裝Tomcat;

③解壓solr4.5,將solr.war文件放到容器(這里指Tomcat)的Webapps文件夾下面,重新啟動容器,則會自動解壓安裝solr應用;

④在解壓出來的s ol r文件夾下建立一個名為conf 的文件夾,并且將下載的solr的multicore文件夾拷貝到conf文件夾下;

⑤重啟tomcat容器,輸入http://localhost:8080/ solr 出現solr界面表示已經成功安裝solr。

3.2 solr配置

成功安裝solr之后,接下來要對solr的配置文件進行詳細配置,以滿足系統的需求。需要對solr的三個文件進行配置,分別為solr.xml、schema.xml 和solrconf ig.xml,下面分別詳細介紹這三個配置文件[5]。

solr.xml文件位于solr的conf 文件夾的主目錄下,主要是配置solr多core的功能,可以使得多core 獨立運行與solr服務器中,每個核都有獨立的配置文件。solr.xml文件的格式如表1所示。

表1 sorl.xml格式

上面的配置表示,該服務器中有三個獨立的core,分別為core0、core1和core2,并且它們的實例目錄是solr.xml所在目錄下的core0、core1和core2 目錄。

schema.xml配置文件主要是設定文檔的字段(field)以及字段查詢時的處理方式(filedtype),表2和表3分別描述了filed和filedtype這兩種元素。

表2 filed元素

表3 fieldtype元素

表2表示了文檔字段的設定格式,其中假設了三個字段,分別為id、name和size,中的type字段表明了該字段的類型,這些類型會在filetype中定義。Indexed表示是否被索引,stored表示該字段是否被存儲,required表示該字段是否是必須字段。

表3定義了string、boolean和complex三種類型,這些類型在上面的field定義中用到了,表示字段處理的類型。class表示類型處理的類,其中analyzer設置使用哪一種分詞方法。

solrconf ig.xml配置文件主要用于對solr服務器的系統參數進行配置。由于參數很多,所以不一一列舉介紹,只對比較基本的進行介紹。

用來控制合并多個索引段。

4 solr訪問接口介紹

4.1 solr的HTTP查詢語法介紹

表4 solr常用語法

據這些語法,可以通過http來進行簡單的solr查詢操作。這里只列出了一些常用的語法,其他語法可以自行查找。

4.2 solr客戶端solrj介紹

用戶通過solrj可以實現訪問solr的服務[6],下面描述實現訪問的過程。

(1)創建鏈接solr服務器的句柄,配置相關參數。

String URL=http://127.0.0.1:8080/solr/core0;

Ht tpSol rServer sol rServer=new Ht tpSol r Server(URL);

solrServer.setSoTimeout(3000);

solrServer.setConnectionTimeout(1000);

solrServer.setFollowRedirects(false);

solrServer.setMaxRetries(1);

(2)清空solr索引服務器的索引。

solrServer.deleteByQuery(“:*”); solrServer.commit();

(3)添加索引。

sol rInputDocument doc1=new Sol rInput Document();

doc1.addField(“id”,”1”);

doc1.addField(“content”,”中國無線電事業,衛星通信系統”);

Collection docs = new ArrayList();

docs.add(doc1);

solrServer.add(docs);

solrServer.optimize();

solrServer.commit();

(4)搜索。

SolrQuery query1 = new SolrQuery();

query1.setQuery(“content:中國無線電”);

QueryResponse rsp=solrServer.query(query);

(5)關閉引用句柄。

solrServer.shutdown();

上面的步驟是使用solrj的最基本的方式,如果想要獲得更復雜的功能,可以對基本的API進行封裝定制相應的功能。

5 solr中文分詞

solr服務器自身對于分詞的處理能力不太理想,因此涉及到中文分詞的應用中,都需要對solr進行額外的中文分詞器的配置[7]。solr常用的分詞器有:ik中文分詞[8]、庖丁解牛[9]和mmseg4j[10]等。下面以ik中文分詞為例,來進行配置過程的介紹。

(1)在網上下載IK Analyzer 2012FF_hf1包,并且解壓。

(2)將IKAnalyzer2012FF_u1.jar包復制到tomcat /Webapps/solr/Web-INF/lib下面,并且在tomcat/Webapps/solr/Web-INF下面建立文件夾classes,再將IKAnalyzer.cfg.xml、stopword.dic 復制到classes文件夾下。

(3)修改tomcat/Webapps/solr/conf/multicore/ core0/conf/schema.xml,添加如表5配置;

表5 ik中文分詞配置

(4)對需要用ik分詞的字段的type修改為以上定義的name值type_ik。

(5)配置完成之后,重啟tomcat,即完成了分詞的配置。

6 solr全文搜索的設計實

圖2是solr搜索模塊的結構圖,其中索引服務與input模塊關聯,處理文檔建立索引入庫的工作;配置分詞指的是solr配置文件的配置和中文分詞的實現;搜索服務與search模塊關聯,處理用戶前臺搜索的工作,其中索引服務和搜索服務都是在solrAPI 的基礎上進行二次封裝,可以統稱為NEW API模塊,因此,可以按照功能將solr模塊分為配置文件的配置、中文分詞的實現和NEW API這三個模塊。下面分別介紹這三個模塊的實現。

圖2 solr全文搜索系統示意圖

配置文件包括schema.xml、solrconfig.xml和solr.xml。其中,solrconf ig.xml和solr.xml文件的配置方法參考3.2小節。

schema.xml文件的具體內容見表6。從表6中可以看出,需要兩個filetype: string和text。其中,text指明該類型需要用中文分詞進行分詞處理; field有兩個:filePath和content,類型分別為string 和text。filePath表示文檔的路徑,content表示文檔的全文內容,全文搜索在這個字段默認進行。

表6 schema.xml格式

中文分詞的配置實現過程參考上文第5節內容。

表7是INSEART API 對外接口方法列表,其中,initailize方法是進行初始化配置,連接solr服務器,成功返回TRUE,失敗返回FALSE;addIndex方法是添加建立索引,方法執行成功返回TRUE,失敗返回FALSE;searchDocuments 方法是查詢滿足條件的文檔,返回文檔集合;deleteIndex方法是刪除制定的索引,刪除成功返回TRUE,失敗返回FALSE。

表7 INSEART API對外接口方法表

7 結束語

本文詳細介紹了全文搜索引擎solr的配置以及設計實現,sorl全文搜索的最大的優勢在于可以按照用戶給出的關鍵詞自動在文檔庫中搜索所有的文檔內容,給出含有該關鍵詞的文檔,缺點是由于文檔的內容比較多所以搜索的速度比較慢,會影響用戶體驗。下一步的工作是,研究如何能夠提高sorl的搜索效率,進一步改善用戶體驗。

猜你喜歡
搜索引擎
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
一種自反饋式元搜索系統的設計
搜索引擎,不止有百度與谷歌
搜索,也要“深搜熟濾”
主站蜘蛛池模板: 国产亚洲现在一区二区中文| 亚洲三级电影在线播放 | 蜜臀av性久久久久蜜臀aⅴ麻豆| 久久一本精品久久久ー99| 亚洲第一香蕉视频| 亚洲成a人片在线观看88| 在线欧美日韩| 欧美激情视频一区| 四虎国产永久在线观看| 国产天天色| 试看120秒男女啪啪免费| 久久久久国产精品嫩草影院| 国产丝袜一区二区三区视频免下载| 亚洲日本精品一区二区| 91黄视频在线观看| 激情乱人伦| 国产精品va免费视频| 99一级毛片| 老色鬼久久亚洲AV综合| 99无码中文字幕视频| 欧美啪啪一区| 国产喷水视频| 在线观看精品自拍视频| 免费99精品国产自在现线| 国产资源免费观看| 无码中文字幕精品推荐| 激情爆乳一区二区| 久久综合九九亚洲一区| AⅤ色综合久久天堂AV色综合| 夜夜操国产| 国产91熟女高潮一区二区| 看你懂的巨臀中文字幕一区二区| 亚洲伊人久久精品影院| 欧美乱妇高清无乱码免费| 尤物午夜福利视频| 亚洲国产高清精品线久久| 日本a∨在线观看| 国产欧美日韩视频一区二区三区| 无码高潮喷水专区久久| 天堂亚洲网| 亚洲成人一区二区三区| 国产在线观看91精品亚瑟| 国产麻豆另类AV| 欧美国产日韩在线| 99热这里只有免费国产精品| 婷婷综合亚洲| 国产精品密蕾丝视频| 国产成人亚洲无吗淙合青草| 亚洲乱伦视频| www中文字幕在线观看| 福利视频久久| 欧美激情成人网| 99视频在线免费| 91美女在线| 亚洲成a人片| 久久综合干| 九九视频免费在线观看| 99一级毛片| 91免费国产在线观看尤物| 国产成人8x视频一区二区| 中文字幕久久亚洲一区| 亚洲精品va| 亚洲中文久久精品无玛| 国产男女免费视频| jizz国产在线| 小蝌蚪亚洲精品国产| 亚洲日本韩在线观看| 亚洲国产欧美中日韩成人综合视频| 日韩在线播放中文字幕| 国产成人亚洲无码淙合青草| 在线无码九区| 色偷偷一区| 波多野结衣中文字幕久久| 欧美不卡二区| 精品国产一区91在线| 在线观看无码a∨| 波多野结衣在线se| 香蕉精品在线| 伊人婷婷色香五月综合缴缴情| 71pao成人国产永久免费视频| 99re免费视频| 精品欧美一区二区三区久久久|