Apache Solr 教程:什么是 Solr? Archi结构与安装
什么是 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 查询
Apache Solr 的功能
以下是 Apache Solr 的重要功能:
- 自动负载平衡
- 基于标准的开放接口 – XML、JSON 和 HTTP
- 支持建议和拼写建议
- 支持自动完成和地理空间搜索
- 内置身份验证和授权安全性
- 允许您执行多语言关键字搜索
- 自动完成/输入预测
- 批处理和流处理
- 建立机器学习模型很容易
- 专门针对高流量网络流量进行了优化
- 全面的 HTML 欣赏界面
- 支持 Schema 和 Schemaless 配置
- 分面搜索和过滤
- 整个中央配置 Cluster
Apache Solr 中使用的关键术语
现在,在本 Solr 搜索引擎教程中,我们将了解 Apache Solr 中使用的关键术语:
关键词 | 描述 |
---|---|
Solr 核心 | Solr Core 可以定义为从所有文档派生出的文本和字段的索引。一个 Solr 实例可以有一个或多个 Solr 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 端点。
回复作者
响应编写器将为输入查询生成格式化的输出。它支持多种格式,如 XML、JSON、CSV 等。不同类型的请求可能有不同的响应编写器。
更新处理程序
当您向 Apache Solr 发送更新请求时,它会通过一组插件、签名、日志记录、索引运行。此过程称为更新请求处理器。更新处理程序还负责添加或删除文件等修改。
Apache Solr 应用程序
应用程序 | 用法 |
---|---|
内部网门户 |
|
联合客户端 |
|
仪器数据集 |
|
监管文件 |
|
嵌入 PLM 应用程序 |
|
如何安装 Apache Solr?
步骤1) 打开网站并继续订阅
去这个 链接,点击“继续订阅”。
步骤2) 点击“接受条款”
在下一页上,单击“接受条款”。
步骤3) 等待一段时间
接下来,等待一段时间,然后一段时间后请求被接受。
步骤4) 继续配置
刷新页面并点击“继续配置”
步骤5) 继续发布
保留默认设置,然后单击“继续启动”。
步骤6) 保留设置默认设置
在下一页上,保留设置默认
- 确保您拥有密钥的 pem 文件
- 点击“启动”
您将看到此成功消息
步骤7) 注意公共 DNS
在 EC2 控制台中,记下实例的公共 DNS
步骤8) 打开以下网址
要访问 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 的数据存储
- 它不能用作主要数据存储。只能用作辅助数据存储
- 不提供对交易和分布式交易的支持
- 不支持连接和复杂查询
- 对于规范化数据来说不是最佳选择
总结
- Apache Solr 是一个开源 REST API 基于搜索服务器
- Apache Solr 由 Yonik Seeley 在 CNET 开发,作为公司内部项目的一部分
- Apache Solr 提供自动完成和地理空间搜索等功能
- Solr Core、Solr 实例、索引、文档、Restful API、全文搜索、管理界面等是 Apache Solr 中使用的一些关键术语
- 查询、请求处理程序、请求编写器和更新处理程序是 Apache Solr 的一些重要组件
- 内部网门户、联合客户端、仪器数据集、监管文件、嵌入 PLM 应用程序都是有用的 Apache Solr 应用程序
- Apache Solr 的文档齐全,而 Elastic Search 的文档却很差
- Apache Solr 的最大优点是它可以帮助您减少查找信息所需的时间
- 该应用程序的主要缺点是它不是符合 ACID 的数据存储