.net軟體xcopy形式整合solr搜尋引擎

來源:互聯網
上載者:User

Solr 是基於Luncene的開源企業搜尋服務,提供了一個打包即用的解決方案[使用Luncene整合化需要處理索引管理、分析器等一系列的問題,自己實現還是相對麻煩的],solr對外以Http協議服務,增加了很多的協助工具功能,核心整合luncene.

Lucid Imagination is the first commercial company exclusively dedicated to Apache Lucene/Solr open source technology. 提供了商業的解決方案

.net軟體中如果綠色整合這個軟體比較方便,否則安裝一串東西很麻煩,無法體現 .net的xcopy的部署形式,本文針對.net程式整合solr服務的步驟進行描述

另一方面lucene.net(C#版本)的版本更新和Luncene落後不少,因此基於solr還是一個很好的解決方案(solr幾乎可以和Luncene同步更新,畢竟兩者的偶合不大)

參考官網

http://lucene.apache.org/solr

http://www.lucidimagination.com/

概念

Solr 1.4 Enterprise Search Server.pdf lucidworks-solr-refguide-1.4.pdf 這兩本書對solr的增強處理內容和文法等進行了詳盡的描述,具體的配置和使用可參考這兩本書

SolrCores

It's possible to segment Solr into multiple virtual instances, or cores, each with its own configuration and indices. Cores may be dedicated to a single application or to very different ones, but all are administered through a common administration interface. You can create new SolrCores on the fly, shutdown cores, even replace one running core with another, all without ever stopping or restarting your servlet container.

SolrCores對於需要分組管理索引的情況很有用,如所有的內容在一個索引庫太大時可以分開,或者本身就是獨立的資源。

SOLR綠色服務配置

由於現有的系統有32位、64的區別,以32位為例說明(64位的效能更高,我測試發現差不多有一倍的提高,JDK、Tomcat是分別發布的不同架構,32位和64位主要是這個區別)

以下是x86架構的目錄結構

(服務使用的tomcat7,Jetty7 作為服務運行有些麻煩)

JDK的部署:把其他機器的安裝好的JDK整個目錄放在JDK上

Tomcat7:把其他機器的安裝好的tomcat整個目錄放在tomcat上, 把Lucid Imagination 的版本安裝報SolrInstaller-1.4.1.jar中 lucidworks\webapps\solr.war的 solr.war放在tomcat7\webapps目錄下

Solr:solr目錄是預設的一些solrcores的設定檔和相關庫,預設索引檔案也存在這個目錄下(coreX是其中的一個core),詳細內容參考:http://cid-56b433ad3d1871e3.office.live.com/self.aspx/.Public/solr86.rar 

根目錄:啟動和服務的運行檔案,參考下載:http://cid-56b433ad3d1871e3.office.live.com/self.aspx/.Public/solr86.rar

如:啟動服務 start.bat

set JAVA_HOME=%cd%\jdk\

set CLASSPATH=%cd%\jdk\lib;

set PATH=%PATH%;%JAVA_HOME%

set CATALINA_HOME=%cd%\tomcat7

cd %0\..\

tomcat7\bin\catalina.bat run

:: SET /P M=Press ENTER:

solr.xml 對solrcores配置的檔案

<?xml version="1.0" encoding="utf-8"?>

<solr persistent="false" sharedLib="lib">

<cores adminPath="/admin/cores" shareSchema="true">

<core name="coreX" instanceDir="coreX" />

</cores>

</solr>

示範coreX目錄下的conf關鍵檔案

solrconfig.xml

schema.xml

jdbc.xml:對資料庫建立索引的設定

lib下:sqljdbc4.jar sql server的jdbc驅動

data:預設的索引目錄

經過如上配置後,可以在任意個部署的機器使用start.bat啟動solr服務,stop.bat關閉服務,svc.bat ***安裝服務Service,綠色運行solr

出錯的話在tomcat7\logs\catalina.****.log 日誌中查看原因

啟動後,就可以使用solr服務

總入口

http://localhost:8080/solr/

某個solrcore的管理入口(如coreX)

http://localhost:8080/solr/coreX/admin/

資料庫匯入的人口

http://localhost:8080/solr/coreX/admin/dataimport.jsp?handler=/dataimport

只要按照jdbc.xml建立好資料庫,可以使用如上地址匯入資料建立索引

.net整合

基於DRY原則,還是使用已有的庫最好[自己根據約定的HTTP協議格式寫當然完全沒有問題]

mausch-SolrNet-0.3.0-0-g9fd45cd.zip

這個是較新的項目

solrsharp-Dec-30-2007.zip

這個項目較早,近來更新比較少

如下SolrNet的一個sample例子效果,實現的效果還是相當的強

 

 

 

搜尋的效能

方案完成後,對效能擔心的話,可以看看效能,如果一下收集百萬或千萬條資料困難的話,可以在MusicBrainz.org下載很多的開放資料 http://musicbrainz.org/doc/Database_Download (最好使用資料庫格式的)

我測試在2.8GCPU上的建立索引其中一個檔案60萬個資料條目約4~5分鐘,600萬條20~25分鐘間完成(64位的版本速度提高查不到一倍),速度還是相當的快,在這個索引上的查詢一般幾十毫秒就完成了,如果有更高的搜尋品質、效能要求,首先可以修改solr的配置,加入相關的外掛程式,一般情況應該可以解決問題(基於Lucene的解決方案實在很多),實在有問題的話可以自己開發定製

至此,我們可以使我們的應用增加了檢索的功能。【整合發布的產品和方案注意solr的授權協議】

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.