一、配置修改
虽然solr启动,但是并没有core,我们并不能进行数据操作,core类似于关系数据库中的表,创建core之前, 通常我们对solr的使用都是,都是将关系型数据库的内容导入到solr中进行搜索服务
首先我们在本地的MySQL数据库中建立一个solr数据库,并且在数据库下建表goods。
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for goods -- ---------------------------- DROP TABLE IF EXISTS `goods`; CREATE TABLE `goods` ( `id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `goodsname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `price` float(10, 2) NULL DEFAULT NULL, `description` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of goods -- ---------------------------- INSERT INTO `goods` VALUES ('1', '三星手机', 3000.00, '会爆炸吧'); INSERT INTO `goods` VALUES ('2', '苹果手机', 6999.00, '装X神器'); INSERT INTO `goods` VALUES ('3', '小米手机', 1400.00, '国民手机'); SET FOREIGN_KEY_CHECKS = 1;
以下配置以jetty启动方式为例,基本和tomcat启动方式一样。
1. jar包
将之前准备的mysql驱动包,中文分词器jar包,solr-6.6.6dist目录下的solr-dataimporthandler-6.6.6.jar,solr-dataimporthandler-extras-6.6.6.jar包拷贝到F:solrsolr-6.6.6serversolr-webappwebappWEB-INFlib下
2. 配置
在solr-6.6.6serversolr文件夹下创建file_core文件夹,将solr-6.6.6serversolrconfigsetssample_techproducts_configs瞎咋conf文件夹全部复制到file_core下。
进入到solr-6.6.6serversolrfile_coreconf下,创建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/solr" user="root" password="www1928..com" batchSize="-1"/> <document name="goods"> <entity name="goods" pk="id" query="select id, goodsname, price, description from goods"> <field column="id" name="id" /> <field column="goodsname" name="goodsname" /> <field column="price" name="price" /> <field column="description" name="description" /> </entity> </document> </dataConfig>
打开solr-6.6.6serversolrfile_coreconfsolrconfig.xml文件,做以下配置
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>
打开solr-6.6.6serversolrfile_coreconfmanaged-schema文件配置域,将data-config.xml文件中配置的字段都做如下配置
<field name="goodsname" type="text_ik" indexed="true" stored="true"/> <field name="price" type="float" indexed="true" stored="true"/> <field name="description" type="text_ik" indexed="true" stored="true"/>
找到 <uniqueKey></uniqueKey>位置配置
<uniqueKey>id</uniqueKey> <field name="id" type="long" multiValued="false" indexed="true" required="true" stored="true" />
配置中文分词器类型
<fieldType name="text_ik" class="solr.TextField"> <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType>
二、数据导入
做好以上配置以后,启动solr,打开后台管理页面
添加goods_core,新建成功以后,选择goods_core,点击dataimport即可导入数据
点击query即可查询数据