Apache Solr 教程:什么是 Solr? Archi质地
⚡ 智能摘要
Apache Solr 是一个开源的, Java基于 Apache Lucene 构建的搜索服务器。它索引大量以文本为中心的数据,并通过 REST API 返回相关结果,提供全文搜索、分面搜索、可扩展性,以及独立部署和 SolrCloud 部署模式。

什么是 Apache Solr?
Apache Solr 是一个用以下语言编写的开源搜索服务器平台 Java Apache 软件基金会开发的语言。它具有高度可扩展性,可以部署搜索引擎来处理大量以文本为中心的数据。使用 Apache Solr 的目的是索引和搜索大量 Web 内容,并根据搜索查询提供相关内容。
Apache Solr 是一个基于 REST-API 的 HTTP 包装器,它围绕着名为 Apache Lucene 的全文搜索引擎。倒排索引是一个单词列表,其中每个单词条目都链接到它所存储的文档。这样,只需使用简单的“get”操作即可获取搜索查询“guru99”的所有文档。
Apache Solr 的历史
- 1999 年:Doug Cutting 发布了 Lucene
- 2004 年:Solr 由 Yonik Seeley 在 CNET 开发,作为公司内部项目的一部分
- 2006 年:CNET 将源代码捐赠给 Apache 软件基金会,并发布了源代码 Foundation
- 2008 年:Solr 1.3 发布,增强了搜索功能和性能
- 2010 年:Lucene 与 Solr 合并
- 2012 年:Solr 4.0 版发布,具有新的 Solr Cloud 功能
- 2016 年:Solr 6.0 发布,支持执行并行 SQL 查询
- 2017 年:Solr 7.0 发布,新增了自动伸缩框架和 JSON Facet API。
- 2019年:Solr 8.0发布,增加了对嵌套文档的支持并改进了流式表达式。
- 2021年:Lucene和Solr再次分离,Solr成为一个独立的Apache顶级项目。
- 2022年:Solr 9.0发布,这是第一个独立于Lucene的版本,增加了向量搜索和Kubernetes支持。
- 2026 年:Solr 10.0 发布,这是其最新主要版本。
Apache Solr 的功能
以下是 Apache Solr 的重要功能:
- 自动负载平衡
- 基于标准的开放接口 – XML、JSON 和 HTTP
- 支持建议和拼写建议
- 支持自动完成和地理空间搜索
- 内置身份验证和授权安全性
- 允许您执行多语言关键字搜索
- 自动完成/输入预测
- 批处理和流处理
- 建立机器学习模型很容易
- 专门针对高流量网络流量进行了优化
- 全面的 HTML 欣赏界面
- 支持 Schema 和 Schemaless 配置
- 分面搜索和过滤
- 整个中央配置 Cluster
Apache Solr 中使用的关键术语
现在,在本 Solr 搜索引擎教程中,我们将了解 Apache Solr 中使用的关键术语:
| 关键词 | 描述 |
|---|---|
| Solr 核心 | Solr Core 可以定义为从所有文档中提取的文本和字段的索引。一个 Solr 实例可以包含一个或多个 Solr Core。Core = Lucene Index 实例 + Solr 配置 |
| Solr 实例 | Solr 实例是 Solr 在 Java 虚拟机(JVM)。在独立模式下,它仅提供一个实例,而在云模式下,您可以拥有一个或多个实例。 |
| 索引 | 索引是将文档内容添加到 Solr 索引的一种方法。Apache Solr 使用 Apache Lucene 倒排索引技术。 |
| 文件 | 它是一组字段及其值。文档是 Apache Core 中存储的基本数据单位。一个 Apache Core 可能包含一个或多个文档。 |
| 领域 | 字段是一个键值对,用于存储文档中的实际数据。键指定字段名称,值包含该字段的数据。一个文档可以包含一个或多个字段。Apache Solr 使用它来索引文档内容。 |
| Restful API | 要与 Solr 通信,不需要使用 Java 编程。相反,Apache Solr 提供 宁静的服务 与其通信。您可以发送文档并接收各种文件格式(如 JSON、XML 和 CSV)的结果。 |
| 全文检索 | Solr 提供全文搜索功能,例如标记、短语、拼写检查、自动完成、通配符等。 |
| 管理界面 | Solr 提供易于使用、用户友好且功能强大的用户界面。使用该界面,您可以执行管理日志、添加、删除、更新和搜索文档等任务。 |
| 以文本为中心并按相关性排序 | Apache Solr 用于搜索文本文档,并根据用户的查询提供结果。 |
| Node | 在 Solr 云中,每个单独的实例都称为一个节点。 |
| Cluster | 集群是节点的集合。 |
| 购物 | 集群具有逻辑索引,也称为集合。 |
| 碎片 | 它是集合的一小部分,提供索引的单个或多个副本。 |
| 复制品 | 副本是在节点中运行的分片的副本。 |
| 领导 | 它是分片的副本,它将 Solr Cloud 的请求发送给其余的副本。 |
Apache Solr Archi质地
现在,在本 Solr 搜索教程中,让我们了解 Apache Solr Archi結構:

