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

基于Solr的分布式鐵路科技資源整合與檢索實踐

2014-08-01 15:08:13李雪山
鐵路計算機應用 2014年7期
關鍵詞:數據庫科技信息

李雪山

(中國鐵道科學研究院 科學技術信息研究所,北京 100081)

基于Solr的分布式鐵路科技資源整合與檢索實踐

李雪山

(中國鐵道科學研究院 科學技術信息研究所,北京 100081)

根據鐵路科技信用與能力評價的實際需要,針對鐵路科技資源存儲、利用現狀,基于Solr開源搜索平臺,提出了分布式鐵路科技資源整合與檢索解決方案,設計了檢索框架,闡述了具體操作方法,進行了實際應用。

Solr;分布式;資源整合

鐵路科技信用與能力評價,是指按規范的指標體系和科學的評估方法,對被評價對象(如單位和個人)的科研行為、科研成果等全面了解、分析的基礎上,作出有關其科研能力、信用可靠性、安全性程度的估量。科技信用與能力評價有利于規范科研行為、避免科研失信、提高科研效率,降低科技投入風險。

鐵路科研行為、成果信息廣泛存在于被評價對象科研活動中,如立項申報、投標、課題實施、結題、科技獎勵、論文(專著)發表、專利申請授權及成果轉化情況等。而這些科研活動信息分散于不同的系統或網絡應用中,存在標準不統一、數據結構不統一、異構平臺和異構應用等問題。而要對被評價對象的科技信用和能力作出科學、全面的評價,則應首先對以上科技資源進行有效整合、充分利用。

1 資源整合方案選型

數據資源整合應基于已有系統或應用,在不影響其正常運行的基礎上,對其部分或全部數據進行抽取和有效利用。目前,搜索引擎技術不僅可以使得用戶快速獲得信息,且已成為數據資源整合的一個重要技術手段。基于搜索引擎的數據整合方案已被越來越多的企業或技術人員研究應用。經筆者調研,其主要應用模式有以下幾種:

(1)企業自己開發索引工具和軟件,對信息進行的索引、檢索,達到數據整合的目的。此模式存在軟件源碼、接口不開放,功能拓展和推廣應用困難。

(2)基于Lucene封裝實現信息索引。該模式在Lucene前期,其配套應用(Compass、Solr)還未推出前,有著較廣泛的應用,但存在工作量大、擴展性差、實際應用困難等問題。

(3)調用Google、百度的API實現信息索引。該模式對第三方搜索引擎具有較強依賴性,無法滿足后期業務擴展需要。

(4)基于Compass+Lucene實現信息索引。該模式適合對數據庫驅動的應用數據進行索引,是替代傳統的like ‘%expression%’來實現對varchar或clob等字段的索引。該模式對于實現站內搜索是一種值得采納的方案,但在分布式處理、接口封裝上尚需要用戶進行一定程度的封裝。

(5)基于Solr實現信息索引。該模式提供了較為完備的解決方案,封裝及擴展性均較好。

綜上,基于鐵路科技信用與能力評價的現狀,探究利用Solr對異構異源數據進行整合,提出了實現方法,并進行了實踐。

2 Solr搜索引擎

2.1 Solr簡介

Solr是Apache軟件基金會的一個開源子項目,它是一個高性能的、采用Java5開發的、基于Lucene全文搜索庫的企業搜索服務器。提供了強大的全文檢索、高亮顯示、分面搜索、動態集群、數據庫整合、分布式檢索、索引復制及豐富的文檔(如Word,PDF等)的處理和地理信息搜索等功能[1],并提供了完善的功能管理界面。

2.2 Solr與Lucene

Lucene也是Apache軟件基金會的一個子項目,是一個開放源代碼的全文檢索引擎工具包,它本身不是一個完整的搜索程序,只是搜索程序的核心和搜索模塊,可嵌入到各種應用中實現針對應用的索引、檢索功能[2]。

Solr是基于Lucene,并對Lucene的功能進行封裝和擴展后而形成的企業級搜索引擎。Solr實現了Lucene服務器化。Solr 和Lucene的區別主要為:Lucene本質上是搜索庫,需要進行二次開發才能集成到具體的應用中,而Solr是基于Lucene的獨立應用程序;Lucene專注于搜索底層的建設,而Solr專注于企業應用,不僅封裝了Lucene接口,實現了索引庫的讀寫,還可進行動態集群、數據庫整合、分布式檢索、索引復制等企業級應用操作。即,Solr是Lucene 面向企業搜索應用的擴展[3]。

