从sqlserver导入数据到solr, solr 采用的版本6.0.1,并且本机解压到:F:\Tool\solr-6.0.1;

1. 命令启动solr,创建core

启动,进入solr文件目录下,执行:bin\solr start -p 8984

创建core,执行:bin\solr create -c postcore

检查是否创建成功:http://127.0.0.1:8984/solr

2.  jar包添加,下载地址 https://gist.github.com/maxivak/3e3ee1fca32f3949f052

  • 下载jar包 sqljdbc4.jar , 并且复制到

    F:\Tool\solr-6.0.1\server\solr-webapp\webapp\WEB-INF\lib
  • 将solr-dataimporthandler-6.0.1.jar、solr-dataimporthandler-extras-6.0.1.jar复制到lib下面,这两个文件位置:
  • F:\Tool\solr-6.0.1\dist

    复制到

    F:\Tool\solr-6.0.1\server\solr-webapp\webapp\WEB-INF\lib
  • 采用mmseg4j作为中文分词,下载mmseg4j-solr-2.3.0.jar、mmseg4j-core-1.10.0.jar ,并且复制到:
    F:\Tool\solr-6.0.1\server\solr-webapp\webapp\WEB-INF\lib

3. 编辑solrconfig文件,添加dataimport

  • 路径:

    F:\Tool\solr-6.0.1\server\solr\postcore\conf
  • 添加文本:
    <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
    <str name="config">data-config.xml</str>
    </lst>
    </requestHandler>

4. 编辑data-config.xml

  • 路径,如果不存在data-config.xml则创建

    F:\Tool\solr-6.0.1\server\solr\postcore\conf
  • 添加文本,deltalImportQuery:增量操作,deltaQuery: 删除操作,对于其它字段所代表的意义简单,就不多做解释;
    <?xml version="1.0" encoding="UTF-8" ?>
    <dataConfig>
    <dataSource type="JdbcDataSource"
    driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
    url="jdbc:sqlserver://127.0.0.1; databaseName=postdb"
    user="sa"
    password="123456"/>
    <document>
    <entity name="post"
    pk="id"
    query="SELECT TOP 1000 [id],[type],[isdel],[msg],[createUser],[createTime] FROM [postdb].[dbo].[post]"
    deltalImportQuery="SELECT TOP 1000 [id],[type],[isdel],[msg],[createUser],[createTime] FROM [postdb].[dbo].[post] where id='${dih.delta.id}'"
    deltaQuery ="select id from [postdb].[dbo].[post] where updated_ad>'${dih.last_index_time}'">
    <field column="id" name="id" />
    <field column="type" name="type" />
    <field column="isdel" name="isdel" />
    <field column="msg" name="msg" />
    <field column="createUser" name="createUser" />
    <field column="createTime" name="createTime" />
    </entity>
    </document>
    </dataConfig>

5. 编辑managed-schema文件,solr6.0.1 没有schema.xml文件

  • 打开managed-schema文件路径,路径:

    F:\Tool\solr-6.0.1\server\solr\postcore\conf
  • 配置分词
    <fieldtype name="textComplex" class="solr.TextField" positionIncrementGap="100" multiValued="true">
    <analyzer>
    <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex"/>
    </analyzer>
    </fieldtype>
    <fieldtype name="textMaxWord" class="solr.TextField" positionIncrementGap="100">
    <analyzer>
    <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" />
    </analyzer>
    </fieldtype>
    <fieldtype name="textSimple" class="solr.TextField" positionIncrementGap="100">
    <analyzer>
    <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" />
    </analyzer>
    </fieldtype>
  • 配置field
  • <field name="allmm" type="textComplex" multiValued="true" indexed="true" required="false" stored="false" />
    <field name="type" type="int" indexed="true" stored="true" required="false" />
    <field name="isDel" type="boolean" indexed="true" stored="true" required="false" />
    <field name="msg" type="textComplex" indexed="true" stored="true" required="false" />
    <field name="createUser" type="textComplex" indexed="true" stored="true" required="false" />
    <field name="createTime" type="date" indexed="true" stored="true" required="false" />

    <copyField source="msg" dest="allmm" />
    <copyFiled source="createUser" dest="allmm" />
    <defaultSearchField>allmm</defaultSearchField>
    <solrQueryParser defaultOperator="OR"/>

6. 重启solr服务

F:\Tool\solr-6.0.1>bin\solr restart -p 8984

7. 执行导入,点击 execute 按钮,全量导入;点击refresh Status按钮查看执行状态

9. 测试分词:可以看到在allmm,分词分为哪些,然后就可以根据这些分词进行查询;

10. 查询:关键字:“国家电网”,可以查询到数据,如果关键字是 “国家”,就不会查询到数据,这个是分词导致的

至此sqlserver 导入数据到solr,基本完成。

