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

ApacheSolr9.1(三)集群模式下通过HttpAPI操作ApacheSolr

ApacheSolr9.1-(三)集群模式下通过HttpAPI操作ApacheSolrSolr是一个基于ApacheLucene的搜索服务器࿰


Apache Solr 9.1-(三)集群模式下通过Http API操作Apache Solr

Solr是一个基于Apache Lucene的搜索服务器,Apache Lucene是开源的、基于Java的信息检索库,Solr能为用户提供无论在任何时候都可以根据用户的查询请求返回结果,它被设计为一个强大的文档检索引擎。
Apache Solr 9.1对外提供的客户端接口方式主要有


  • 1). SolrJ: 此方案也是官方建议采用的方案。
    优点:集成简单、方便,接口都已被进行了高度封装,使用起来非常方便、简便;
    缺点:对JDK版本有要求,不能低于JDK11,导致应用程序还未升级到JDK11的将无法使用SolrJ;
  • 2). HttpUrl: 此方案通过GET、POST、DELETE等方式通过提交http Url就可以实现所有的接口功能;
    优点:对JDK版本无要求,只要通过http客户端通过url+参数值的方式与solr服务交互,无技术难度;
    缺点:相对SolrJ来说,对接口调用略显繁琐,主要代码量集中于Http客户端,接口部分主要是封装JSON或XML的参数;
  • 本文将针对Solr服务提供Http接口进行验证。



Apache Solr系列文章:
1、Apache Solr 9.1-(一)初体验单机模式运行
2、Apache Solr 9.1-(二)集群模式运行
3、Apache Solr 9.1-(三)集群模式下通过Http API操作Apache Solr




目录


  • Apache Solr 9.1-(三)集群模式下通过Http API操作Apache Solr
  • 一、准备
    • 1、各组件版本说明
    • 2、部署架构
    • 3、硬件环境准备
    • 4、各服务器节点服务部署情况
    • 5、Apache Solr 9.1集群模式环境搭建

  • 二、Zookeeper管理
    • 1、Zookeeper可视化客户端 - ZooInspector
      • 1)、下载
      • 2)、运行

    • 2、将本地配置文件、目录上传到zookeeper集群服务指定的目录下
      • 1)、将本地配置文件上传到zookeeper集群服务指定的目录下
      • 2)、将本地配置文件整个目录上传到zookeeper集群服务指定的目录下


  • 三、Collection操作接口
    • 1、创建Collection
    • 2、删除Collection
    • 3、获取所有Collection
    • 4、备份Collection
    • 5、获取每次备份的信息
    • 6、将备份还原到Collection中
    • 7、删除备份文件

  • 四、Document的操作接口
    • 1、批量插入数据
    • 2、删除数据
      • 1). 根据主键、ID删除Document
      • 2). 根据查询条件删除Document

    • 3、更新数据
    • 4、查询数据




一、准备

1、各组件版本说明


序号软件名称版本说明
1JDK11Apache Solr9.1要求JDK的版本最低为11,可以是openjdk
2Apache Solr9.1基于Apache Lucene搜索服务器
3IK-Analyzer8.5.0中文分词器
4Zookeeper2.4.15
5ZooInspector-Zookeeper可视化客户端

2、部署架构

在这里插入图片描述


3、硬件环境准备


序号IPHostName操作系统说明
1192.168.2.181hnode1CentOS7_x64
2192.168.2.182hnode2CentOS7_x64
3192.168.2.183hnode3CentOS7_x64

4、各服务器节点服务部署情况


序号服务节点Zookeeper节点solr节点
1hnode1
2hnode2
3hnode3

5、Apache Solr 9.1集群模式环境搭建

关与Apache Solr 9.1集群模式环境搭建请参见【Apache Solr 9.1-(二)集群模式运行】


二、Zookeeper管理

1、Zookeeper可视化客户端 - ZooInspector



说明:
ZooInspector提供的功能:
1). 连接/断开Zookeeper服务(单节点服务或集群服务);
2). 查看Zookeeper服务中存放的目录和文件及内容;
3). 新建节点;
4). 删除节点;



1)、下载

点击此处【ZooInspector】进行下载


2)、运行

解压后进入build目录,执行:

java -jar zookeeper-dev-ZooInspector.jar

在这里插入图片描述



说明:
Connect String:Zookeeper服务器地址
1). 如果Zookeeper服务是单节点,则在Connect String处只写一个ip:端口即可;
2). 如果Zookeeer服务是集群模式,则在Connect String处需要将所有节点的地址都写上,并以[,]号分隔;


连接成功如下图所示:
在这里插入图片描述


2、将本地配置文件、目录上传到zookeeper集群服务指定的目录下



在本节中实现上传文件和目录主要是通过Apache Solr中自带的zookeeper客户端工具脚本zkcli.sh1,与Zookeeper安装目录下zkCli.sh2是不同的脚本,本节中使用的是zkcli.sh,并不是Zookeeper的zkCli.sh。



1)、将本地配置文件上传到zookeeper集群服务指定的目录下

[root@hnode1 solr]# cd /opt/solr/solr-9.1.0/server/scripts/cloud-scripts
[root@hnode1 cloud-scripts]# ./zkcli.sh -zkhost hnode1:2181,hnode2:2181,hnode3:2181 -cmd putfile /solr/configs/_default/managed-schema.xml /opt/solr/conf/managed-schema.xml

2)、将本地配置文件整个目录上传到zookeeper集群服务指定的目录下



在本例中将演示将本地/opt/solr/conf整个目录下的文件上传到zookeeper集群服务的/solr/configs/chatmessage目录下,且/solr/configs/chatmessage节点不需要提前创建


