【最佳实践】Solr集群数据迁移至Elasticsearch
Elasticsearch是一款非常强大的搜索引擎,可以让你在海量的数据中快速找到想要的内容。例如,代码搜索:可以帮助您找到相应的代码仓库,还可以实现代码级的搜索及高亮显示;网上shopping:可以帮助您推荐商品。
除了大数据搜索,Elasticsearch结合Logstash和Beats,还被广泛应用在大数据实时分析领域,例如日志分析、指标监控、信息安全等。帮助您探索海量的结构化和非结构化的数据,按需创建可视化报表、对监控数据设置报警阈值,甚至使用机器学习技术,自动识别异常状况、及时发出警报。
在DBRanking 2019年5月的数据库评测中,Elasticsearch在搜索引擎中排名第一,国内也有大量的公司在使用Elasticsearch。并且Elasticsearch在全球的下载量已经超过了3.5亿次。如果您需要将Solr集群中的数据迁移至Elasticsearch,请跟着本文一步步来操作吧。
本文以阿里云Elasticsearch为例,为您演示通过第三方社区提供的solr-to-es工具,将Solr节点中的文档迁移到阿里云Elasticsearch(简称ES)中的方法。
阿里云Elasticsearch兼容开源Elasticsearch的功能,以及Security、Machine Learning、Graph、APM等商业功能,致力于数据分析、数据搜索等场景服务。支持5.5.3、6.3.2、6.7.0、6.8.0和7.4.0等版本,并提供了商业插件X-Pack服务。在开源Elasticsearch的基础上提供企业级权限管控、安全监控告警、自动报表生成等功能。阿里云Elasticsearch为您提供1个月的免费试用活动,单击此处即可免费试用。
环境准备
-
创建阿里云ES实例,要求版本为6.x,本文使用6.3.2 版本,详情请参见创建阿里云Elasticsearch实例。
**说明:** 本文使用的solr-to-es迁移工具仅支持阿里云ES 6.x版本,其他版本需自行测试。
- 开启目标阿里云ES的自动创建索引功能,详情请参见开启自动创建索引。
-
创建阿里云ECS实例,本文使用CentOS 7.3版本,详情请参见步骤一:创建ECS实例。
**说明:** ECS实例需要与阿里云ES实例在同一区域和可用区,以及同一专有网络VPC(Virtual Private Cloud)下。
- 在ECS上安装Solr,本文使用5.0.0版本的Solr,详情请参见Solr官方文档。
- 在ECS上安装Python,要求3.0及以上版本,本文使用Python 3.6.2。
- 在ECS上安装PySolr,要求3.3.3及以上,4.0以下版本。
安装solr-to-es工具
- 连接ECS服务器,下载solr-to-es工具。
- 进入setup.py所在的目录,运行
python setup.py install
命令,安装solr-to-es工具。 -
安装成功后,参考以下命令进行文档迁移。
python __main__.py <solr_url>:8983/solr/<my_core>/select http://<username>:<password>@<elasticsearch_url>:9200 <elasticsearch_index> <doc_type>
|参数|说明| |--|--| |`<solr_url>`|Solr集群的完整访问地址。例如,http://116.62.\*\*.\*\*。| |`<my_core>`|迁移文档对应的SolrCore的名称。| |`<username>`|阿里云ES的访问用户名,默认为elastic。| |`<password>`|阿里云ES的访问密码,在创建实例时设定。| |`<elasticsearch_url>`|阿里云ES实例的内网或外网访问地址。可在实例的基本信息页面获取,详情请参见[查看实例的基本信息](https://help.aliyun.com/document_detail/67804.html?spm=a2c4g.11186623.2.19.18a87461Jp4xKZ#task-2449896)。| |`<elasticsearch_index>`|待写入的Solr文档对应的索引名称。| |`<doc_type>`|对应索引的类型名称。| **说明:** 如果您使用的是其他版本的solr-to-es工具,也可以尝试使用如下命令进行文档迁移,参数详情请参见[solr-to-es](https://github.com/o19s/solr-to-es)。
solr-to-es [-h] [--solr-query SOLR_QUERY] [--solr-fields COMMA_SEP_FIELDS] [--rows-per-page ROWS_PER_PAGE] [--es-timeout ES_TIMEOUT] solr_url elasticsearch_url elasticsearch_index doc_type
本案例使用以上命令会输出`-bash: solr-to-es.py: command not found`的错误。
操作示例
通过以下命令,查询名称为my_core
的SolrCore的所有文档,写入到阿里云ES实例中。对应的索引为elasticsearch_index
,索引类型为doc_type
。
- 在Solr环境中,进入solr-to-es-master/solr_to_es文件夹下。
-
执行以下命令。
python __main__.py 'http://116.62.**.**:8983/solr/my_core/select?q=*%3A*&wt=json&indent=true' 'http://elastic:替换密码@es-cn-so4lwf40ubsrf****.public.elasticsearch.aliyuncs.com:9200' elasticsearch_index doc_type
|参数|说明| |--|--| |`q`|Solr的查询语法,必选,可以使用运算符。`*%3A*`表示查询所有文档。| |`wt`|返回的数据类型,支持JSON、XML、Python、Ruby、CSV等格式。| |`indent`|返回结果是否需要格式化展示,默认为`false`。| 其他参数说明请参见[表 1](https://help.aliyun.com/document_detail/143003.html?spm=a2c4g.11174283.6.832.4d097958P4tOeH#table-lnc-t0w-8ud)。
-
登录目标阿里云ES实例的Kibana控制台。
登录控制台的具体操作步骤请参见[登录Kibana控制台](https://help.aliyun.com/document_detail/122668.html?spm=a2c4g.11186623.2.22.18a87461Jp4xKZ#task-761873)。
-
单击左侧导航栏的Dev Tools(开发工具),在Console中执行以下命令,查看阿里云ES集群服务中是否已成功创建
elasticsearch_index
索引。GET _cat/indices?v
-
执行以下命令,查看迁移成功的文档详情。
GET /elasticsearch_index/doc_type/_search
查询成功后,返回如下结果。
{ "took" : 12, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 2, "max_score" : 1.0, "hits" : [ { "_index" : "elasticsearch_index", "_type" : "doc_type", "_id" : "Tz8WNW4BwRjcQciJ****", "_score" : 1.0, "_source" : { "id" : "2", "title" : [ "test" ], "_version_" : 1648195017403006976 } }, { "_index" : "elasticsearch_index", "_type" : "doc_type", "_id" : "Tj8WNW4BwRjcQciJ****", "_score" : 1.0, "_source" : { "id" : "1", "title" : [ "change.me" ], "_version_" : 1648195007391203328 } } ] } }
相关活动
更多折扣活动,请访问阿里云 Elasticsearch 官网。
阿里云 Elasticsearch 商业通用版,1核2G ,SSD 20G首月免费
阿里云 Logstash 2核4G首月免费

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
初创企业IT治理样板间,企业进行阿里云账号初始化的最佳姿势
企业IT治理是指企业为了满足内外部的安全、合规、运维、管理要求,而对云上IT资源采取的一系列规划和管理手段。无论您的企业有多大规模,处于上云的何种阶段,都应该了解、实施一定的企业IT治理方案,以期获得云上安全与运维效率的最佳平衡。本方案是结合阿里云服务众多企业客户的实践经验,总结沉淀的面向不同企业(初创企业、标准企业、集团企业)的3套IT治理全链路解决方案,希望帮助您在上云道路上走的更稳、更快、更远。 概述 A科技是一家刚刚成立不久的互联网初创企业,在阿里云上购买资源开展业务。初期成员包括联合创始人CEO小张,CTO小王,将带领20人的产品和研发团队,公司还有销售、财务、HR等团队。CTO小王在阿里云注册了一个账号,并以公司名义完成了实名认证,交由技术部门2人整体负责阿里云资源的运维和管理,财务1人负责云资源的账单、发票等事宜,其他技术人员依据分工使用不同的云资源完成自己模块的开发与应用运维(即DevOps)工作。 作为初创企业,A科技公司上下自然将业务增长作为了首位目标。然而,在云资源的管理上,如果前期没有花一点时间做一点初步的规划,随着公司顺利成长壮大,风险也将会随之而来。我们举几...
- 下一篇
晓生:这个朋友我交定了!
在这个豪“宅”盛行的时代前世的500万次回头,也难换回今生的擦肩而过 据不完全统计人的一生大约会遇到2920万个不同的人。但是在这2920万次相遇后99% 的他们在擦肩而过后再无交点但也有那1%成为你生活的焦点 在你的生活中,是哪些瞬间或哪些事情让你认定这了他呢?众网友纷纷提出观点 真朋友关注你云端的每一个小需求,给你最低的折扣! **阿里云重磅折扣来袭(文末有惊喜)盘他!**活动时间:8.4-9.10 活动一升级或变配ECS到指定规格实例的4核8G/4核16G享受 1 台实例升级费用半年及以上 6.5 折 活动二升级当前ECS固定带宽至6M享受最高升级费用1年6.5折 我想上云:如果我现在有一台1核1G t5实例1年,参加活动升级4核16G g6实例+带宽升级到6M,大概能省多少钱? 晓生:emm..最高2000立减! 我想上云:这么低的折扣你都能搞到,百晓生,你这个朋友我交定了! 立即获取↓↓↓一手最低折扣
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Mario游戏-低调大师作品
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS关闭SELinux安全模块