本文基于Centos 7.2 jdk1.8.0_161apache-tomcat-8.0.52solr-6.6.3

Solr界面介绍

Solr后台地址:http://127.0.0.1:8080/solr/index.html

solr_dashboard.jpg

Dashboard仪表盘:Solr版本信息、JVM、JVM-Memory 等

Logging:Solr运行日志

Core Admin索引库管理:包括创建coreAdd Core、卸载Core Unload、重新加载配置文件reload、优化Optimize

Core SelectorCore核心选择器:概况Overview、分词Analysis、查询Query、数据导入Dataimport

Core Selector的内容在后面再做详细介绍,这里只做简单的认知。

创建Solr Core

Solr home的路径为/opt/solr_home

mkdir -p test/conf

复制configsets/basic_configs/conf/*所有文件到test/conf

cp -R configsets/basic_configs/conf/* test/conf

创建core.properties并编辑该文件

vim test/core.properties
name=test

访问http://127.0.0.1:8080/solr/index.html#/~cores/

依次点击Core AdminAdd Core

nameinstanceDir均为刚才创建的目录test

点击Add Core没有报错则 solr core创建成功

导入MySQL数据

①Solr导入MySQL数据需要数据处理工具(solr-6.6.3/dist)solr-dataimporthandler-6.6.3.jarsolr-dataimporthandler-extras-6.6.3.jar和MySQL驱动mysql-connector-java-5.1.46.jar,并将其复制到solr的lib目录下apache-tomcat-8.0.52/webapps/solr/WEB-INF/lib目录下.

②MySQL xzqh表结构如下:

xzqhdmxzqhmc
110000北京市
110101东城区

行政区划表数据来源:民政部官网民政数据

③Solr core 目录结构:

/opt/solr_home/test

|-- conf
|   |-- currency.xml
|   |-- elevate.xml
|   |-- lang
|   |-- managed-schema
|   |-- params.json
|   |-- protwords.txt
|   |-- solrconfig.xml
|   |-- stopwords.txt
|   `-- synonyms.txt
|-- core.properties
`-- data
    |-- index
    |-- snapshot_metadata
    `-- tlog

solrconfig.xmlconfig节点增加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>

data-config.xml增加导入MySQL数据时的处理SQL,column对应数据库字段中的列名,name是Solr中的字段名

<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
   <dataSource name="db_xzqh" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://ip:port/db_name" user="user" password="password"/>
   <document>
       <entity name="entity_xzqh" dataSource="db_xzqh"  query="select id,xzqhdm,xzqhmc from xzqh">
           <field column="id" name="id" />
           <field column="xzqhdm" name="dm" />
           <field column="xzqhmc" name="mc" />
       </entity>
   </document>
</dataConfig>

managed-schema里配置solr字段处理器,此处的namedata-config.xml中的name对应

<field name="dm" type="string" indexed="true" stored="true" required="true" multiValued="false"/>
<field name="mc" type="string" indexed="true" stored="true" required="true" multiValued="false"/>

此处没有配置id是因为id已经默认配置了
solr默认配置了<uniqueKey>id</uniqueKey>,如果要处理的数据不包含主键,则需要注释此项
string是solr自带的fieldType,对中文分析并不友好,需要IKAnalyzerHanlp等分析器

重启Solr应用

通过页面test->Dataimport->Execute执行数据导入,Refresh Status刷新查看导入结果,重点观察右侧执行过程数据,其中Fetched是获取的数据数,Skipped是跳过的数据数量,Processed是处理的数据数,如果执行结束后,Skipped为0则需要观察日志报错信息,重点关注data-config.xmlmanaged-schema的配置。

solr_dataimport.png

通过页面test->Query->Execute Query查询数据,如果右侧有返回结果则代表数据导入成功。

solr_query.png

标签: solr

添加新评论