Apache Solr 危害以下组件
询问
查询解析器会解析你需要传递给 Solr 的查询语句。它会验证你的查询语句,检查是否存在语法错误。解析完成后,它会将查询语句转换成 Lucene 可以识别的格式。
请求处理程序
发送到 Apache Solr 的请求由请求处理程序处理。请求可以是查询请求或索引更新请求。您需要根据需求选择请求处理程序。要将请求传递给 Solr,您需要将处理程序映射到特定的索引。 URL 终点。
响应 Writer
响应编写器将为输入查询生成格式化的输出。它支持多种格式,如 XML、JSON、CSV 等。不同类型的请求可能有不同的响应编写器。
更新处理程序
当您向 Apache Solr 发送更新请求时,它会经过一系列插件、签名、日志记录和索引处理。这个过程称为更新请求处理器。更新处理器还负责添加或删除等修改操作。ping 已归档等。
Apache Solr 应用程序
| 应用领域 | 用法 |
|---|---|
| 内部网门户 |
|
| 联合客户端 |
|
| 仪器数据集 |
|
| 监管文件 |
|
| 嵌入 PLM 应用程序 |
|
如何安装 Apache Solr?
步骤1) 打开网站并继续订阅
去这个 链接,点击“继续订阅”。
步骤2) 点击“接受条款”
在下一页上,单击“接受条款”。
步骤3) 等待一段时间
接下来,等待一段时间,然后一段时间后请求被接受。
步骤4) 继续配置
刷新页面并点击“继续配置”
步骤5) 继续发布
保留默认设置,然后单击“继续启动”。
步骤6) 保留设置默认设置
在下一页上,保留设置默认
- 确保您拥有密钥的 pem 文件
- 点击“启动”
您将看到此成功消息
步骤7) 注意公共 DNS
在 EC2 控制台中,记下实例的公共 DNS
步骤8) 打开下方 URL
要访问 Solr,只需使用以下方法: URL
http://publicdns:8983
在我们的例子中它变成
http://ec2-18-221-175-53.us-east-2.compute.amazonaws.com:8983
注意:如果您在访问实例时遇到问题,请更改实例中的入站和出站规则以允许所有流量,如下面的 Solr 查询示例所示:
Elasticsearch 与 Apache Solr
| 参数 | Apache Solr | 弹性搜索 |
|---|---|---|
| 自然 | 它是一个开源项目。 | 不是一个开源项目。 |
| 静态状态 | shema.xml 中的静态 | elasticsearch.yml 中的静态 |
| 格式 | XML、CSV、JSON | 仅限 JSON |
| 索引 | 可以在运行时通过收集/核心重新加载进行重新加载 | 使用 REST 调用在索引/类型创建期间定义 |
| 文件记录 | 这是有据可查的。 | 它的记录很差。 |
| 分裂碎片 | 可能存在 | 不可能 |
Apache Solr 的优势
- 帮助您减少查找信息所需的时间
- 它是一款快速、简单、强大且灵活的搜索引擎。
- 帮助您使您的产品和服务更容易获得
- 增加客户在 Web 应用程序上的支出
- 帮助您改善 Web 应用程序的用户体验,以增加收入和利润
- 全面的基于 HTML 的管理界面
- XML 配置灵活且适应性强
- 可扩展插件 Archi质地
- 高度可扩展、强大、容错的搜索引擎
- 支持分布式、阴影、复制、 Cluster和多节点 Archi质地
Apache Solr 的缺点
- 它不是符合 ACID 的数据存储
- 它不能用作主要数据存储。只能用作辅助数据存储
- 不提供对交易和分布式交易的支持
- 不支持连接和复杂查询
- 对于规范化数据来说不是最佳选择










