尚未成功启动solr的,请参考我的另一篇文章:http://www.cnblogs.com/zhuwenjoyce/p/6506359.html(solr6.4.1 搜索引擎启动eclipse启动)
本篇文章主要介绍如何同步mysql数据库
 
添加core命名为core3(之前试验了好几个都失败了…)
注意,这里的两个输入框*Dir如果不指定目录,那么默认这个core3目录将应该在solrhome根目录下,instanceDir和dataDir必须是两个已存在的目录
我这里的core3目录是D:\solr\solrhome\core3(这个core3目录也要先建立出来)
 
先不要点击按钮Add Core,因为会报错:
Error CREATEing SolrCore 'core1': Unable to create core [core1] Caused by: Can't find resource 'solrconfig.xml' in classpath or 'D:\solr\core1'
为了避免这个错误,我们首先需要为这个core3做一些准备工作,包括要把Add Core中的solrconfig.xml和schema.xml文件都创建出来。主要分为以下几步:
第一步:创建solrconfig.xml
因为是同步数据库,所以找的是db目录下的solrconfig.xml, D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\solrconfig.xml
(上图工具使用的是一个windows搜索器:Everything.exe)
复制D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\solrconfig.xml黏贴到D:\solr\solrhome\core3目录下。
修改D:\solr\solrhome\core3\solrconfig.xml,把<lib dir= 标签这7个节点里的${solr.install.dir:../../../..}替换为本地solr根目录D:/solr/solr-6.4.1
第二步:创建db-data-config.xml
因为在D:\solr\solrhome\core3\solrconfig.xml中,提到使用db-data-config.xml来导入数据
所以同理,复制db目录下的db-data-config.xml到D:\solr\solrhome\core3\目录下
重点1:db-data-config.xml中,url地址中的&符号必须替换为&amp;否则会报错:
Data Config problem: 对实体 "useUnicode" 的引用必须以 ';' 分隔符结尾。
以下是我本地的db-data-config.xml文件
重点2:所有field标签的name值都必须存在于schema.xml中!(参考第三步:创建schema.xml)
第三步:创建schema.xml
复制D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\managed-schema黏贴为D:\solr\solrhome\core3\schema.xml,这个schema.xml就是Add Core界面的schema文件。
重点1:schema.xml文件定义了所有我们需要在数据库中同步过来的字段,其中db-data-config.xml中导入的字段必须要存在于该schema.xml中所以schema.xml文件决定了在整个solr应用中,所有的字段必须不能重复!建议在solr中对字段命名时采用表名_字段名方式。
重点2:schema.xml文件中所有的<field标签中required="true"属性标志着你所有在solr中的查询都必须有一个字段是这些字段,而且必须有值,否则报错:SolrException missing required field: id
重点3:当点击Add Core按钮之后,原先的D:\solr\solrhome\core3\schema.xml文件将被删除,随之增加D:\solr\solrhome\core3\conf\managed-schema(注意,没有后缀名)
以下是我本地的managed-schema文件
第四步:复制stopwords_*.txt文件到D:\solr\core1\lang\目录下
所有的D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\stopwords_*.txt文件
D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\stopwords_el.txt
D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\stopwords_en.txt
it;id;hy;lv;hu;pt;tr;de;hi;da;cz;th;sv; 等等txt文件,总共有31个
第五步:复制以下文件到D:\solr\core1\lang\目录下
D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\contractions_it.txt
D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\contractions_ca.txt
D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\contractions_ga.txt
D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\contractions_fr.txt
D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\hyphenations_ga.txt
D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\stemdict_nl.txt
D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\stoptags_ja.txt
D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\elevate.xml
第六步:复制以下文件到D:\solr\core1\目录下
D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\protwords.txt
D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\synonyms.txt
D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\stopwords.txt
D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\currency.xml
第七步:重启tomcat,访问solr,增加core
增加一个core就相当于增加了一个数据库,solr本就支持数据库集群,支持以json格式存储数据
点击Core Admin菜单,输入core信息,点击Add Core按钮:
建立成功之后可以查看core3的位置信息:
ps: 如果启动过程中有遇到*.lock文件而报错,那么删除该lock文件重新建立一遍既可成功。
 
第八步:gui界面导入mysql数据库
下拉框选择刚刚建立的core3,选中Dataimport菜单
先检查core3加载的db-data-config.xml文件是否有效,点击Reload按钮校验,当出现信息No information available时则表示校验通过。
初次导入选择full-import全量导入模式,点击Execute按钮执行数据导入,页面右边显示Indexing since则表示正在导入中,在导入过程中,点击Refresh Status则会显示详细的导入信息(Requests,Fetched,Skipped),如下图右图所示:
第九步:gui界面查看导入数据
选择core3,点击菜单Query,什么查询条件都不要加,点击Execute Query按钮
查询出solr同步数据如下,表示同步mysql数据成功:
 
上图中,http地址表示此次查询可以使用这样的get请求方式,其中status 0 表示查询成功,params表示此次查询使用的查询参数。这里显示的全都是默认值。response里的数据代表查询到的数据,可以看到已经查询成功。
 
 
 
 
 