2.3 Solr特性[4]

(1)易用性。Solr簡化了Lucene具體應用,使用戶無需或簡單編寫代碼就可實現其企業級應用。利用Solr,用戶在客戶端用POST方法向服務器發送請求,即可完成索引;Solr支持從數據庫、Web頁面和文本中直接導入數據,進行索引;Solr還可根據需要修改配置文件,完成字段定義、是否被索引、是否存儲、中文分詞器、默認檢索字段、檢索方法等配置工作。

(2)異構性。Solr的一個突出特點是提供了對異構系統的數據整合方案,在動態集群、分布檢索、索引復制、檢索結果排序、查重、顯示等方面均提供了完整的解決方法。

(3)易集成性。Solr是一個Web應用,它支持PHP、Java、Perl、C#等多種客戶端調用其搜索和索引。客戶端和服務端之間基于HTTP協議進行通信,客戶端可以創建HTTP請求,然后解析response成各語言能識別的對象或結果,這樣實現了Solr與多系統、多語言環境的集成。

3 檢索架構設計

目前,鐵路科技信用與能力評價所需數據分布在不同系統或應用中。如科研立項、實施及結題信息存在于科研系統,招投標信息存在于科技招標系統,鐵路科技成果鑒定、評審信息存在于成果管理系統中,獎勵信息則來源于國家科技部及鐵道學會網站,專利信息則來源于國家知識產權網站等。基于以上實際,筆者設計了檢索框架。該框架主要分為索引庫建立與檢索兩部分,簡述如下。

3.1 索引建立

如圖1所示,本文根據數據來源不同,采取了不同的數據采集、整合策略。因科研管理、招投標、成果管理等系統為筆者所在課題組開發,擁有系統源代碼,并負責運營維護,在建立索引時,課題組在這些系統上部署了Solr索引模塊,實現了數據整合。具體過程如下:

(1)分析各系統要采集的數據信息(數據表及字段),在Schema.xml對采集字段進行元數據定義;

圖1 分布式索引檢索框架

(2)基于各系統業務數據庫,對已有數據進行批量導入,建立分布式異構索引庫;

(3)基于元數據定義,修改各業務系統相關代碼,對數據的增、刪、改等操作增加了Solr索引功能,實現了索引數據與具體業務數據的同步。

對于國家獎、鐵道學會獎、知識產權等非課題組管理的網站,利用Web-Harvest在通過對目標網站網頁結構進行分析的基礎上,提取了數據,并通過Solr建立了索引,最終形成了分布式異構索引數據庫群。

3.2 數據檢索

Solr通過分布( Distributed)和復制( Replication)策略,實現了分布式數據的檢索[5]。Solr分布式檢索特性可將分布在多個服務器上的資源進行分別索引,再利用片(Shards)技術,將相同的檢索請求同時發送到集群內任意服務器進行檢索,最后將整合后的檢索結果返回到最初的調用服務器。此種特性使得分布式異構資源整合變得較為容易實現。檢索過程如圖2所示。

圖2 數據檢索流程

其中,Solr跨庫搜索器,主要接受用戶搜索查詢請求,并將用戶請求轉換為Solr內部語法格式后,向分布式shards發送查詢請求,并對查詢結果進行排序、查重、過濾后返回給用戶。Solr跨庫搜索器實現較為簡單,可部署于任意服務器上,其示例代碼如下:http://localhost/solr/selec t?shards=172.20.0.62:8083/solr, 172.20.0.65:8083/ solr&q=鐵路&facet=true&facet.field=name。其中,172.20.0.62:8083/solr與172.20.0.65:8083/solr為兩個分布式索引服務器地址。

4 檢索實現

4.1 Solr安裝配置

Solr的運行,需先安裝在JDK和Servlet 容器(如tomcat),然后下載Solr安裝文件(本文使用4.4版本),解壓后拷貝dist目錄下的solr-4.4.0.war文件到tomcat 的webapps 目錄下, 并重命名為solr.war。設定工作目錄為D:solrhome solr,并將example下multicore中配置文件拷貝到其中。打開webapps下Solr網站中的web.xml文件,在其中加入:

