1、下载,解压,E:\solr-8.4.1
2、运行
E:\solr-8.4.1\bin
命令:solr start -f -p 8889
3、创建、配置 solr core(core 就相当于一个 solr 的项目实例)
命令:solr create -c <core_name>成功创建后,可以在 solr-8.4.1/server/solr/<core_name> 目录下看到自动生成的默认配置文件
4、安装中文分词IKAnalyzer
(1)下载 ik-analyzer-8.3.0.jar --> E:\solr-8.4.1\server\solr-webapp\webapp\WEB-INF\lib
(2)修改配置:E:\solr-8.4.1\server\solr\da\conf\managed-schema,增加
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" conf="ik.conf" useSmart="false"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" conf="ik.conf" useSmart="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
5、配置检索字段,可以将多个字段整合到一个字段中
<field name="news_caption" type="text_ik" indexed="true" stored="true"/>
<field name="news_content" type="text_ik" indexed="true" stored="true"/>
<field name="news_all" type="text_ik" indexed="true" stored="true" multiValued="true"/>
<!-- 将多个字段整到关键字段里面 -->
<copyField source="news_caption" dest="news_all"/>
<copyField source="news_content" dest="news_all"/>
6、使用Dataimport导入数据(此处从oracle10g导入)
(1)加入jar包
Oracle_10g_10.2.0.4_JDBC_classes12.jar --> E:\solr-8.4.1\server\solr-webapp\webapp\WEB-INF\lib
E:\solr-8.4.1\dist\solr-dataimporthandler-8.4.1.jar --> E:\solr-8.4.1\server\solr-webapp\webapp\WEB-INF\lib
E:\solr-8.4.1\dist\solr-dataimporthandler-extras-8.4.1.jar --> E:\solr-8.4.1\server\solr-webapp\webapp\WEB-INF\lib
(2)编辑 E:\solr-8.4.1\server\solr\da\conf\solrconfig.xml
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">oracle-data-config.xml</str>
</lst>
</requestHandler>
(3)新建配置 E:\solr-8.4.1\server\solr\da\conf\oracle-data-config.xml
注意clob字段要使用 ClobTransformer,field clob="true"
<field column="NEWS_CONTENT" 必须大写(和sql结果集保持一致)
<dataConfig>
<dataSource driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521/ORCL" user="cms" password="manager"/>
<document>
<entity name="news" transformer="ClobTransformer"
query="select t.id, t.caption news_caption, t.content news_content from t_NEWS t where t.publish_flag = '1'">
<field column="NEWS_CONTENT" clob="true"/>
</entity>
</document>
</dataConfig>
(4)使用dataimport导入
7、检索数据