转载自:http://blog.csdn.net/duan_nian/article/details/52883202
1. 将solr6.2.1/server/solr-webapp/webapp下的内容复制到tomcat的webapps下并命名为solr
2. 复制 solr-6.2.1\server\lib\ext (+ik分词器+MySQL-connection) 中所以jar包到solr中的WEB-INF\lib下,copy solr-6.2.1\server\resources中log4j.properties到solr\WEB-INF\下的classes,没有了创建,修改web.xml如下
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>D:/workspace/solr_home</env-entry-value>
<env-entry-type>Java.lang.String</env-entry-type>
</env-entry>
3. solr_home中配置,复制solr-6.1.0\server\solr中的所有文件到solr_home中,新建new_core文件夹。
4. 复制server\solr\configsets\basic_configs中conf文件到new_core文件夹中,在new_core文件夹中新建文件夹data(SolrWeb UI添加Core时会用到)。
5. 启动无异常可以访问http://localhost:8080/solr/index.html
6. 点击coreadmin添加core,添加无异常,到此solr部署完毕。
7. Solrconfig.xml
l 将 solr解压目录/contrib和dist 复制 solr.home下
l 修改 lib的路径,引用到jar包
l 如果你删除了所有的文件,只保留了schema.xml和solrconfig.xml,那么需要注释掉下面的代码
(在solrconfig.xml的1117)
8. Schema.xml
<?xmlversion="1.0" encoding="UTF-8" ?>
<schemaname="example-basic" version="1.6">
<field name="_version_"type="long" indexed="true" stored="false"/>
<field name="_root_"type="string" indexed="true" stored="false"docValues="false" />
<field name="id"type="string" indexed="true" stored="true"required="true" multiValued="false" />
<field name="name"type="text_ik" indexed="true" stored="true"multiValued="false"/>
<field name="name_py"type="text_ik" indexed="true" stored="true"multiValued="false"/>
<field name="create_time"type="text_ik" indexed="true" stored="true"multiValued="false"/>
<field name="update_time"type="text_ik" indexed="true" stored="true"multiValued="false"/>
<field name="text"type="text_ik" indexed="true" stored="false"multiValued="true"/>
<dynamicField name="*_i" type="int" indexed="true" stored="true"/>
<dynamicField name="*_is"type="ints" indexed="true" stored="true"/>
<dynamicField name="*_s" type="string" indexed="true" stored="true" />
<dynamicField name="*_ss"type="strings" indexed="true" stored="true"/>
<dynamicField name="*_l" type="long" indexed="true" stored="true"/>
<dynamicField name="*_ls"type="longs" indexed="true" stored="true"/>
<dynamicField name="*_b" type="boolean"indexed="true" stored="true"/>
<dynamicField name="*_bs"type="booleans" indexed="true" stored="true"/>
<dynamicField name="*_f" type="float" indexed="true" stored="true"/>
<dynamicField name="*_fs"type="floats" indexed="true" stored="true"/>
<dynamicField name="*_d" type="double"indexed="true" stored="true"/>
<dynamicField name="*_ds"type="doubles" indexed="true" stored="true"/>
<uniqueKey>id</uniqueKey>
<copyField source="name"dest="text"/>
<copyField source="app_id" dest="text"/>
<copyField source="name_py"dest="text"/>
<copyField source="type"dest="text"/>
<copyField source="status"dest="text"/>
<copyFieldsource="singer_name" dest="text"/>
<copyFieldsource="singer_name_py" dest="text"/>
<copyField source="singer"dest="text"/>
<copyFieldsource="singer_name" dest="text"/>
<copyFieldsource="composer_name" dest="text"/>
<copyFieldsource="lyricist_name" dest="text"/>
<fieldType name="string"class="solr.StrField" sortMissingLast="true"docValues="true" />
<fieldType name="strings"class="solr.StrField" sortMissingLast="true"multiValued="true" docValues="true" />
<fieldType name="boolean"class="solr.BoolField" sortMissingLast="true"/>
<fieldType name="booleans" class="solr.BoolField"sortMissingLast="true" multiValued="true"/>
<fieldType name="int"class="solr.TrieIntField" docValues="true"precisionStep="0" positionIncrementGap="0"/>
<fieldType name="float"class="solr.TrieFloatField" docValues="true" precisionStep="0"positionIncrementGap="0"/>
<fieldType name="long"class="solr.TrieLongField" docValues="true"precisionStep="0" positionIncrementGap="0"/>
<fieldType name="double"class="solr.TrieDoubleField" docValues="true"precisionStep="0" positionIncrementGap="0"/>
<fieldType name="ints"class="solr.TrieIntField" docValues="true"precisionStep="0" positionIncrementGap="0"multiValued="true"/>
<fieldType name="floats"class="solr.TrieFloatField" docValues="true"precisionStep="0" positionIncrementGap="0"multiValued="true"/>
<fieldType name="longs"class="solr.TrieLongField" docValues="true"precisionStep="0" positionIncrementGap="0"multiValued="true"/>
<fieldType name="doubles"class="solr.TrieDoubleField" docValues="true"precisionStep="0" positionIncrementGap="0"multiValued="true"/>
<fieldType name="text_ik"class="solr.TextField" >
<analyzerclass="org.wltea.analyzer.lucene.IKAnalyzer" />
</fieldType>
<filterclass="solr.StopFilterFactory" ignoreCase="true"words="stopwords.txt" enablePositionIncrements="true" />
<solrQueryParserdefaultOperator="AND"/>
</schema>
9. Ik分词器配置
solr6.0中进行中文分词器IK Analyzer的配置和solr低版本中最大不同点在于IK Analyzer中jar包的引用。一般的IK分词jar包都是不能用的,因为IK分词中传统的jar不支持solr6.0这个高版本的,所以就会发送运行错误的界面。下面就来介绍一下solr6.0中中文分词器IK Analyzer的配置。
l 下载solr6.0专用的IK Analyzer的jar包和相应的配置文件
l 解压上一个步骤所得到的压缩包,将ik-analyzer-solr5-5.x.jar这个jar包放入solr项目下的WEB-INF\lib目录中去,将IKAnalyzer.cfg.xml,mydict.dic(搜狗的扩展词库),stopword.dic放在solr项目下的WEB-INF\classes目录中去。
l 将项目下solrhome\mynode\conf下的managed-schema配置文件中</schema>上面加入如下配置信息:
l