solr 导入数据的更多相关文章

  1. solr增量数据配置说明

    转帖地址:http://www.blogjava.net/conans/articles/379546.html 以下资料整理自网络,觉的有必要合并在一起,这样方便查看.主要分为两部分,第一部分是对& ...

  2. 搜索引擎Solr系列(二): Solr6.2.1 从MySql中导入数据

     一:建立MySql测试表,如下图: 二:solr导入配置: 1.新建demo core文件夹,并修改managed-schema里面的配置文件建立索引字段: 2.把mysql-connector-j ...

  3. Solr导入MySql中的数据

    1.参照 http://www.cnblogs.com/luxh/p/5016894.html 部署好solr的环境 2.在solr_home下建立一个core_item目录 [root@iZ23ex ...

  4. Solr学习笔记之3、Solr dataimport - 从SQLServer导入数据建立索引

    Solr学习笔记之3.Solr导入SQLServer数据建立索引 一.下载MSSQLServer的JDBC驱动 下载:Microsoft JDBC Driver 4.0 for SQL Server ...

  5. Solr导入数据库数据

    接Solr-4.10.2与Tomcat整合.1.在solrconfig.xml中添加数据导入节点,solrconfig.xml路径为D:\solr\data\solr\collection1\conf ...

  6. Solr 07 - Solr从MySQL数据库中导入数据 (Solr DIH的使用示例)

    目录 1 加入数据导入处理器的jar包 2 加入数据库驱动包 3 配置solrconfig.xml文件 3.1 配置lib标签 - 加入驱动jar包 3.2 配置requestHandler标签 - ...

  7. Solr导入MySQL数据之dataimport-handler

    Solr不借助手动JSolr编程情况下也可以将Mysql的数据导入到Solr中.实现方式是安装dataimport-Handler从关系数据库将数据导入到索引库. 1.向SolrCore中加入jar包 ...

  8. solr特点六: DIH (从数据源导入数据)

    在这个结构化数据和非结构化数据的数量都很庞大的年代,经常需要从数据库.XML/HTML 文件或其他数据源导入数据,并使数据可搜索.过去,要编写自定义代码才能创建到数据库.文件系统或 RSS 提要的自定 ...

  9. Solr导入MongoDB数据

    数据导入方式: 全量导入和增量导入: query 是全量导入时,把你的数据中查到的数据全部导入,deltaImportQuery 和 deltaQuery 是增量导入数据所需要的两个查询语句.delt ...

随机推荐

  1. Week2 Bing词典Android客户端案例分析

    一.软件调研 运行平台:Android 4.4.4 必应版本:5.2.2 1.bug发现 1.1 bug标题:单词挑战无法加载和刷新 bug详细描述:学习界面中的单词挑战模块,点击后没有任何反映,并且 ...

  2. SpringMVC核心——视图渲染(包含视图解析)问题

    一.本来想说的是返回值处理问题,但在 SpringMVC 中,返回值处理问题的核心就是视图渲染.所以这里标题叫视图渲染问题. 本来想在上一篇文章中对视图解析进行说明的,但是通过源码发现,它应该算到视图 ...

  3. Scrum 项目4.0--软件工程

    1.准备看板. 2.任务认领,并把认领人标注在看板上的任务标签上. 林宇粲:处理数据的存储:目前先进行数据库表的分析和创建. 蔡舜:对复利计算,单利计算,代码进行编写. 王昕明:编写一些用户登录,操作 ...

  4. 移动前端页面与Chrome的远程真机调试

    一年不见,博客园都长草啦...... 前几日刚入手新手机小米5,系统真心流畅呀.为啥要买小米5呢,因为要提高生产力呀,好好玩移动前端开发呀哈哈哈 那么问题来了,要怎么调试手机上的前端页面呢? 很久很久 ...

  5. Json的序列化和反序列化

    1.利用js进行序列化成字符串和反序列化 var personObj = {name:"Tom",age:16}; // 利用JS序列化成字符串 var personStr = J ...

  6. 【C#进阶系列】06 类型和成员基础

    这些东西是基础中的基础,基本上是本书都会讲这个.但是很多东西到处都有,所以只捡了以下的这些写下来. 关于类型的可见性和可访问性 也就是public,internal这种东西,但是还是有个东西要提一下, ...

  7. spring中的DisposableBean和InitializingBean,ApplicationContextAware的用法

    在spring容器初始化bean和销毁bean的以前的操作有很多种, 目前我知道的有:在xml中定义的时候用init-method和destory-method,还有一种就是定义bean的时候实现Di ...

  8. 泛函编程(19)-泛函库设计-Parallelism In Action

    上节我们讨论了并行运算组件库的基础设计,实现了并行运算最基本的功能:创建新的线程并提交一个任务异步执行.并行运算类型的基本表达形式如下: import java.util.concurrent._ o ...

  9. Java中的Set集合接口实现插入对象不重复的原理

    在java的集合中,判断两个对象是否相等的规则是: 1).判断两个对象的hashCode是否相等 .      如果不相等,认为两个对象也不相等,完毕       如果相等,转入2)(这一点只是为了提 ...

  10. ahjesus mongodb指定到数据盘连接不上的解决方案

    关于配置路径指定到数据盘会出现连接不上的情况 我发现是因为数据盘权限不足引起的,目前没找到治本的方法 有个治标的方法就是设置数据盘的权限和用户 sudo chmod 777 * -R  /path/d ...