Solr-5.3.1 dataimport 导入mysql数据

      最近需要计算制造业领域大词表每个词的idf,词表里一共九十多万个词,语料一共三百七十多万篇分词后文献。最开始尝试用程序词表循环套语料循环得到每个词的idf,后来又尝试把语料存入mysql然后建立全文索引再循环用sql语句去查每个词的idf,效率都十分不理想。

      最新的想法是利用solr搜索引擎的速度来做,所以首先要把mysql的数据导入solr。

一、开启Solr服务

1、下载solr-5.3.1.tgz包,解压之后为solr-5.3.1

2、通过bin/solr start命令开启solr服务

3、开启服务之后,默认是开启8983端口,此时就可以使用localhost:8983/solr/进行访问了

二、从Mysql数据库中导入数据

1、创建core或collection:bin/solr create -c 集合名

2、从mysql官网中下载一个mysql-connector-java-5.1.25.zip压缩包,解压出一个mysql-connector-java-5.1.25-bin.jar包,将它分别copy到solr-5.3.1/server/lib和solr-5.3.1/server/solr-webapp/webapp/WEB-INF/lib当中(只copy到第一个路径应该就可以)

3、将solr-dataimporthandler-5.3.1.jar和solr-dataimporthandler-extras-5.3.1.jar从solr-5.3.1/dist/文件夹下copy到solr-5.3.1/server/solr-webapp/webapp/WEB-INF/lib当中(只copy第一个文件应该就可以)

4、修改solr-5.3.1/server/solr/集合名/conf/managed-schema文件为schema.xml 

5、在schema.xml添加field(根据实际情况),如下:

<field name="quanwen" type="text_general" indexed="true" stored="true" required="true" />

6、修改solr-5.3.1/server/solr/collection/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>

7、在solr-5.3.1/server/solr/collection/conf/下创建data-config.xml文件,配置访问数据库的用户名、密码、查询语句,column对应数据库中字段、name对应solr的schema.xml中字段(根据实际情况),文件内容如下:  

<dataConfig>
    <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://IP:3306/库名" user="账号" password="密码"/>
    <document>
        <entity name="item" query="select * from 表名">
            <field column="id" name="id" />
            <field column="quanwen" name="quanwen" />
        </entity>
    </document>
</dataConfig>

8、重启服务bin/solr restart

9、

posted @ 2017-06-05 18:29  右介  阅读(2961)  评论(0编辑  收藏  举报