solr/home

D: solrhomesolr

java.lang.String

以指定工作目錄的位置。然后訪問http:// localhost:8080/solr出現Solr的系統管理界面,則配置成功。

4.2 中文分詞配置

英文以空格作為分隔符,而中文詞語之間沒有分隔,在建立中文搜索引擎時,首先需要對中文進行切詞。目前,此類工具較多如IKAnalyer、Paoding、mmseg4j等。本文使用mseg4j-1.9.1進行了切詞。將mseg4j下載并解壓后將其dist下的jar包拷貝到tomcatwebappssolrWEB-INFlib目錄中。最后,修改Schema.xml文檔中的內容,在標簽中添加如下內容:

實現了對中文分詞器的配置。

4.3 元數據定義

在數據索引前,需先在Schema.xml文件中對要索引的字段進行定義,具體包括字段(fields),唯一標識符(uniqueKey),默認檢索字段(defaultSearchField),默認搜索設置(solrQueryParser)等。代碼片段如下:

//唯一標示符設置

name

其中節點具體定義了要索引字段的配置,name是字段名、type是分詞器,indexed是否被索引,stored是否存儲。copyField是將所有的字段復制到一個字段中,以便進行統一檢索,solrQueryParser配置了默認檢索參數之間的邏輯關系,可為OR,也可為AND。

4.4 數據批量導入與索引庫建立

對已有的數據,如鐵路科研立項、結題、成果鑒定等數據,本文利用DataImportHandler進行了直接數據庫導入。其在Solr的主要配置如下:

在solrconfig.xml文件中加入:

class="org.apache.solr.handler.dataimport. DataImportHandler">

此步啟用了批量數據導入模塊,并指定了數據庫配置文件db-data-config.xml。

在db-data-config.xml中加入:

url="jdbc:sqlserver://localhost:1433;Datab aseName=bky"

user="sa" password="sa"/>配置了數據庫名,訪問用戶名密碼等信息。

在db-data-config.xml中加入:

query="select ID,PROJECT_NAME,MAIN _CONTENT from PROJECT"

deltaImportQuery="select from PROJECT where ID ='$ {dataimporter.delta.ID}'" >

此部分為執行導入配置了具體數據表及字段。deltaQuery 和deltaImportQuery 為執行增量導入時的數據庫查詢語句,選擇CHANGEDATE的時間大于上次執行導入的時間的條目,實現了增量導入,避免了全部導入重復內容浪費的時間。Query未執行完全導入時執行的數據庫查詢語句。

4.5 查詢、添加與刪除索引

Solr 提供了基于Java的API,即SolrJ。SolrJ對HTTP 鏈接和XML 命令進行了封裝,為使用Java代碼處理Solr更加方便,簡化了索引創建、搜索、排序和分類等操作。查詢主要代碼如下:

HttpSolrServer solrServer= new HttpSolr-Server(URL);

SolrQuery query = new SolrQuery();

query.setQuery(":");

QueryResponse rsp = solrServer.query( query );

SolrDocumentList docs = rsp.getResults();for ( Object obj:docs) {

SolrDocument doc=(SolrDocument)obj;

String name = (String ) doc.getFieldValue ("name");

}

通過SolrJ需先連接HttpSolrServer,定義SolrQuery,添加查詢語句setQuery(),然后通過QueryResponse 類型的對象讀出查詢結果;添加索引時,先創建SolrInputDocument對象,通過addField() 方法添加相應內容,最后執行add()以及commit()即可;在建立連接的基礎上執行deleteByQuery () 方法,并commit()即可刪除索引。

5 結束語

Solr作為一種開源的搜索引擎,具有功能強大、易實施、易應用,靈活性、可擴展性強等優點,為數據資源整合、索引、檢索提供了一套較為簡單的模式。將其應用在網站索引、檢索及數據資源集成檢索等系統中具有明顯優勢,前景廣闊。本文根據實際需求,基于Solr提出了分布式鐵路科技資源整合與檢索解決方案,設計了系統框架,并進行了實踐,取得了較好的效果。

