Solr 6.3 + mysql 集成建索引

1、本文介绍solr6.3与mysql集成建立索引,首先安装好solr6.3,安装好mysql并创建数据库car)。 创建表buick,脚本如下

CREATE TABLE `buick` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `model` varchar(255) NOT NULL,
  `name` varchar(50) NOT NULL,
  `desc` varchar(300) NOT NULL,
  `create_time` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

初始化一些数据,语句如下

INSERT INTO `buick` VALUES (1, 'regal', '君威', '别克君威(Regal)是一部别克中高档轿车,定位介于英朗和君越之间', '2016-2-9 22:13:39');
INSERT INTO `buick` VALUES (2, 'lacrosse', '君越', '君越是上海通用在2006年2月22日推出的一款全新中高档轿车,主要竞争对手为天籁、雅阁等。', '2016-2-9 22:13:39');
INSERT INTO `buick` VALUES (3, 'envision', '昂科威', '别克ENVISION的中文名为“昂科威”,作为通用汽车全球全新一代战略车型', '2016-2-9 22:13:39');

建立solr核心(core命名为car)命令如下

./solr create -c car -force

2、为了支持中文查询,需按上一篇文章介绍配置好中文分词配置,在此不多作介绍。

3、配置mysql建立索引,修改目录solr-6.3.0/server/solr/car/conf下的文件solrconfig.xml,

首先在solrconfig.xml<requestHandler name="/select" class="solr.SearchHandler">之上添加如下语句,
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">    
      <lst name="defaults">    
         <str name="config">data-config.xml</str>    
      </lst>    
</requestHandler>
然后在solr-6.3.0/server/solr/car/conf下新建data-config.xml文件。里面内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
  <dataSource name="source" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.12.1:3306/car" user="root" password="teno123456" batchSize="-1" />

  <document>
    <entity name="car" pk="id" dataSource="source"
      query="select * from buick"
      deltaImportQuery="select * from buick where id='${dih.delta.id}'"
      deltaQuery="select id from buick where create_time>'${dataimporter.last_index_time}'">
      
      <field column="id" name="id" />
      <field column="model" name="model"/>
      <field column="name" name="name" />
	  <field column="desc" name="desc" />
      <field column="create_time" name="create_time"/>
    </entity>
  </document>
</dataConfig>

注意需将mysql的jdbc驱动包mysql-connector-java-5.1.32.jar,及数据导入使用的包solr-dataimporthandler-6.3.0.jar、solr-dataimporthandler-extras-6.3.0.jar 拷贝到目录solr-6.3.0/server/solr-webapp/webapp/WEB-INF/lib中,并重启solr。

4、按上面步骤,配置好core并重启solr后,初始化schema,命令如下

curl -X POST -H 'Content-type:application/json' --data-binary '{    
"add-field":{"name":"model","type":"string","stored":true,"multiValued":false,"indexed":true},
"add-field":{"name":"name","type":"text_ik","stored":true,"multiValued":false,"indexed":true},
"add-field":{"name":"desc","type":"text_ik","stored":true,"multiValued":false,"indexed":true},
"add-field":{"name":"create_time","type":"date","stored":true,"multiValued":false,"indexed":true}
}' http://192.168.12.12:8983/solr/car/schema

可以看到,设置了name与desc支持中文分词。

5、接下来,打开solr6.3控制台,如下图所示 solr 点击”Execute“按钮,即可将数据导入,可点击”Refresh Status“按钮刷新导入状态,结果如下图所示 solr 查询结果如下图 solr

结束。


赞赏(Donation)
微信(Wechat Pay)

donation-wechatpay