1.solr介紹
solr是apache旗下開源項目檐蚜,主要用于文檔創(chuàng)建索引魄懂,查詢的一個工程,基于lucene進行封裝開發(fā)熬甚,具有可視化操作頁面
2.安裝solr
地址:http://mirror.bit.edu.cn/apache/lucene/solr/6.4.2
3.目錄結(jié)構(gòu)
- bin:啟動腳本目錄
- contrib:
- dist:編譯完的jar存放位置
- docs:文檔
- example
- licenses
- server:solr主服務(wù)目錄
4.server文件夾介紹
- etc:jetty配置
- lib
- logs
- resources: log4j配置文件等
- scripts: mapreduce和集群腳本
- solr: solr的collection位置及配置文件
- solr-webapp: solr的h5頁面部分
5.配置solr
在solr目錄下創(chuàng)建collection的文件夾逢渔,例如
# cd /solr-version-path/server/solr
# mkdir collection1
拷貝主要配置文件到collection1文件夾里
# cd /solr-version-path/server/solr
# cp configsets/basic_configs/conf ../
#
修改solrconfig配置文件
在文件中加入數(shù)據(jù)庫連接requestHandler ,并指定配置文件
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<!-- 全庫 -->
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
創(chuàng)建data-config文件,指定數(shù)據(jù)庫連接
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource name="jdbc"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.252:3306/***?characterEncoding=utf8&useUnicode=true"
user="root" password="****" batchSize="-1"/>
<document name="data">
<entity name="crawldata" pk="id" query="sql">
<!-- 配置數(shù)據(jù)庫字段和solr字段的映射關(guān)系 -->
<field name="id" column="id" />
</entity >
</document >
</dataSource >
</dataConfig>
修改managed-schema配置文件乡括,配置solr字段肃廓,之后solr查詢的所有字段都從該文件中指定,不能查詢沒有指定的字段
<!-- name:字段名稱诲泌, type:字段類型盲赊, indexed:是否索引, strored:打分 required:是否必須敷扫,multiValued:是否多值 -->
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<!-- 配置ik分詞器 -->
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<!--配置IK分詞器同義詞-->
<fieldType name="text_syn" class="solr.TextField">
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
ik分詞器位置:
ik分詞器詞庫需要自己整理
6.啟動solr(默認(rèn)8983端口)
# cd /solr-version-path/bin
# ./solr start -force