溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Solr環(huán)境如何配置

發(fā)布時間:2021-12-07 14:14:30 來源:億速云 閱讀:188 作者:小新 欄目:云計算

這篇文章主要為大家展示了“Solr環(huán)境如何配置”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Solr環(huán)境如何配置”這篇文章吧。

一、配置solr環(huán)境

1、  下載solr  http://www.apache.org/dyn/closer.cgi/lucene/solr/

此處用的是4.6 解壓到D盤D:/solr/apache-solr-4.6.0

2、修改tomcat conf/server.xml

  <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"URIEncoding="UTF-8" />

添加編碼的配置 URIEncoding="UTF-8" (如不添加,中文檢索時因為亂碼搜索不到)

3、  配置solr

Tomcat  conf/Catalina/localhost下添加solr.xml

內(nèi)容:

<Context docBase="D:/solr/apache-solr-4.6.0/dist/apache-solr-4.6.0.war" debug="0" crossContext="true" >

<Environment name="solr/home" type="java.lang.String" value="D:/solr/apache-solr-4.6.0/example/solr" override="true" />

</Context>

4、 啟動tomcat  輸入http://localhost:8080/solr/  出現(xiàn)歡迎界面表示成功

二、中文分詞配置

1、 下載分詞器: http://code.google.com/p/mmseg4j/

2、下載詞庫:http://code.google.com/p/mmseg4j/downloads/detail?name=data.zip&can=2&q

3、將解壓后的mmseg4j-1.8.5目錄下的mmseg4j-all-1.8.5.jar拷貝到Tomcat的webapps/solr/WEB-INF/lib目錄下。

4、添加詞庫:在D:/solr/apache-solr-4.6.0/example/solr目錄下新建dic文件夾,將解壓后的data目錄下的words.dic拷貝到D:/solr/apache-solr-4.6.0/example/solr/dic目錄下。

5、  更改schema.xml(D:/solr/apache-solr-4.6.0/example/solr/conf/)文件,使分詞器起到作用。

在schema.xml的<types>、<fields>和部分新增如下配置:

注:dicPath=" "是你的詞庫路徑。

    <!--mmseg4j field types-->

       <fieldType name="textComplex" class="solr.TextField" positionIncrementGap="100" > 

                  <analyzer> 

                     <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="D:/solr/apache-solr-4.6.0/example/solr/dic"/> 

                     <filter class="solr.LowerCaseFilterFactory"/> 

           </analyzer> 

       </fieldType> 

     <fieldType name="textMaxWord" class="solr.TextField" positionIncrementGap="100" > 

        <analyzer> 

            <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="D:/solr/apache-solr-4.6.0/example/solr/dic"/> 

            <filter class="solr.LowerCaseFilterFactory"/> 

        </analyzer> 

     </fieldType> 

     <fieldType name="textSimple" class="solr.TextField" positionIncrementGap="100" > 

       <analyzer> 

           <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="D:/solr/apache-solr-4.6.0/example/solr/dic"/> 

           <filter class="solr.LowerCaseFilterFactory"/> 

       </analyzer> 

     </fieldType>

   <!-- mmseg4j field -->

   <field name="simple" type="textSimple" indexed="true" stored="true" multiValued="true"/> 

   <field name="complex" type="textComplex" indexed="true" stored="true" multiValued="true"/> 

   <field name="text_mmseg4j" type="textMaxWord" indexed="true" stored="true" multiValued="true"/>

  <!-- mmseg4j copyField -->

   <copyField source="simple" dest="text_mmseg4j"/>

   <copyField source="complex" dest="text_mmseg4j"/>

重啟你的tomcat。

訪問:http://localhost:8080/solr/admin/analysis.jsp可以看 mmseg4j 的分詞效果。在 Field 的下拉菜單選擇 name,然后在應(yīng)用輸入 complex。分詞的結(jié)果,如下圖:

好了,可以運行起來了,那就添加個文檔試下,在 解壓后的D:/solr/apache-solr-4.6.0/example/exampledocs目錄下創(chuàng)建 mmseg4j-solr-demo-doc.xml 文檔,內(nèi)容如下:

  <add> 

      <doc> 

          <field name="id">1</field> 

          <field name="text">高效、靈活的緩存功能,垂直搜索功能。</field> 

      </doc> 

      <doc> 

          <field name="id">2</field> 

          <field name="text"> Solr是一個高性能,采用Java5開發(fā),基于Lucene的全文搜索服務(wù)器。</field> 

      </doc> 

      <doc> 

          <field name="id">3</field> 

          <field name="text"> 獨立的企業(yè)級搜索應(yīng)用服務(wù)器</field> 

      </doc> 

  </add>

注意:使用的字段name必須在solr的配置文件schem.xml增加

       下(id、title)一樣

然后在 cmd 下運行 post.jar,如下:

