将数据库的数据导入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。

在该文件下添加一个新节点。

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

在solrconfig.xml的同目录下创建data-config.xml。

配置:

<dataConfig>
    <dataSource type="JdbcDataSource"
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/courseman"
              user="root"
              password="mysql" />
    <document>
        <entity name="student"
            query="SELECT * FROM student">
            <field column="id" name="id" />
            <field column="name" name="name" />
            <field column="gender" name="gender" />
            <field column="major" name="major" />
            <field column="grade" name="grade" />
        </entity>
    </document>
</dataConfig>

schemal.xml的配置

<?xml version="1.0" ?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<schema name="example core one" version="1.1">

    <fieldtype name="string"  class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>

  <!-- general -->
  <field name="id"   type="int"    indexed="true"  stored="true"  />
  <field name="gender"  type="string"    indexed="true"  stored="true"   />
  <field name="name"      type="string"    indexed="true"  stored="true"   />
  <field name="major"     type="string"    indexed="true"  stored="true"   />
  <field name="grade"     type="string"    indexed="true"  stored="true"   />
  <field name="_version_" type="long"      indexed="true"  stored="true"/>

 <!-- field to use to determine and enforce document uniqueness. -->
 <uniqueKey>id</uniqueKey>

 <!-- field for the QueryParser to use when an explicit fieldname is absent -->
 <defaultSearchField>name</defaultSearchField>

 <!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
 <solrQueryParser defaultOperator="OR"/>
</schema>

默认的文件不是这样的,稍微改动了一下。

field 的type类型是根据fieldtype 的name定义的。class是solr自定义的不能更改。

其他的一些以后再解释。

现在可以将数据库的数据导入solr了。

点击Execute就可以了。

数据库的数据导进来了。

数据库的表。

数据库表结构。

时间: 2024-12-27 21:12:37

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

将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/clouds

第一个lucene程序,把一个信息写入到索引库中、根据关键词把对象从索引库中提取出来、lucene读写过程分析

新建一个Java Project :LunceneTest 准备lucene的jar包,要加入的jar包至少有: 1)lucene-core-3.1.0.jar     (核心包) 2) lucene-analyzers-3.1.0.jar    (分词器) 3) lucene-highlighter-3.1.0.jar    (高亮器) 4) lucene-memory-3.1.0.jar       (高亮器) 新建实体类:Article, 属性:id,title,content; gett

使用solrj操作solr索引库

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

效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转

效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载])  本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较   (三)SSIS的简介   (四)数据库中存储过程示例(SSIS应用需要) (五)Excel模板的制作(这步这么简单,稍微介绍一下)   (六)SSIS操作过程(生成Package,用来调用)(下一篇随笔将详细讲解制作Package包的过程,图片太多,篇幅过长,因此本文将直接采用生成的Package包进行

Sqoop1.4.4将MySQL数据库表中数据导入到HBase表中

问题导读:         1.--hbase-table.--hbase-row-key.--column-family及--hbase-create-table参数的作用? 2.Sqoop将关系型数据库表中数据导入HBase中,默认Rowkey是什么? 3.如果关系型数据库表中存在多关键字,该怎么办? 一.简介及部分重要参数介绍 Sqoop除了能够将数据从关系型数据库导入到HDFS和Hive中,还能够导入到HBase表中. --hbase-table:通过指定--hbase-table参数值

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

ArcCatalog中将SQLServer中的空间数据导入到Oracle库中

ArcCatalog中将SQLServer中的空间数据导入到Oracle库中 1.在ArcCatalog中新建数据库连接->SQLServer 2.在ArcCatalog中新建数据库连接->Oracle 3.SQLServer中的空间数据导入到Oracle库中 这里有两种方法可以使用: 1)复制粘贴数据 在源数据库(SQLServer)中选择要导出的数据,右键点击copy 在目标数据库(Oracle)中右键点击paste 特别需要注意的是: 将Config.Keyword项的默认值DEFAUL

VBS将本地的Excel数据导入到SQL Server中

最近有个测试,需要将本地的Excel数据导入到SQL Server中,所以就写了一个这个脚本,供有需要的同学进行参考.因为在此演示测试,所以准备的数据都比较简单. 我们准备将本地的Excel的A列插入到数据库中的Username列 首先准备本地的Excel数据 然后准备数据库及表结构 开始上脚本 Dim DB,objRecordSet Dim Excel 'SQL Server服务器地址 Dim SQLserver 'SQL Server 数据库 Dim Database 'SQL Server

我爱java系列之---【如何把数据库中查到的Skulist数据转换成elastic索引库中SkuInfo类数据?】

这里采用的是阿里的json转换,比传统的遍历然后再一个一个封装速度快多了.(例:sku类转换称skuinfo类) public void importDataToEs(String spuId) { List<Sku> skuList = skuFeign.findListBySpuId(spuId); if (null == skuList){ throw new RuntimeException("此商品对应的库存数据为空,无数据导入索引库:"+spuId); } //