solr5.X版本里有几个比较重要的配置文件,
如data-config.xml、dataimport.properties、managed-schema、solrconfig.xml、solr.in.sh
下面将我的测试配置模板发出来(模板中只包含了一些重要部分)。
1.data-config.xml :
<dataConfig>
<dataSource type="JdbcDataSource" name="mysql_ds"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.10.100:3306/car_repos"
user="123"
password="123"/>
<document>
<entity name="car"
dataSource="mysql_ds"
query="select * from t_vehicle_info"
deltaQuery="SELECT id FROM t_vehicle_info where update_time > '${dataimporter.last_index_time}'"
deltaImportQuery="SELECT * FROM t_vehicle_info where id='${dih.delta.id}'"
>
<field column="id" name="id" />
<field column="name" name="name" />
<field column="brand_name" name="brandName" />
<field column="family_name" name="familyName" />
</entity>
</document>
</dataConfig>
2.dataimport.properties:
#Mon Jul 06 11:37:26 UTC 2015
# to sync or not to sync
# 1 - active; anything else - inactive
syncEnabled=1
# which cores to schedule
# in a multi-core environment you can decide which cores you want syncronized
# leave empty or comment it out if using single-core deployment
# syncCores=game,resource #因为我的是single-core,所以注释掉了,默认就是collection1
syncCores=userinfo
# solr server name or IP address
# [defaults to localhost if empty]
server=localhost
# solr server port
# [defaults to 80 if empty]
port=8983
# application name/context
# [defaults to current ServletContextListener's context (app) name]
webapp=solr
# URL params [mandatory]
# remainder of URL
# 增量更新的请求参数
params=/dataimport?command=delta-import&commit=true
# schedule interval
# number of minutes between two runs
# [defaults to 30 if empty]
# 这里配置的是2min一次
interval=2
# 重做索引的时间间隔,单位分钟,默认7200,即5天;
# 为空,为0,或者注释掉:表示永不重做索引
#reBuildIndexInterval=7200
# 重做索引的参数
#reBuildIndexParams=/dataimport?command=full-import&clean=true&commit=true
# 重做索引时间间隔的计时开始时间,第一次真正执行的时间=reBuildIndexBeginTime+reBuildIndexInterval*60*1000;
# 两种格式:2012-04-11 03:10:00 或者 03:10:00,后一种会自动补全日期部分为服务启动时的日期
#reBuildIndexBeginTime=03:10:00
3、managed-schema:
<field name="_version_" type="long" indexed="true" stored="true"/>
<field name="_text_" type="text_general" indexed="true" stored="false" multiValued="true"/>
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="name" type="text_ik_edge" indexed="true" stored="true" required="false" multiValued="false" />
<field name="brandName" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="familyName" type="text_ik" indexed="true" stored="true" required="false" multiValued="false" />
<field name="complexSearch" type="text_ik_edge" indexed="true" stored="false" required="false" multiValued="true" />
<field name="pinyin" type ="text_pinyin" indexed ="true" stored ="false" multiValued ="true"/>
<copyField source="brandName" dest="complexSearch"/>
<copyField source="familyName" dest="complexSearch"/>
<copyField source="name" dest="complexSearch"/>
<copyField source="name" dest="pinyin"/>
<copyField source="brandName" dest="pinyin"/>
<fieldType name="text_pinyin" class="solr.TextField" positionIncrementGap="0">
<analyzer type="index">
<tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>
<filter class="solr.SmartChineseWordTokenFilterFactory"/>
<filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" />
<filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>
<filter class="solr.SmartChineseWordTokenFilterFactory"/>
<filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" />
<filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />
</analyzer>
</fieldType>
4.solrconfig.xml:
<!--自定义suggest用来智能建议搜索配置开始 -->
<searchComponent name="suggest" class="solr.SpellCheckComponent">
<str name="queryAnalyzerFieldType">string</str>
<lst name="spellchecker">
<str name="name">suggest</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
<str name="field">complexSearch</str>
<float name="threshold">0.0001</float>
<str name="comparatorClass">freq</str>
<str name="buildOnOptimize">true</str>
<str name="buildOnCommit">true</str>
</lst>
</searchComponent>
<requestHandler name="/suggest" class="org.apache.solr.handler.component.SearchHandler">
<lst name="defaults">
<str name="spellcheck">true</str>
<str name="spellcheck.dictionary">suggest</str>
<str name="spellcheck.count">8</str>
<str name="spellcheck.onlyMorePopular">true</str>
<str name="spellcheck.collate">true</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>
<!--自定义suggest用来智能建议搜索配置结束 -->
<!--数据导入使用 开始-->
<requestHandler name="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
<!--数据导入使用 结束-->
5、solr.in.sh:
ZK_HOST="192.168.10.156:2181,192.168.10.155:2181,192.168.10.154:2181/solr"
这个配置比较重要,里面包含了启动的JVM参数,这里就不贴出来了。