本练习将使用电影数据集,重点探索Solr的分面(Faceting)功能,这是构建强大搜索界面的关键特性。
集合设置1. 创建Films集合使用_default配置集创建一个新的”films”集合:
1bin/solr create -c films --shards 2 --replication-factor 2
这将创建一个具有2个分片和2个副本的集合,提供良好的容错性。
模式准备2. 创建必要的字段创建”name”字段:
12345678curl -X POST -H 'Content-type:application/json' --data-binary '{ "add-field": { "name":"name", "type&quo...
Solr教程:练习一 - 索引Techproducts数据
本练习将指导您启动Solr、创建集合、索引基本文档并执行搜索操作。
启动Solr云模式1. 启动Solr云模式使用以下命令启动Solr云模式:
1bin/solr start -e cloud
2. 按照交互式提示操作
选择2个节点(默认)
接受默认端口(8983和7574)
将集合命名为”techproducts”
选择”sample_techproducts_configs”配置
索引Techproducts数据使用post工具索引示例文档:
1bin/solr post -c techproducts example/exampledocs/*
这个命令会索引example/exampledocs目录下的所有文档,包括各种格式的文件。
基本搜索技术1. 搜索所有文档1q=*:*
这将返回集合中的所有文档。
2. 搜索单个词条1q=foundation
搜索包...
Solr教程:入门指南概览
本教程旨在帮助用户快速上手Apache Solr,涵盖从基础到高级的多个练习模块。
教程概述本教程包含三个主要练习和多个高级主题:
主要练习
练习一(Techproducts):
启动Solr
创建集合
索引基本文档
执行搜索操作
练习二(Films):
使用不同的数据集
探索分面(facets)请求
练习三(DIY):
使用您自己的数据
开始实施规划
高级练习
ParamSets:参数集管理
向量搜索:AI驱动的搜索功能
SolrCloud:分布式搜索集群
部署到AWS:云端部署实践
前置要求
满足系统要求
下载Apache Solr发行版(推荐9.9版本)
关键步骤
解压Solr发行版
逐步完成教程练习
探索空间查询功能
实验索引和搜索功能
本教程旨在提供Solr核心功能的全面介绍,从基础设置到高级特性,帮助用户快速掌握这个搜索平台。
清理和后续步骤
包...
Apache Solr 8 正式结束生命周期:升级 Solr 9 刻不容缓
Apache Solr 8 正式结束生命周期2024年10月25日,Apache Solr 项目管理委员会正式宣布,Apache Solr 8 已达到生命周期终点(End of Life)。随着 Apache Lucene 10 的发布,Lucene 和 Solr PMC 将无法再为 Solr 8 提供新的版本发布。Solr 8.11.4 将成为 Solr 8 系列的最终版本。
原文动态翻译Apache Solr 项目委员会宣布:
Solr 8 已达到生命周期终点。随着 Lucene 10 的发布,Lucene 和 Solr 项目管理委员会将无法继续为 Solr 8 提供新的发布版本。
关键信息:
最终版本:Solr 8.11.4 为 Solr 8 系列的最后一个版本
停止支持:不再提供安全补丁、bug 修复或功能更新
升级建议:强烈建议用户升级到 Solr 9,并开始为即将到来的...
Apache Solr 重要安全更新:PKI 认证绕过与配置集信任漏洞修复
Apache Solr 重要安全漏洞通告2024年10月14日,Apache Solr 安全团队公开披露了两个重要安全漏洞:CVE-2024-45216 和 CVE-2024-45217。这两个漏洞分别涉及 PKI 认证插件的绕过问题和配置集备份恢复过程中的隐式信任问题,对分布式 Solr 集群的安全性构成重大威胁。
原文动态翻译Apache Solr 项目披露了两个重要安全漏洞:
CVE-2024-45216:PKI 认证插件认证绕过漏洞
影响范围:使用 PKI 认证插件的 Solr 实例
风险等级:高风险
漏洞描述:攻击者可能绕过 PKI 认证插件的认证机制,获得未授权访问
CVSS 评分:待更新
CVE-2024-45217:配置集备份恢复隐式信任漏洞
影响范围:使用备份恢复功能的 Solr 集群
风险等级:中高风险
漏洞描述:在备份恢复过程中,系统对配置集存在隐式信任,...
Apache Solr 9.7.0 发布:DocValues 默认启用与向量相似度查询
Apache Solr 9.7.0 重要功能增强版本2024年9月9日,Apache Solr 项目发布了 9.7.0 版本,这是一个带来重要架构改进的版本。此版本的最大亮点是 DocValues 的默认启用,以及新增的 vectorSimilarity 查询解析器,标志着 Solr 在列式存储和向量搜索领域的重大进展。
原文动态翻译Apache Solr 9.7.0 现已可用。此版本的主要亮点包括:
DocValues 默认启用:所有字段类型默认启用 DocValues,显著提升查询和聚合性能
全新 vectorSimilarity 查询解析器:原生支持向量相似度搜索,增强 AI 搜索能力
Prometheus 监控指标改进:更丰富和标准化的监控指标输出
性能优化:多项针对大规模数据处理的性能改进
认证和 CLI 改进:增强了安全认证机制和命令行工具的易用性
多项稳定性修复:修复...
Solr概念:搜索功能与查询语法
搜索是Solr的核心功能,掌握搜索原理和查询语法是构建高效搜索应用的关键。
搜索处理流程搜索组件架构12345678910111213用户查询 ↓请求处理器 (Request Handler) ↓查询解析器 (Query Parser) ↓查询执行引擎 ↓结果排序和过滤 ↓响应格式化 (Response Writer) ↓返回结果给用户
核心搜索组件1. 请求处理器(Request Handler)定义搜索查询的处理逻辑:
12345678<!-- solrconfig.xml中的请求处理器配置 --><requestHandler name="/select" class="solr.SearchHandler"> <lst name="defaults"...
Solr概念:索引原理与优化
索引是Solr搜索功能的核心,理解索引原理和优化策略对构建高性能搜索应用至关重要。
索引基本概念什么是索引?**索引(Indexing)**是将内容添加到Solr索引中使其可搜索的过程:
数据转换:将原始文档转换为可搜索的数据结构
倒排索引:创建从词条到文档的映射关系
优化存储:以高效的方式存储和组织数据
索引的核心组件123456789101112Solr索引结构├── 文档(Documents)│ ├── 字段1(Field1)│ ├── 字段2(Field2)│ └── ...├── 倒排索引(Inverted Index)│ ├── 词条→文档ID列表│ ├── 词频统计│ └── 位置信息└── 存储结构(Stored Fields) ├── 原始字段值 └── 压缩数据
文档和字段结构文档组成Solr索引由文档(Documents...
Solr概念:控制脚本与系统管理
Solr 控制脚本参考指南控制脚本概述Apache Solr 提供了一个强大的控制脚本 bin/solr,它是管理 Solr 实例的主要命令行工具。这个脚本提供了完整的服务器生命周期管理、集合和核心操作、ZooKeeper 管理、认证配置等功能,是 Solr 运维管理的核心工具。
脚本基本语法123456789# 基本语法bin/solr [command] [options]# 查看帮助信息bin/solr -hbin/solr --help# 查看特定命令的帮助bin/solr [command] -h
服务器管理命令1. 启动服务器(start)基本启动1234567891011# 默认启动(端口 8983)bin/solr start# 后台启动bin/solr start -force# 指定端口启动bin/solr start -p 8984# 指定 Solr 主目录b...
Solr概念:文档字段与模式设计
在Solr中,理解文档、字段和模式设计是构建高效搜索应用的基础。本文深入介绍这些核心概念。
基本理念Solr的工作原理可以比作书籍索引的增强版本:
索引信息:将大量信息组织成可快速检索的结构
快速检索:通过查询快速找到特定的信息片段
精确定位:像书籍索引一样,帮助您准确找到所需内容
这种理念使得Solr能够处理海量数据,同时提供毫秒级的搜索响应。
文档结构什么是文档?**文档(Document)**是Solr中信息的基本单位:
数据容器:包含一组相关信息的逻辑单元
业务实体:可以代表一篇文章、一个产品、一条记录等
搜索目标:用户搜索时返回的基本结果单位
文档示例12345678910{ "id": "book_001", "title": "Apache Solr实战指南", &q...
Solr概念:Apache Solr简介与核心特性
Apache Solr是构建在Apache Lucene之上的开源搜索服务器,专为强大的文档检索和分析应用而设计。
什么是Apache Solr?Apache Solr是一个开源搜索服务器,具有以下基本特征:
基于Apache Lucene构建:利用Lucene强大的全文索引和搜索能力
强大的文档检索:专为高效的文档检索和分析应用设计
多种数据类型支持:处理非结构化、半结构化和混合数据类型
Apache 2.0许可证:提供广泛的可扩展性,支持商业和非商业用途
核心特性1. 高级搜索功能Solr提供了丰富的搜索特性:
复杂查询语法:支持各种复杂的搜索表达式
分面搜索:提供分类和过滤功能,帮助用户精确定位信息
结果折叠和聚类:智能组织搜索结果
流式处理和数学表达式:支持实时分析和复杂计算
2. 相关性和文本分析先进的文本处理能力:
高级文本分析:深度理解文档内容
分词和词干提取...
Solr概念:生产环境部署与优化
Solr 生产环境部署指南生产部署概述将 Apache Solr 部署到生产环境需要超越基本安装和配置,涉及系统优化、安全加固、性能调优、监控告警等多个维度。本指南提供了将 Solr 成功部署到生产环境的全面指导,确保系统的稳定性、安全性和高性能。
安装和服务配置1. 使用服务脚本安装推荐的安装方式123456# 下载 Solr 安装包wget https://archive.apache.org/dist/lucene/solr/9.7.0/solr-9.7.0.tgz# 解压并运行安装脚本tar -xzf solr-9.7.0.tgzsudo bash solr-9.7.0/bin/install_solr_service.sh solr-9.7.0.tgz
安装脚本的优势:
系统服务集成:自动创建 systemd 服务单元
用户权限分离:创建专用的 “solr” 用户运行服...
Apache Solr 9.6.1 发布:核心加载与副本管理优化
Apache Solr 9.6.1 稳定性维护版本2024年5月29日,Apache Solr 项目发布了 9.6.1 维护版本,这是一个专注于关键稳定性改进的版本。此版本解决了核心加载时间限制、副本标记机制以及 SolrJ 和 TLS 相关的重要问题,显著提升了大规模部署的可靠性。
原文动态翻译Apache Solr 9.6.1 现已可用。此维护版本的主要修复包括:
核心加载时间限制移除:不再将核心加载时间硬性限制在 60 秒内
副本标记改进:优化了副本状态标记和管理机制
SolrJ 性能和稳定性修复:多项 Java 客户端库的改进
TLS 连接稳定性提升:解决了 TLS 连接相关的稳定性问题
其他关键 Bug 修复:修复了影响生产环境稳定性的多个问题
分布式完善分析1. 核心加载时间限制移除的意义重要性评估:★★★★★
移除 60 秒核心加载限制对分布式系统的重大改进:
大规...
Solr概念:Docker容器化部署实践
Solr Docker 容器化部署指南Docker 部署概述Docker 容器化部署已经成为现代应用部署的标准方式,Apache Solr 提供了官方的 Docker 镜像,支持从简单的单节点部署到复杂的分布式 SolrCloud 集群。这种部署方式具有环境一致性、资源隔离、快速扩展等优势。
Solr Docker 镜像类型Apache Solr 提供两种官方 Docker 镜像:
1. 完整版镜像1solr:<version>
特点:
包含完整的 Solr 发行版
集成所有标准插件和工具
镜像体积较大但功能完整
适合功能需求复杂的部署
2. 精简版镜像1solr:<version>-slim
特点:
移除了非核心组件和工具
镜像体积更小,启动更快
适合资源受限或简单部署场景
保留核心搜索和索引功能
基础部署模式1. 单节点 Solr 服务器快速启...
Solr概念:搜索功能与查询解析器
Solr 搜索功能详解搜索过程概述Solr 的搜索功能是通过一系列可配置的组件来实现的,这些组件协同工作以处理查询请求并返回相关结果。理解这个过程对于有效使用 Solr 至关重要。
请求处理器(Request Handlers)请求处理器 是定义搜索查询逻辑的插件,它们控制着查询请求的整个处理流程。请求处理器可以:
配置默认参数 - 为查询设置默认的搜索参数
选择查询解析器 - 确定如何解释用户的查询语句
定义搜索组件 - 指定参与查询处理的各种组件
控制响应格式 - 决定搜索结果的返回格式
请求处理器可以在 solrconfig.xml 中进行配置,也可以由用户在查询时选择特定的处理器。
查询解析器Solr 支持多种查询解析器,每种都有其特定的用途和优势:
1. 标准查询解析器(Standard/Lucene Query Parser)特点:
基于 Lucene 的...
Apache Solr 9.6.0 发布:HTTP 客户端现代化与异步 API 增强
Apache Solr 9.6.0 重要功能更新发布2024年4月27日,Apache Solr 项目发布了 9.6.0 版本,这是一个带来重要架构改进的版本。此版本的亮点是引入了基于 Java 标准库的新 HTTP 客户端,显著提升了异步请求处理能力,并优化了分布式集群的管理效率。
原文动态翻译Apache Solr 9.6.0 现已可用。此版本的主要亮点包括:
升级 Lucene 至 9.10.0:集成最新的 Lucene 搜索引擎核心
全新 HttpJdkSolrClient:基于 java.net.http.HttpClient 的现代化 HTTP 客户端
改进的异步请求 API:更强大和灵活的异步请求处理能力
非活跃分片清理:自动清理非活跃分片,优化存储使用
分布式 IDF 可配置:允许禁用分布式逆文档频率计算
多项性能优化:针对高负载场景的性能改进
分布式完善分析1....
Solr概念:搜索相关性与优化策略
搜索相关性什么是相关性?相关性是查询响应满足搜索信息用户需求的程度。
这个定义看似简单,但在实际应用中,相关性的概念因搜索的上下文而大不相同。相关性不是一个绝对的概念,而是高度依赖于用户的具体需求和搜索场景的。
精确度与召回率在讨论搜索相关性时,有两个重要的评估指标:
精确度(Precision)精确度 是返回文档中实际相关的文档所占的百分比。
公式:精确度 = 返回的相关文档数 / 返回的总文档数
高精确度意味着返回的结果中,大部分都是用户真正需要的
精确度关注的是 “返回的结果有多准确”
召回率(Recall)召回率 是在所有相关文档中,实际被返回的文档所占的百分比。
公式:召回率 = 返回的相关文档数 / 所有相关文档数
高召回率意味着系统找到了大部分或全部的相关文档
召回率关注的是 “有多少相关内容被遗漏了”
精确度与召回率的平...
Solr概念:文档字段与模式设计基础
文档、字段与模式设计Solr 的基本前提Solr 的基本前提很简单:你向它提供大量信息,然后你可以向它提问并找到你想要的信息片段。
这个过程包含两个主要部分:
索引(或更新) - 添加信息的过程
查询 - 向信息提问的过程
当您向 Solr 添加信息时,信息会根据您设计的方式进行组织,以便在您想要找到它时,能够快速准确地找到正确的信息片段。
Solr 如何组织信息Solr 以三种主要方式组织信息:文档、字段和字段类型。
文档文档 是描述某事物的一组数据。在 Solr 中,文档是您可以索引和搜索的基本信息单位。对于求职网站,文档可能代表单个简历。对于在线购物网站,文档可能代表您销售的每种产品。对于法律数据库,文档可能代表单个案例。
字段字段 是文档中的特定信息片段。继续上面的例子,求职网站上的简历文档的字段可能包括技能、日期范围、以前的职位、教育等。产品文档的字段可能包括价格、制造...
Apache Solr 9.5.0 发布:节点级熔断机制与 TLS 优化
Apache Solr 9.5.0 系统保护与安全增强版本2024年2月12日,Apache Solr 项目发布了 9.5.0 版本,这是一个专注于系统保护机制和安全增强的重要更新。本版本引入了创新的节点级熔断机制,为大规模分布式部署提供了更强的自我保护能力。
原文动态翻译Apache Solr 9.5.0 现已可用。此版本的主要亮点包括:
节点级内存和 CPU 熔断机制:提供系统级的资源保护,防止节点过载
集合和副本属性替换功能:支持动态配置参数的替换和管理
TLS 密钥库自动重新加载:增强安全证书的动态管理能力
链路追踪支持改进:提升分布式请求的可观测性
OpenAPI 规范生成:自动生成标准化的 API 文档
分布式完善分析1. 节点级熔断机制的革命性意义重要性评估:★★★★★
这是 Solr 分布式架构中最重要的保护机制创新:
系统级自我保护:
内存熔断器:当节点内存使...
快速启动SOLR
快速启动Solr脚本这是一个用于快速启动Solr 7.2.1的shell脚本。
脚本内容12345678910111213141516171819202122232425#!/bin/shsolrversion=7.2.1if [ ! -z $1 ]; then solrversion=$1fiecho "setup solr-$solrversion"if [ -d solr-$solrversion ]; then rm -rf solr-$solrversionfiwget -O solr-$solrversion.tgz http://archive.apache.org/dist/lucene/solr/$solrversion/solr-$solrversion.tgztar zxf solr-$solrversion.tgzcd solr...