将Mysq数据导入solr索引库

本文的基础环境都是在centos 64bit,jdk1.7.79

将mysql 的jar 包添加到/home/hadoop/cloudsolr/solr-4.10.4/contrib/dataimporthandler/lib 下

修改对应的solrconfig.xml 文件我的core 是collection1,配置文件example/solr/collection1/conf/solrconfig.xml

在配置文件中添加了:

  <lib dir="/home/hadoop/cloudsolr/solr-4.10.4/dist/" regex="solr-dataimporthandler-\d.*\.jar" />
   <lib dir="/home/hadoop/cloudsolr/solr-4.10.4/contrib/dataimporthandler/lib/" regex=".*\.jar" />

还是在solrconfig配置文件中

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

vim db-data-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
    <dataSource driver="com.mysql.jdbc.Driver"
                    url="jdbc:mysql://ip:3306/database"
                                    user="laiba"
                                     password="laiba123"
                                                                   <span style="color:#FF0000;"> batchSize="-1"</span>/><!-- 注意:mysql中一定要batchSize="-1" 否则会报异常-->
    <document>
            <entity name="bns_article" pk="id"
                            query="select id,title,author,cover,digest, content from bns_article"
                                            deltaImportQuery="select id,title, author, cover,digest, content from bns_article where id=‘${dataimporter.delta.ID}‘"
                                                            deltaQuery="select id,title, author, cover, digest,content from bns_article where  to_char(updatetime,‘yyyy-mm-dd hh24:mi:ss‘)> ‘${dataimporter.last_index_time}‘">
                                                                        <field column="id" name="id"/>
                                                                                    <field column="title" name="title"/>
                                                                                     <field column="author" name="author"/>
                                                                                     <field column="cover" name="cover"/>
                                                                                     <field column="digest" name="digest"/>
                                                                                     <field column="content" name="content"/>
                                                                                      </entity>
                                      </document>
                                       </dataConfig>

第三:配置schema.xml文件 添加一下字段(也就是要生成索引的数据库字段) (根据上一篇IK分词的设置,也可以把字段设置成需要分词的)

添加2个字段:

   <field name="cover" type="string" indexed="true" stored="true" multiValued="false"/>
   <field name="digest" type="string" indexed="true" stored="true" multiValued="false"/>

重启服务后出现错误提示:

HTTP ERROR 500

Problem accessing /solr/. Reason:

    {msg=SolrCore ‘collection1‘ is not available due to init failure: RequestHandler init failure,trace=org.apache.solr.common.SolrException: SolrCore ‘collection1‘ is not available due to init failure: RequestHandler init failure
    at org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:745)
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:347)
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    at org.eclipse.jetty.server.Server.handle(Server.java:368)

问题原因:

   <!-- the dataimport requestHandler -->
       <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport. DataImportHandler">
               <lst name="defaults">
              <str name="config">db-data-config.xml</str>
             </lst>
       </requestHandler> 将<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport. DataImportHandler"> 换行了。

解决办法:
将<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport. DataImportHandler"> 调整在一行即可

打开集群

导入数据

查询

参考地址:http://wiki.apache.org/solr/DIHQuickStart

时间: 2024-10-10 04:06:25

将Mysq数据导入solr索引库的相关文章

将数据库的数据导入solr索引库中

在solr与tomcat整合文章中,我用的索引库是mycore,现在就以这个为例. 首先要准备jar包:solr-dataimporthandler-4.8.1.jar.solr-dataimporthandler-extras-4.8.1.jar和mysql-connector-java-5.0.7-bin.jar这三个包到solr的tomcat的webapps\solr\WEB-INF\lib下 在这个文件夹的conf下配置两个文件,添加一个文件.先配置solrconfig.xml. 在该文

使用solrj操作solr索引库