[1] Apache Solr[EB/OL]. http://lucene.apache.org/solr/,2014-01-07.

[2] 管建和,甘劍峰.基于Lucene全文檢索引擎的應用研究與實現[J].計算機工程與設計,2007(1):489-491.

[3] netoearth. Apache Solr 介紹[EB/OL]. http://blog.netoearth. com/html/201104/apache-solr-介紹.htm,2014-1-4.

[4] 張建勇,廖 鳳,劉小兵,陶超全.集群與負載均衡技術在國際科學引文數據庫服務系統中的應用研究[J].現代圖書情報技術,2010(6):25.

[5] 馬鳳娟,吳鵬飛.基于solr的異構資源集成檢索框架設計與實現[J].現代情報,2012(8):133-135.

責任編輯 徐侃春

Solr-based practice and retrieval of distributed railway technology resource integration

LI Xueshan
( Scientif i c and Technical Information Research Institute, China Academy of Railway Sciences, Beijing 100081, China )

According to the actual needs concerning the credit and capability evaluation of railway technology and the status quo with regard to the storage and utilization of railway technology resources, this paper, based on the solr open-source information retrieval platform, proposed the distributed solution to the railway technology resource integration and retrieval, designed the systematic framework, elaborated the specific operation methods and applied them in practice.

Solr; distributed solution; resource integration

U29∶TP39

A

1005-8451(2014)07-0039-05

2013-12-19

中國鐵路總公司科技研究開發計劃項目(2011Z011-A)。

李雪山 ,副研究員。

猜你喜歡
數據庫科技信息
科技助我來看云
科技在線
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
數據庫
財經(2017年2期)2017-03-10 14:35:35
科技在線
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
科技在線
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: 国产精品浪潮Av| 99久久精品国产麻豆婷婷| 久996视频精品免费观看| 免费在线一区| 伊人久久福利中文字幕| 色婷婷视频在线| 日韩午夜片| 亚洲综合亚洲国产尤物| 青青热久麻豆精品视频在线观看| 日韩在线影院| 精品偷拍一区二区| 免费国产在线精品一区| 99精品在线视频观看| 欧美在线视频a| 免费无码AV片在线观看国产| 成人国产小视频| 成人毛片在线播放| 亚洲精品国产综合99| 欧美一级专区免费大片| 免费一看一级毛片| 国产精品一区在线观看你懂的| 亚洲午夜福利精品无码| 亚洲欧美成aⅴ人在线观看| 婷婷午夜影院| 婷婷六月综合网| 老司机精品一区在线视频| 三级国产在线观看| 色偷偷综合网| a天堂视频| 秋霞一区二区三区| 亚洲欧洲日韩久久狠狠爱| 永久免费精品视频| 毛片国产精品完整版| 综合成人国产| 欧美a在线看| 丰满人妻一区二区三区视频| 中文字幕伦视频| 国内老司机精品视频在线播出| 狠狠色综合网| 国产免费怡红院视频| 亚洲一区网站| 久久综合成人| 黑人巨大精品欧美一区二区区| 日日摸夜夜爽无码| 午夜小视频在线| 亚洲精品无码日韩国产不卡| 欧美中文字幕第一页线路一| 国产日韩欧美在线视频免费观看| 永久免费无码日韩视频| 亚洲无码不卡网| 高潮毛片免费观看| 久久黄色毛片| 97视频免费看| 国产美女在线免费观看| a欧美在线| 亚洲人成在线免费观看| 在线观看亚洲天堂| 91成人免费观看| 国产精品自在拍首页视频8| 亚洲va欧美va国产综合下载| 自慰网址在线观看| 国产免费自拍视频| 日韩成人在线视频| 欧美区一区| 国产浮力第一页永久地址 | 亚洲全网成人资源在线观看| av色爱 天堂网| 婷婷亚洲视频| 亚洲久悠悠色悠在线播放| 全色黄大色大片免费久久老太| 国产成人免费高清AⅤ| 毛片一级在线| 亚洲一区国色天香| 国产色图在线观看| 婷婷在线网站| 日韩av高清无码一区二区三区| 精品国产一二三区| 国产成人精品高清在线| 高清码无在线看| 日本黄色不卡视频| 国产亚洲精品97AA片在线播放| 亚洲精品片911|