Solr Python API : SolrCloudpy 与 Pysolr 的 对比
目录
本文 简单介绍 两种 Solr 的 pythoy API ,用于 基于 solr 服务器 进行检索 , 文中 不但介绍 其 具体 的 使用 方 法 ,也 详细的对比 了 两种 API 的 优缺点 和适宜使用的场景。
1. SolrCloudpy
Solr Cloudpy 是为 与 SolrCloud 交互 而 设计的 库 文件 。
1 .1 使用 优势
直接与 Solr Cloud 交互 的 API ,对于安装于集群中 的 solr 服务十分方便,不需要 人为 判断索引 位置 ,可根据 SolrCloud 与 Zookeeper 交互 由 索引名直接获取 索引 地址, 十分高效,不会 出现索引重建 时 不在原集群节点而导致的获取不到索引数据的错误。
1.2 安装
使用 pip 进行安装 , 安装命令为:
pip install solrcloudpy
1.3 使用示例
上图 是使用 solrcloudpy 的 一个简单示例, 首先 导入相关的 python 文件, 使用类:
solrcloudpy.connection.SolrConnection( server='host:8983' , detect_live_nodes=False , user=None , password=None , timeout=10 )
连接 solr 服务器;使用类:
solrcloudpy.parameters. SearchOptions ( **kwargs )
管理 查询选项,可用 “.” 连接 不同的查询参数:
构建好 的 查询 参数传递给 search 方法,连接固定索引进行查询:
其中 , response 为 返回的查询结果,可进行下一步的处理。
1.4 使用 缺陷
无法传递 高亮参数,不能实现界面上的高亮显示。
2 . Pysolr
Pysolr 是 solr 的 较为轻量的 python 应用 。
2 .1 使用 优势
P ysolr 设计 为与 固定 服务器上的固定索引进行直接对话, 连接 后 可 设置查询参数,直接进行检索, 方便 易用,同时,提供的参数比较全面,避免了 solrcloudpy 不能传递 高亮参数的劣势, 可 提供 高亮 功能, 更好 的发挥 了 solr 的搜索体验 ,令用户实现 效果 更 优 的检索界面。
2.2 安装
使用 pip 进行安装 , 安装命令为:
pip install pysolr
2 .3 使用示例
上图 是使用 solrcloudpy 的 一个简单示例, 首先 导入相关的 python 文件, 使用 pysolr.Solr 方法 连接 solr 服务器 并 指定 要检索的索引 ; 使用 solr.search 方法设置 查询参数,其中,第一个参数为 solr 查询 q , * *{} 中 添加的参数为其他查询参数,例如, “ rows ” 返回结果 数量 , “ hl ”是否 启用高亮 ,“ hl .fl ”高亮 的返回字段等 ; results 即 为得到的检索数据,可进行进一步分析,如获取文档数量,文档内容 ,某 字段的内容等 等。
2 .4 使用缺陷
与 solrcoudpy 相比 ,在多 节点 的 集群 中, pysolr 不能通过 其中 任意一个节点判断索引的位置, 只能 由 用户 指定某 个 节点 上 的某个 索引 , 一旦 指定不能改变 , 若索引位置移动,则无法 进行 检索,这一点对于集群中的 solr 服务 造成 很多不便,不利于开发。