solr6.4.1搜索引擎同步mysql数据库的更多相关文章

  1. solr6.4.1搜索引擎(3)增量同步mysql数据库

    尚未实现首次同步mysql数据库的,请参考我的另一篇文章http://www.cnblogs.com/zhuwenjoyce/p/6512378.html(solr6.4.1搜索引擎同步mysql数据 ...

  2. solr6.4.1搜索引擎(2)首次同步mysql数据库

    尚未成功启动solr的,请参考我的另一篇文章:http://www.cnblogs.com/zhuwenjoyce/p/6506359.html(solr6.4.1 搜索引擎启动eclipse启动) ...

  3. Logstash同步mysql数据库信息到ES

    @font-face{ font-family:"Times New Roman"; } @font-face{ font-family:"宋体"; } @fo ...

  4. 使用canal增量同步mysql数据库信息到ElasticSearch

    本文介绍如何使用canal增量同步mysql数据库信息到ElasticSearch.(注意:是增量!!!) 1.简介 1.1 canal介绍 Canal是一个基于MySQL二进制日志的高性能数据同步系 ...

  5. 使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch

    本文介绍如何使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch. 1.go-mysql-elasticsearch简介 go-mysql-elasti ...

  6. 使用logstash同步mysql数据库信息到ElasticSearch

    本文介绍如何使用logstash同步mysql数据库信息到ElasticSearch. 1.准备工作 1.1 安装JDK 网上文章比较多,可以参考:https://www.dalaoyang.cn/a ...

  7. Elasticsearch学习(2) windows环境下Elasticsearch同步mysql数据库

    在上一章中,我们已经能够通过spring boot来使用Elasticsearch,但是由于我们习惯性的将数据写入mysql,所以为了解决这个问题,Elasticsearch为我们提供了一个插件log ...

  8. 如何通过 Docker 部署 Logstash 同步 Mysql 数据库数据到 ElasticSearch

    在开发过程中,我们经常会遇到对业务数据进行模糊搜索的需求,例如电商网站对于商品的搜索,以及内容网站对于内容的关键字检索等等.对于这些高级的搜索功能,显然数据库的 Like 是不合适的,通常我们采用 E ...

  9. django无法同步mysql数据库 Error:1064

    [问题] 具体问题:新建django工程,使用django的manage.py的 migrate命令进行更改. 在初始化数据库表时,失败,错误信息为 django.db.migrations.exce ...

随机推荐

  1. CSS文字大小单位PX、EM、PT

    老是被人问到px.pt和em的区别,自己有时候也会纠结到底该用什么单位,今天特意查了一些文章,下面这篇虽然很久远了,但解释的比较全面,转载收藏之.点击查看原文 这里引用的是Jorux的"95 ...

  2. iOS 之 事件响应者链

    响应者链表示一系列的响应者对象.事件被交由第一个响应者对象处理,如果第一个响应者不处理,事件就沿着响应者链向上传递,交由下一个响应者(Next responder). View->ViewCon ...

  3. HDU1217:Arbitrage(SPFA)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1217 题目大意 在每种钱币间进行各种交换,最后换回自己如果能赚,那么就Yes,否则No 注意应为有负权 ...

  4. 《疯狂Java讲义》(七)---- 方法

    一 方法的参数传递机制 Java方法的参数传递方式只有一种:值传递.就是将实际参数值的副本传入方法内,而参数本身不会受到任何影响. eg. 基本类型的值传递 public class Primitiv ...

  5. Bootstrap入门(九)组件3:按钮组

    Bootstrap入门(九)组件3:按钮组   先引入本地的CSS文件和JS文件(注:1.bootstrap是需要jQuery支持的.2.需要在<body>当中添加) <link h ...

  6. ASP.NET Zero--13.一个例子(6)商品分类管理-删除分类

    1.添加按钮 首先添加一个删除按钮,打开文件Index.js[..\MyCompanyName.AbpZeroTemplate.Web\Areas\Mpa\Views\Category\Index.j ...

  7. php知识点总结(一)

    1.把数组以表格的形式显示 <?php $array = array( '书籍' =>  array( '生活',  '人与自然','动物世界'), '体育用品' =>  array ...

  8. 如何使用DockerHub官方的mysql镜像

    Mysql是一个广泛使用的开源关系型数据库. 如何获取Mysql Docker镜像? docker pull mysql:5.7 如何使用这个Docker镜像? 1.启动一个Mysql Server容 ...

  9. [html5] 学习笔记-Canvas应用

    通过使用HTML5游戏开发的引擎CreatJS,创建HTML5 Canvas上的更好交互. 1.认识CreateJS CreateJS是一个外部库,用它可以比Canvas更方便的绘制图形. 官网:ht ...

  10. python之twisted模块安装

    Twisted是一个事件驱动的网络框架. 最近开始学习了解Twisted,首先肯定要安装twisted模块. 但是在cmd下执行:pip install twisted 出现了下面的问题:" ...