solr环境搭建
下载solr6.2和配置jdk,tomcat略过
说明:
solr_home:用来放core
core:装索引和数据的地方
document:索引和数据
Field:字段,相当于数据库的字段
FieldType:字段类型
1. 配置solr项目
- 解压下载的solr,把solr-6.2.0\server\solr-webapp下的webapp复制到tomcat\webapps下并更名为solr
solr项目内容:
- 把solr-6.2.0\server\lib\ext下的jar包复制到tomcat-8.5.9\webapps\solr\WEB-INF\lib中
把问\solr-6.2.0\dist下含“dataimport”的jar包也复制到如上位置(该jar包用来导入数据)
把solr-6.2.0\example\resources*下的log4j.properties复制到tomcat-8.5.9\webapps\solr\WEB-INF\classes*下(没有classes改目录先创建)
2. 配置solr核心目录
- 在任意位置创建solr_home目录,并且把*\solr-6.2.0\example\example-DIH\solr\*下的任意一个core和solr.xml放到solr_home目录下(这里我选的是solr)
solr_home内容:
- 在tomcat-8.5.9\webapps\solr\WEB-INF\web.xml中指明solr_home
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>D:\tomcat-8.5.9\webapps\solr\solr_home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
3. 查看配置界面
启动tomcat,输入地址:
界面操作后面再细谈
solr配置中文分词
1. 下载IKAnalyzer中文分词包并解压
整合包内容:
2. 配置IKAnalyzer中文分词
- 把ik-analyzer-solrx.jar复制到*tomcat-8.5.9\webapps\solr\WEB-INF\lib*
- 把如整合包中的如下文件复制*tomcat-8.5.9\webapps\solr\WEB-INF\lib\classes*下
- 编辑solr_home\solr\conf\managed-schema,添加
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
3. 测试分词
solr导入数据库
1. 引入mysql-connectX.jar包
注意:版本不一样也可能导致失败,这里使用5.x版本成功
2. 编辑配置文件
- solr_home\solr\conf\solrconfig.xml添加如下标签
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">solr-data-config.xml</str> <!--该文件名可以任意,但创建的文件要与之对应-->
</lst>
</requestHandler>
- 编辑/创建solr_home\solr\conf\solr-data-config.xml,添加如下内容(具体请根据需求配置)
<dataConfig>
<dataSource name="source1"
type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.88.112:3306/ppppx?characterEncoding=utf-8&autoReconnect=true"
user="root"
password="root">
</dataSource>
<document>
<entity name="test" dataSource="source1" query="SELECT goods_id,goods_price,goods_name,goods_jingle,store_id,store_name,goods_image FROM ppppx_goods">
<!--当数据库字段名和managed-schema字段不一致时配置
<field column="goods_id" name="goods_id" />
<field column="goods_name" name="goods_name" />
<field column="goods_jingle" name="goods_jingle" />
<field column="goods_price" name="goods_price" />
<field column="store_id" name="store_id" />
<field column="store_name" name="store_name" />
<field column="goods_image" name="goods_image" />
-->
</entity>
</document>
</dataConfig>
<!--
<entity name="entity名称" dataSource="选择一个数据源" query="查询语句,得到的结果会在solr的core中建立索引">
<field column="数据库表字段" name="业务字段" /> //业务字段需要与managed-schema中的Field对应
</entity>
-->
- 编辑solr_home\solr\conf\managedo-schema.xml,添加
<!--业务字段-->
<field name="goods_id" type="int" indexed="true" stored="true" required="true" multiValued="false" />
<field name="goods_name" type="text_ik" indexed="true" stored="true" /><!--需要使用中文分词的type选"text_ik"-->
<field name="goods_price" type="double" indexed="true" stored="true" />
<field name="goods_jingle" type="text_ik" indexed="true" stored="true" />
<field name="store_id" type="int" indexed="true" stored="true" />
<field name="store_name" type="text_ik" indexed="true" stored="true" />
<field name="goods_image" type="string" indexed="true" stored="true" />
<!--为copyFiled配置字段-->
<field name="goods_search" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<!--为copyFiled配置字段-->
<!--业务字段-->
修改
<uniqueKey>id</uniqueKey>
为,并且注释掉id字段
<!--<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />-->
<uniqueKey>goods_id</uniqueKey>
注意:编辑完成后,记得使用utf-8的编码保存
<font color="red">补充:字段详解</font>
3. 页面导入数据
导入可能出错,可以看tomcat启动时的java窗口
-
查询测试