[root@hnode1 solr]# cd /opt/solr/solr-9.1.0/server/scripts/cloud-scripts
# 下面通过zkcli.sh脚本连接zookeeper服务的/solr/目录下后,将本地/opt/solr/conf/目录下所有文件以配置文件的方式上传到/solr/configs/chatmessage节点下
[root@hnode1 cloud-scripts]# ./zkcli.sh -zkhost hnode1:2181,hnode2:2181,hnode3:2181/solr -cmd upconfig -confdir /opt/solr/conf -confname chatmessage

在这里插入图片描述


三、Collection操作接口

关与Collection详细的接口说明请参见【Apache Solr 9.1 Collection管理文档】



1、创建Collection

v2版接口

curl -X POST http://localhost:8983/api/collections -H 'Content-Type: application/json' -d '
{
"create": {
"name": "chatmessage",
"config": "chatmessage",
"numShards": 1
}
}


  • 上面接口参数中config参数指定的就是Zookeeper服务上存放的此collection对应的配置节点名称,如果不指定将从_default下复制一份做为此collection的配置,当删除此collection时,新复制的配置目录也会一起被删除;
  • 创建Collection的前提是需要先在Zookeeper集群服务上存在对应此Collection的配置,所以创建collection的时候,如果zookeeper上无此collection的配置,需要先将配置上传到zookeeper集群上; 上传方法参见本文 【二、Zookeeper管理 -> 2、将本地配置文件、目录上传到zookeeper集群服务指定的目录下 -> 2)、将本地配置文件整个目录上传到zookeeper集群服务指定的目录下】 的具体操作;


2、删除Collection

curl -X DELETE http://localhost:8983/api/collections/collection名称

3、获取所有Collection

curl -X GET http://localhost:8983/api/collections

返回结果:

{
"responseHeader":{
"status":0,
"QTime":2011},
"collections":["collection1",
"example1",
"example2"]}

4、备份Collection

curl -X POST http://localhost:8983/api/collections -H 'Content-Type: application/json' -d '
{
"backup-collection": {
"name": "techproducts_backup",
"collection": "techproducts",
"location": "file:///path/to/my/shared/drive"
}
}
'


5、获取每次备份的信息

curl -X POST http://localhost:8983/v2/collections/backups -H 'Content-Type: application/json' -d '
{
"list-backups" : {
"name": "myBackupName",
"location": "/path/to/my/shared/drive"
}
}
'


6、将备份还原到Collection中



可以将备份的Collection的索引数据和关联的配置还原到指定的Collection中


curl -X POST http://localhost:8983/v2/collections/backups -H 'Content-Type: application/json' -d '
{
"list-backups" : {
"name": "myBackupName",
"location": "/path/to/my/shared/drive"
}
}
'


7、删除备份文件

curl -X POST http://localhost:8983/v2/collections/backups -H 'Content-Type: application/json' -d '
{
"delete-backups" : {
"name": "myBackupName",
"location": "/path/to/my/shared/drive",
"backupId": 0
}
}
'


四、Document的操作接口


Apache Solr 9.1 插入、更新、删除Document记录使用的URL都是:http://solr服务ip:端口/solr/collection名称/update



1、批量插入数据

例如:

curl -X POST -H 'Content-Type: application/json' 'http://localhost:8983/solr/my_collection/update' --data-binary '
[
{
"id": "1",
"title": "Doc 1"
},
{
"id": "2",
"title": "Doc 2"
}
]'


2、删除数据


1). 根据主键、ID删除Document

例如:[删除id值为ID的Document]

curl -X POST -H 'Content-Type: application/json' 'http://localhost:8983/solr/my_collection/update' --data-binary '
{"delete": { "id":"ID" }}'


2). 根据查询条件删除Document

例如:[删除所有isRead字段值为0的Document]

curl -X POST -H 'Content-Type: application/json' 'http://localhost:8983/solr/my_collection/update' --data-binary '
{"delete": {"query":"isRead:0"}}'


3、更新数据

例如:

curl -X POST -H 'Content-Type: application/json' 'http://localhost:8983/solr/my_collection/update' --data-binary '
[
{
"id": "1",
"title": "Doc 1"
},
{
"id": "2",
"title": "Doc 2"
}
]'


4、查询数据

例如:

curl http://localhost:8983/solr/my_collection/query -d '
{
"query" : "memory",
"filter" : "inStock:true"
}'





  1. zkcli.sh:是Apache Solr中自带的zookeeper客户端工具脚本,位置在solr-9.1.0/server/scripts/cloud-scripts/目录下。 ↩︎

  2. zkCli.sh:是Zookeeper服务自带的客户端工具脚本,位置在apache-zookeeper-3.8.0-bin/bin/目录下。 ↩︎








推荐阅读
  • 一:什么是solrSolr是apache下的一个开源项目,使用Java基于lucene开发的全文搜索服务器;Lucene是一个开放源代 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
  • 首先我们在taotao-search-interface工程中新建一个SearchService接口,并在接口中添加一个方法,如下图所示。接着,我们到taotao-search-s ... [详细]
  • Flume 开源分布式日志收集系统
    为什么80%的码农都做不了架构师?Flume--开源分布式日志收集系统Flume是Cloudera提供的一个高可用的、高可靠的开源分布式海量日志收集系统 ... [详细]
  • solr进阶七:与jQuery结合的自动补全功能
    网上有大量的jQuery自动补全功能的插件,我实现这个功能是采用网友写好的纯jQuery代码,而不是采用插件,因为特效会差很多。而后台的数据是从solr那边获取过来,通过整理,放到对象中,再放到 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • solr导入mysql_Solr导入MySQL中的数据
    一、目标将MySQL数据库中的数据导入至Solr中,并且由Solr生成中文索引,使用Solr查询信息。二、数据导入1、将solr-8.2.0dist下的 ... [详细]
author-avatar
猴三爷22_394
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有