热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

尚未成功启动solr的,请参考我的另一篇文章:http:www.cnblogs.comzhuwenjoycep6506359.html(solr6.4.1搜索引擎启动eclipse启动)本
尚未成功启动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 'core3': Unable to create core [core3] Caused by: Can't find resource 'solrconfig.xml' in classpath or 'D:\solr\core3'为了避免这个错误,我们首先需要为这个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,把第二步:创建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地址中的&符号必须替换为&否则会报错: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文件中所有的重点3:当点击Add Core按钮之后,原先的D:\solr\solrhome\core3\schema.xml文件将被删除,随之增加D:\solr\solrhome\core3\conf\managed-schema(注意,没有后缀名)以下是我本地的managed-schema文件

注意,不要缺失w10_id标签,否则会报错:

core3: org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: QueryElevationComponent requires the schema to have a uniqueKeyField.第四步:复制stopwords_*.txt文件到D:\solr\core3\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.txtD:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\stopwords_en.txtit;id;hy;lv;hu;pt;tr;de;hi;da;cz;th;sv; 等等txt文件,总共有31个第五步:复制以下文件到D:\solr\core3\lang\目录下D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\contractions_it.txtD:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\contractions_ca.txtD:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\contractions_ga.txtD:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\contractions_fr.txtD:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\hyphenations_ga.txtD:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\stemdict_nl.txtD:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\lang\stoptags_ja.txt第六步:复制elevate.xml到conf目录下D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\elevate.xml复制到D:\solr\core3\conf第七步:复制以下文件到D:\solr\core3\目录下D:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\protwords.txtD:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\synonyms.txtD:\solr\solr-6.4.1\example\example-DIH\solr\db\conf\stopwords.txtD:\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),如下图右图所示:如果导入失败,需要重来一遍,在选择勾选clean选项(清除之前所有导入索引)外,也可以考虑直接删除数据文件,地址在core3根目录下,有个data文件夹:D:\solr\solrhome\core3\data。

注意勾选上选项 Auto-Refresh Status,这个会自动帮你刷新数据导入状态信息,信息大概变化如下:

请求第一个entity,我这里是w10,数据10万量的表

请求第二个entity,我这里是w100, 数据100万量的表

 请求第三个entity,我这里是w1000, 数据1000万量的表导入成功后,信息界面显示如下:数据导入成solr索引成功,总共花费了5分钟06秒。这时候就可以去掉勾选项Auto-Refresh Status 第十步:gui界面查看导入数据
选择core3,点击菜单Query,什么查询条件都不要加,点击Execute Query按钮查询出solr同步数据如下,表示同步mysql数据成功: 上图中,http地址表示此次查询可以使用这样的get请求方式,其中status 0 表示查询成功,params表示此次查询使用的查询参数。这里显示的全都是默认值。response里的数据代表查询到的数据,可以看到已经查询成功。  第十一步:solr数据状态

选择core4,点击overview,当在tomcat重启后,有可能出现上图中的optimize now,并且Optimized状态显示为叉叉,这是solr在告诉你这个core4的数据索引并没有按照solr的索引排序以达到最佳查询状态,只需要点击optimize now进行索引重新排序就可以了。

但是注意,这需要花费一定时间,所以会损失性能,当然,重新排序后,性能会提高。

    

推荐阅读
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Inno Setup区段之Components篇相关知识详解
    本文详细介绍了Inno Setup区段之Components篇相关的知识,包括Components和Types的使用方式以及各个参数的说明,希望对读者有一定的参考价值。内容涵盖了ComponentsName、Description、Types、ExtraDiskSpaceRequired、ExtraDiskSpaceRequiredFlags等多个关键词,帮助读者更好地理解和应用Inno Setup区段之Components篇的知识。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 小程序wxs中的时间格式化以及格式化时间和date时间互转
    本文介绍了在小程序wxs中进行时间格式化操作的问题,并提供了解决方法。同时还介绍了格式化时间和date时间的互相转换的方法。 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 本文整理了Java中org.apache.solr.common.SolrDocument.setField()方法的一些代码示例,展示了SolrDocum ... [详细]
  • STM32 IO口模拟串口通讯
    转自:http:ziye334.blog.163.comblogstatic224306191201452833850647前阵子,调项目时需要用到低波 ... [详细]
author-avatar
宗小胖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有