前提导入需要的包
1.mysql数据库连接的jar包
2.导入solr目录下dist文件下的两个的solr-dataimporthandler-7.4.0.jar、solr-dataimporthandler-extras-7.4.0.jar。
3.在核心库的conf目录下创建文件data-config.xml
文件的内容是连接数据库的相关信息和需要导入的表的信息
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<!-- 定义数据库连接池 -->
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.30.10:3306/ego"
user="root"
password="root"/>
<document>
<!-- 描述数据库和索引库文档的映射关系 -->
<entity name="product" query="SELECT
a.id,
a.title,
a.sell_point,
a.price,
a.image,
b.`name` category_name
FROM
tb_item a
LEFT JOIN tb_item_cat b ON a.cid = b.id
">
<!-- 数据库的列明和索引库的字段完成映射 要和核心库内的managed-schema文件内的定义的域的name值一致 -->
<field name="id" column="id"/>
<field name="title" column="title"/>
<field name="sell_point" column="sell_point"/>
<field name="price" column="price"/>
<field name="image" column="image"/>
<field name="category_name" column="category_name"/>
</entity>
</document>
</dataConfig>
4.在solrconfig.xml文件下引入创建好的data-config.xml文件
加到文件内即可
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
5.修改managed-schema文件的配置进行将data-config.xml文件内查询的字段映射到solr的managed-schema文件内并使用中文分词器进行检索
<!-- 表数据 -->
<field name="title" type="text_ik_zw" indexed="true" stored="true" />
<field name="sell_point" type="text_ik_zw" indexed="true" stored="true" />
<field name="price" type="plong" indexed="true" stored="true" />
<field name="image" type="string" indexed="true" stored="true" />
<field name="category_name" type="text_ik_zw" indexed="true" stored="true" />
<!-- 关键字 -->
<field name="item_keywords" type="text_ik_zw" indexed="true" stored="false" multiValued="true"/>
<copyField source="title" dest="item_keywords"/>
<copyField source="sell_point" dest="item_keywords"/>
6.如果需要连接远程的mysql数据库进行数据导入的话需要释放远程连接的权限,不然导入失败
update user set host='%' where host='localhost' and user='root';
mysql>flush privileges;
7.测试数据导入