您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Solr環境如何配置”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Solr環境如何配置”這篇文章吧。
一、配置solr環境
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
內容:
<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/ 出現歡迎界面表示成功
二、中文分詞配置
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,然后在應用輸入 complex。分詞的結果,如下圖:
好了,可以運行起來了,那就添加個文檔試下,在 解壓后的D:/solr/apache-solr-4.6.0/example/exampledocs目錄下創建 mmseg4j-solr-demo-doc.xml 文檔,內容如下:
<add>
<doc>
<field name="id">1</field>
<field name="text">高效、靈活的緩存功能,垂直搜索功能。</field>
</doc>
<doc>
<field name="id">2</field>
<field name="text"> Solr是一個高性能,采用Java5開發,基于Lucene的全文搜索服務器。</field>
</doc>
<doc>
<field name="id">3</field>
<field name="text"> 獨立的企業級搜索應用服務器</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設置成URIEncoding="UTF-8";
查看是否有數據,訪問:http://localhost:8080/solr/admin/ 在Query String: 中輸入“高性能”
顯示如下圖所示:
三、Solr將數據庫做成索引數據源(以mysql為例)
1、 在solrconfig.xml中配置導入數據功能(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、 添加一個數據源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驅動包 (Tomcat的webapps/solr/WEB-INF/lib目錄下)
4、創建索引
http://localhost:8080/solr/dataimport?command=full-import
5、 查看是否成功,訪問:http://localhost:8080/solr/admin/ 在Query String: 中輸入“sunshan”、“孫閃”
如下圖:
注:保證與數據庫連接正確
四、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/
五、多核數據庫索引:
同上配置
注:出現錯誤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
創建索引:http://localhost:8080/solr/core1/dataimport?command=full-import
http://localhost:8080/solr/dataimport?command=full-import 這 url 告訴 solr 做全量索引,做索引中會刪除所有數據。當然也可以用 clean=false 參數來告訴它不刪除,但也會刪除相同id的(在 scheam.xml 的uniqueKey 聲明的)。http://localhost:8080/solr/dataimport?command=full-import&clean=false
批量導入command=delta-import&commit=y
重新裝載配置文件command=reload-config
終止導入command=abort
以上是“Solr環境如何配置”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。