solr配置与集成ik分词器,导入数据库
Solr安装配置
一、Solr各种版本集合下载:http://archive.apache.org/dist/lucene/solr/
二、Solr安装配置
1.JDK配置:jdk1.8.0_151;Tomcat配置:apache-tomcat-8.0.47
2.解压solr-7.2.1.zip ,解压目录:F:\software\solr-7.2.1
3.把solr7.2.1目录下的server/solr-webapp/webapp文件夹复制到tomcat/webapp的目录下,并重命名为solr
4.拷贝solr7.2.1\server文件夹到D盘,并重命名为solr-home,用来做solrHome,也就是solrCore的实例存放位置
5.打开tomcat/webapp/solr/WEB-INF/web.xml,配置solr-home
改成
6.将solr-7.2.1\server\solr下的solr.xml复制到solr-7.2.1\server\下,
不然会报solr.xml does not esist in错误。
7.在tomcat/webapp/solr/WEB-INF/文件夹中,建立classes目录
8.把solr7.2.1/server/resource/log4j.properties 复制到上一步建立的classes目录中。
9.拷贝solr7.2.1\server\lib\ext下的jar包到tomcat下的webapps\solr\WEB-INF\lib路径下;拷贝solr7.2.1\dist下的solr-dataimporthandler-7.2.1.jar、solr-dataimporthandler-extras-7.2.1.jar包到tomcat下的webapps\solr\WEB-INF\lib路径下;拷贝solr7.2.1\server\lib下的metrics开头的5个jar到tomcat下的webapps\solr\WEB-INF\lib路径下。当拷贝完成后应该是83个jar。
10.去掉权限,不然访问solr会出现没有授权的错误。
打开webapps\solr\WEB-INF\web.xml 找到163行,注释部分内容。(就是最下面)
现在已经可以正常启动了,
启动Tomcat8,即可访问solr的管理控制台【http://localhost:8080/solr/index.html】
Solr配置数据库,全量增量导入solr。
2.1 首先在solr控制台上创建一个core,名字叫做product。
2.2点击提交之后会报错:
其实在本地已经有了这个product:地址就是:F:\software\solr-7.2.1\server
2.3找到F:\software\solr-7.2.1\server\solr\configsets\_default目录,复制conf文件夹到上一步的product文件夹里面。
2.4然后去控制台重新创建刚才创建错误的core,也就是product。
创建成功。
2.6 选择刚才创建的core(product)。
2.7 测试一下分词,这种分词对中文不是很友好,需要添加ik分词器,或者7.2.1自带的分词器。
2.8 下载ik分词器
链接:https://pan.baidu.com/s/1so6WiLkHXxTDmrHNFSdSuw
提取码:wtrb .
分词器里面的内容如下:
拷贝jar放到tomcat\webapps\solr\web-inf\lib下
将剩余的三拷贝到C:\tomcat-8\webapps\solr\WEB-INF\classes文件夹下
2.9 回到F:\software\solr-7.2.1\server\product\conf用编辑器打开managed-schema文件。添加以下代码。就是solrhome指定目录下新建的core(这里是product)文件夹下。
<!-- 添加IK分词 -->
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<field name="my_name" type="text_ik" indexed="true" stored="true" multiValued="false" />
mysql数据导入到solr中
3.1 回到这个目录下 F:\software\solr-7.2.1\server\product\conf
在solr-config.xml的末尾添加如下代码。其中data-config.xml 需要在solrconfig.xml同级目录下自己手动创建。
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
3.2 在同级目录下创建data-config.xml 文件。
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/test"
user="root"
password="root"
batchSize="-1" />
<document>
<entity name="product" query="select p.ProId,p.contentTitle,p.Keywords,p.Description,p.Title,pd.name cate_nameCode,pdt.name cate_nameId from product p inner join productcategory pd on p.CategoryCode = pd.Id INNER JOIN productcategory pdt on pd.pid = pdt.Id">
<!--column的id是数据库的id,name的id是managed_schema里面的id,id是必须,并且唯一的-->
<field column="ProId" name="id" />
<field column="contentTitle" name="pro_contentTitle" />
<field column="Keywords" name="pro_Keywords" />
<field column="Description" name="pro_Description" />
<field column="Title" name="pro_Title" />
<field column="cate_nameCode" name="cate_nameCode" />
<field column="cate_nameId" name="cate_nameId" />
</entity>
</document>
</dataConfig>
3.3 编写managed_schema,添加上dataconfig.xml里查询出来的mysql 字段
<field name="pro_Description" type="text_ik" indexed="true" stored="true"/>
<field name="pro_Keywords" type="text_ik" indexed="true" stored="true"/>
<field name="pro_Title" type="text_ik" indexed="true" stored="true"/>
<field name="pro_contentTitle" type="text_ik" indexed="true" stored="true"/>
<field name="cate_nameCode" type="text_ik" indexed="true" stored="true"/>
<field name="cate_nameId" type="text_ik" indexed="true" stored="true"/>
这里面没有配置查询出来的id,因为solr自带了id所以不用写了。Managed-schema.xml里用不到的<filed>可以全部删除。
3.4 重新启动tomcat 进入solr的core里
点击完成之后
完美导入。。。。。。。。。。。
作者:小tu豆
来源链接:https://blog.csdn.net/cmj962464/article/details/88850545