(solrj)初次使用solr的开发人员总是很郁闷,不知道如何去操作solr索引库,以为只能用<五分钟solr4.5教程(搭建.运行)>中讲到的用xml文件的形式提交数据到索引库,其实没有那么麻烦,solr配套有好多的客户端用于操作索引库,下面我们来讲如何用solrj去操作solr索引库. 一.认识solrj solrj是solr的java客户端,用于访问solr索引库.它提供了添加.删除.查询.优化等功能. 二.下载 百度.google以下solrj下载,你会发现根本就没有,那么我们该到哪儿

Oracle 数据导入到新库后出现中文乱码

Oracle 数据导入到新库出现中文乱码的原因:旧库和新库的字符集不一致引起的.1.查询字符集的值select parameter,value from nls_database_parameters where parameter='NLS_CHARACTERSET';2.更改字符集SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP MOUNT;SQL> ALTER SESSION SET SQL_TRACE=TRUE;SQL> ALTER SYSTEM E

维护solr索引库

一 2)solrcore    一个solr下可以有多个solrcore,每个solrcore就是一个独立的索引库3)solrconfig.xml    lib:配置solr的扩展包的位置,不指定路径的话就是collection1/lib目录,可以自动加载.如果没有需要手动创建    dataDir:索引文件保存的位置.如果不指定默认是Collection1/data目录.如果没有会自动生成    requestHandler:请求的url及对应的处理器的配置4)添加solrcore    1.

solrj操作solr索引库(流程)

声明:博主自己记录以免忘记,所以无逻辑无参考价值.小女子就是酱紫任性 ---------首先dao层 访问索引库的类.定义一些通用的数据访问方法. 业务逻辑就是查询索引库. 参数:SolrQuery对象 业务逻辑: 1.根据Query对象进行查询. 2.返回查询结果.List<SearchItem>.查询结果的总记录数. 需要把返回结果封装到pojo中,至少包含两个属性:List<SearchItem>.Long recordCount 再包含一个总页数. @Repositoryp

[hadoop读书笔记] 第十五章 sqoop1.4.6小实验 - 将mysq数据导入hive

安装hive 1.下载hive-2.1.1(搭配hadoop版本为2.7.3) 2.解压到文件夹下 /wdcloud/app/hive-2.1.1 3.配置环境变量 4.在mysql上创建元数据库hive_metastore编码选latin,并授权 grant all on hive_metastore.* to 'root'@'%' IDENTIFIED BY 'weidong' with grant option; flush privileges; 5.新建hive-site.xml,内容

Solr索引库l配置文件schema.xm要点翻译

<?xml version="1.0" encoding="UTF-8" ?>   略... <!--   这是Solr的schema文件,应该命名为schema.xml,并且在solr home的conf目录下 (如,默认在./solr/conf/schema.xml).  有关如何根据需要定制化该文件,请参照:  http://wiki.apache.org/solr/SchemaXml  性能须知: 这里包含了很多实际应用不需要的可选项. 为

JAVAEE——宜立方商城07:Linux上搭建Solr服务、数据库导入索引库、搜索功能的实现

1. 学习计划 1.Solr服务搭建 2.Solrj使用测试 3.把数据库中的数据导入索引库 4.搜索功能的实现 2. Solr服务搭建 2.1. Solr的环境 Solr是java开发. 需要安装jdk. 安装环境Linux. 需要安装Tomcat. 2.2. 搭建步骤 第一步:把solr 的压缩包上传到Linux系统 第二步:解压solr. 第三步:安装Tomcat,解压缩即可. 第四步:把solr部署到Tomcat下. 第五步:解压缩war包.启动Tomcat解压. tail -f ../

(转)淘淘商城系列——导入商品数据到索引库——Service层

http://blog.csdn.net/yerenyuan_pku/article/details/72894187 通过上文的学习,我相信大家已经学会了如何使用Solrj来操作索引库.本文我们将把商品数据导入到索引库中的Service层代码编写完毕! 首先在taotao-search-interface工程中新建一个接口,如下图所示. 可以看到importAllItemToIndex方法的返回值类型是TaotaoResult,当你纠结返回值是什么的时候,你就可以使用TaotaoResult.