使用Solr索引查询Mysql数据

系统环境:Centos7
Solr版本:5.5.4
mysql:5.7.18
数据表规模:60万

1.创建表,导入数据

其中,ROW_ID为主键

2.启动solr

bin/solr start

3.创建collection

[root@zk01 solr-5.5.4]# bin/solr create -c awreports

Copying configuration to new core instance directory:
/soft/solr-5.5.4/server/solr/awreports

Creating new core 'awreports' using command:
http://localhost:8983/solr/admin/cores?action=CREATE&name=awreports&instanceDir=awreports

{
  "responseHeader":{
    "status":0,
    "QTime":1664},
  "core":"awreports"}

4.修改/solr-5.5.4/server/solr/awreports/conf/managed-schema文件,修改旧的field【id】和uniqueKey为row_id

<field name="row_id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="accountId" type="string" indexed="true" stored="true" required="true" />
<field name="day" type="date" indexed="true" stored="true" />
<field name="impressions" type="int" indexed="true"/>

<defaultSearchField>accountId</defaultSearchField>  

<uniqueKey>row_id</uniqueKey>

5.修改conf/solrconfig.xml文件,添加数据库数据的xml

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">   
    <lst name="defaults">   
       <str name="config">data-config.xml</str>   
    </lst>
</requestHandler>

6.创建data-config.xml文件,内部主要配置了访问数据库的用户名、密码,以及对应的数据库的字段

<dataConfig>
    <dataSource type="JdbcDataSource"
    driver="com.mysql.jdbc.Driver"
    url="jdbc:mysql://127.0.0.1:3306/AWReports"
    user="root"
    password="123456"/>
    <document>
        <entity name="awReportAccount"
            query="SELECT AW_ReportAccount.ROW_ID,AW_ReportAccount.ACCOUNT_ID,AW_ReportAccount.`DAY`,AW_ReportAccount.IMPRESSIONS from AW_ReportAccount">
            <field column="ACCOUNT_ID" name="accountId" />
            <field column="ROW_ID" name="row_id"/>
            <field column="DAY" name="day"/>
        </entity>
    </document>
</dataConfig>

7.将solr-dataimporthandler-5.5.4.jar从solr-5.5.4/dist/文件夹下copy到solr-5.5.4/server/solr-webapp/webapp/WEB-INF/lib当中,此java包是导入数据用的;下载mysql-connector-java-5.1.31-bin.jar包,将它copy到solr-5.5.4/server/lib下;

8.复制solr-5.5.4/example/example-DIH/solr/solr/conf下的admin-extra.html、admin-extra.menu-bottom.html、admin-extra.menu-top.html到/solr-5.5.4/server/solr/awreports/conf下;

9.重启solr,完成全量数据导入,在每次全量数据导入执行的时候,原有索引会被删除,如果不想删除原有索引,可以选择clean为false

[root@zk01 solr-5.5.4]# bin/solr restart
Sending stop command to Solr running on port 8983 ... waiting 5 seconds to allow Jetty process 12735 to stop gracefully.
Waiting up to 30 seconds to see Solr running on port 8983 [|]  
Started Solr server on port 8983 (pid=21925). Happy searching!

10.web界面查询

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值