D:\solr\apache-solr-4.6.0\example\exampledocs>java -Durl=http://localhost:8080/

solr/update -Dcommit=yes -jar post.jar mmseg4j-solr-demo-doc.xml 

注意:mmseg4j-solr-demo-doc.xml 要是 UTF-8 格式,不然提交后會亂碼。還有在查詢中文時需要把tomcat設(shè)置成URIEncoding="UTF-8";

查看是否有數(shù)據(jù),訪問:http://localhost:8080/solr/admin/ 在Query String: 中輸入“高性能”

顯示如下圖所示:

三、Solr將數(shù)據(jù)庫做成索引數(shù)據(jù)源(以mysql為例)

1、  在solrconfig.xml中配置導(dǎo)入數(shù)據(jù)功能(D:\solr\apache-solr-4.6.0\example\solr\conf下)

     <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> 

     <lst name="defaults"> 

       <str name="config">D:\solr\apache-solr-4.6.0\example\solr\conf\db\db-data-config.xml</str> 

     </lst> 

  </requestHandler>

2、  添加一個數(shù)據(jù)源db-data-config.xml (D:\solr\apache-solr-4.6.0\example\solr\conf\db下)

    <dataConfig>

         <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/solr" user="root" password="root"/>

             <document name="messages">

               <entity name="user" transformer="ClobTransformer" query="select * from t_user">

             <field column="id" name="id" />

                      <field column="name" name="name"/>

                      <field column="title" name="title"/>

         </entity>

     </document>

 </dataConfig>

CREATE TABLE t_user  

(  

   id         VARCHAR(255) PRIMARY KEY,  

   name       VARCHAR(10) NOT NULL,  

   title        VARCHAR(10)

);

3、放入mysql驅(qū)動包  (Tomcat的webapps/solr/WEB-INF/lib目錄下)

4、創(chuàng)建索引

   http://localhost:8080/solr/dataimport?command=full-import

5、  查看是否成功,訪問:http://localhost:8080/solr/admin/ 在Query String: 中輸入“sunshan”、“孫閃”

如下圖:

注:保證與數(shù)據(jù)庫連接正確

四、Solr多核(MultiCore)配置

1、  拷貝multicore(D:\solr\apache-solr-4.6.0\example下)下的core0、core1、exampledocs到solr(D:\solr\apache-solr-4.6.0\example\solr下)目錄下

2、  更改solr.xml(D:\solr\apache-solr-4.6.0\example\solr下)配置

添加:

<core name="core0" instanceDir="core0" dataDir="D:/solr/apache-solr-4.6.0/example/solr/core0/data"/>

<core name="core1" instanceDir="core1" dataDir="D:/solr/apache-solr-4.6.0/example/solr/core1/data"/>

配置后:

   <cores adminPath="/admin/cores">

    <core name="collection1" instanceDir="." />

  <core name="core0" instanceDir="core0" dataDir="D:/solr/apache-solr-4.6.0/example/solr/core0/data"/>

    <core name="core1" instanceDir="core1" dataDir="D:/solr/apache-solr-4.6.0/example/solr/core1/data"/>

  </cores>

3、  啟動tomcat 訪問:

http://localhost:8080/solr/

五、多核數(shù)據(jù)庫索引:

同上配置

注:出現(xiàn)錯誤Error loading class 'org.apache.solr.handler.dataimport.DataImportHandler'

需配置(solrconfig.xml里)

  <!-- start -->

  <lib dir="D:/solr/apache-solr-4.6.0/contrib/extraction/lib" />

  <lib dir="D:/solr/apache-solr-4.6.0/dist/" regex="apache-solr-cell-\d.*\.jar" />

  <lib dir="D:/solr/apache-solr-4.6.0/dist/" regex="apache-solr-clustering-\d.*\.jar" />

  <lib dir="D:/solr/apache-solr-4.6.0/dist/" regex="apache-solr-dataimporthandler-\d.*\.jar" />

  <lib dir="D:/solr/apache-solr-3.3.0/contrib/clustering/lib/" />

  <lib dir="/total/crap/dir/ignored" />

  <!-- end -->

dir注意路徑

重啟tomcat

創(chuàng)建索引:http://localhost:8080/solr/core1/dataimport?command=full-import

http://localhost:8080/solr/dataimport?command=full-import 這 url 告訴 solr 做全量索引,做索引中會刪除所有數(shù)據(jù)。當(dāng)然也可以用 clean=false 參數(shù)來告訴它不刪除,但也會刪除相同id的(在 scheam.xml 的uniqueKey 聲明的)。http://localhost:8080/solr/dataimport?command=full-import&clean=false

批量導(dǎo)入command=delta-import&commit=y

重新裝載配置文件command=reload-config

終止導(dǎo)入command=abort

以上是“Solr環(huán)境如何配置”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI