开发前提:将数据库导入索引库
1.自定义一个索引库
2.配置IKAnalyzer中文分析器
a.把IKAnalyzer2012FF_u1.jar添加到solr/WEB-INF/lib目录下
b.复制IKAnalyzer的配置文件和自定义词典和停用词词典到solr的solr/WEB-INF/classes目录下。复制IK分词器配置文件、自定义词典、停用词词典(词典需要自己配置)
c.在schema.xml中添加一个自定义的fieldType,使用中文分析器
<!--IKAnalyzer-->
<fieldType name="text_ik"class="solr.TextField">
<analyzerclass="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
d.在schema.xml中添加field,指定field的type属性为text_ik<!--IKAnalyzerField-->
<fieldname="content_ik" type="text_ik" indexed="true"stored="true" />
重启tomcat,查看是否生效。3.根据数据库字段,来定义field
如下配置到scheme配置文件即可:
<!--product-->
<fieldname="product_name" type="text_ik" indexed="true"stored="true"/>
<fieldname="product_price" type="float" indexed="true"stored="true"/>
<fieldname="product_description" type="text_ik"indexed="true" stored="false" />
<fieldname="product_picture" type="string"indexed="false" stored="true" />
<fieldname="product_catalog_name" type="string"indexed="true" stored="true" />
<field name="product_keywords"type="text_ik" indexed="true" stored="false"multiValued="true"/>
<copyFieldsource="product_name" dest="product_keywords"/>
<copyFieldsource="product_description" dest="product_keywords"/>
导入数据库需要在索引库中lib目录(没有,则创建)下添加两个jar包--solr-dataimporthandler-4.10.3.jar 和 MySQL驱动包4.修改solrconfig.xml,加载刚刚复制进来的jar包
添加以下配置即可:
<lib dir=".. /lib"regex="solr-dataimporthandler-\d.*\.jar " />
<lib dir=".. /lib"regex="mysql-connector-java-\d.*\.jar " />
5.在solrconfig.xml配置文件中添加:
<requestHandlername="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<strname="config">data-config.xml</str>
</lst>
</requestHandler>
6.在自定义的索引库的conf\目录下创建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/solr"
user="root"
password="root"/>
<document>
<entityname="product" query="SELECTpid,name,catalog,catalog_name,price,description,picture FROM products">
<field column="pid"name="id"/>
<field column="name"name="product_name"/>
<field column="catalog"name="product_catalog"/>
<field column="catalog_name"name="product_catalog_name"/>
<field column="price"name="product_price"/>
<field column="description"name="product_description"/>
<field column="picture"name="product_picture"/>
</entity>
</document>
</dataConfig>
点击execute执行。导入数据完成