ysoren 发表于 2017-12-20 11:13:18

[jjzhu学java]之solr4.9同步mysql数据

  Solr是一个高性能,採用Java5开发,基于Lucene的全文搜索server。同一时候对其进行了扩展,提供了比Lucene更为丰富的查询语言,同一时候实现了可配置、可扩展并对查询性能进行了优化,而且提供了一个完好的功能管理界面,是一款很优秀的全文搜索引擎。
  能够将数据库中的数据导入到solr中,对于百万级别的数据能够高速响应查询。
1、安装jdk
  JDK版本号须要1.7以上
2、安装solr
  下载solr压缩包,解压安装包。进入到SOLR_HOME\example文件夹下,执行命令java –jar start.jar启动solr


  Solr默认port为8983,訪问http://localhost:8983/solr,若有例如以下界面,则启动成功


3、导入并更新数据相关配置
  Solr提供了将数据库数据导入到solr索引库的功能(dataimport)
3.1、下载数据库驱动包
  下载mysql的驱动包。并放在{%SOLR_HOME%}contrib\dataimporthandler\lib文件夹下

3.2、配置solrconfig.xml
3.2.1、引用相关库
  solrconfig.xml包括了用于配置自身行为的绝大部分參数,其作用范围是当前core。位置在文件文件夹该文件位于{%solr_home%} example\solr\collection1\conf下。
  数据导入须要引用mysql的驱动包和DataImport所需的包。
  在文件里加入例如以下内容:
  <libdir=&quot;../../../contrib/dataimporthandler/lib&quot;regex=&quot;.*\.jar&quot; />
  <lib dir=&quot;../../../dist/&quot;regex=&quot;solr-dataimporthandler-\d.*\.jar&quot; />

3.2.2、配置requestHandler
  在solrconfig.xml中增加例如以下配置:
  <requestHandlername=&quot;/dataimport&quot;class=&quot;org.apache.solr.handler.dataimport.DataImportHandler&quot;>
  <lst name=&quot;defaults&quot;>
  <str name=&quot;config&quot;>data-config.xml</str>
  </lst>
  </requestHandler>

  3.3、配置schema.xml
  Schema.xml能够灵活的配置不同类型的字段,所在位置与solrconfig.xml同级。

  导入数据须要配置与数据库中字段一致的类型,在配置文件里

3.3、配置数据源
  在与solrconfig.xml同级文件夹下({%solr_home%}example\solr\collection1\con),建立与3.2.2中配置中同名的数据配置文件data-config.xml,

  并加入例如以下内容
  <dataConfig>
  <!-- driver: 数据库驱动名
  url:数据库路径
  user:数据库用户
  password:数据库密码
  batchSize:防止在导入数据过程中内存溢出
  -->
  <dataSource type=&quot;JdbcDataSource&quot;
  driver=&quot;com.mysql.jdbc.Driver&quot;
  url=&quot;jdbc:mysql://localhost/exercise&quot;
  user=&quot;root&quot;
  password=&quot;&quot;
  batchSize=&quot;-1&quot;/>
  <document>
  <!--要导入的表,能够配置多个
  并查询出要建立索引的字段
  -->
  <entity name=&quot;customerinfo&quot; query=&quot;selectcustomerID,customerName,PID,telephone from customerinfo&quot;>
  <field column=&quot;customerID&quot; name=&quot;id&quot;/>
  <field column=&quot;customerID&quot; name=&quot;customerID&quot;/>
  <field column=&quot;customerName&quot;name=&quot;customerName&quot;/>
  <field column=&quot;PID&quot; name=&quot;PID&quot;/>
  <field column=&quot;telephone&quot; name=&quot;telephone&quot;/>
  </entity>
  </document>
  </dataConfig>

4、导入数据
  訪问solr界面


  Command选择full-import,Entity选择要导入的表,再点击Execute便可导入数据

  完毕后会提示索引建立完毕。

  然后在Query界面能够输入相关查询条件进行查询

robin6621 发表于 2017-12-20 11:31:44

111
页: [1]
查看完整版本: [jjzhu学java]之solr4.9同步mysql数据