Solr 简介
ApacheTM Solr 是一个基于 Apache LuceneTM 构建的搜索服务器,Apache LuceneTM 是一个开源的、基于 Java 的信息检索库。Solr 旨在驱动强大的文档检索或分析应用程序,这些应用程序涉及非结构化数据、半结构化数据或非结构化数据和结构化数据的混合。它还对有限的关系、图、统计、数据分析或存储相关的用例提供辅助支持。由于 Solr 是专为可扩展性而设计的 Apache 2.0 许可开源软件,因此您可以自由地针对几乎任何商业或非商业用例进行调整或优化。
Solr 的 查询语法和解析器 提供从最简单的关键字搜索到对多个字段的复杂查询和 分面 搜索结果的全面支持。 折叠 和 聚类 结果为电子商务和店面提供了引人注目的功能。流式表达式 允许您对整个语料库、与查询匹配的子集或来自一组文档的随机样本进行分析。强大的 数学表达式 基于流式表达式,为高级分析和预测分析用例提供了基础。
Solr 还支持高级相关性调整;Solr 提供对几乎所有 Lucene 文本分析功能的访问,包括分词、词干提取、同义词等等,使您可以根据对用户和领域的了解来调整相关性。Solr 甚至允许使用 学习排序 功能通过机器学习自定义相关性。
查询通过 HTTP 1.1 或 2.0 请求传输到 Solr,响应通常是结构化文档描述符的列表。在经典示例中,返回 10 个描述符,每个描述符都包含一个用于定位文档的 URL(通常呈现为“10 个蓝色链接”)。但是,Solr 可以远远超出文档定位器,并且还可以包含许多其他类型的文档元数据。灵活的模式配置允许几乎任何类型的元数据与 Solr 中索引的文档相关联。索引指南的 模式元素 页面提供了有关这些选项的更多详细信息。
JSON 是默认响应格式,但它也可以是 XML、CSV、优化的二进制格式,或者(通过自定义)您想要的任何格式。这意味着各种各样的客户端都将能够使用 Solr。此类客户端可能是 Web 应用程序、浏览器、富客户端应用程序或移动设备。任何能够进行 HTTP 通信的平台都可以与 Solr 对话。提供了几种 客户端 API,用于在常用编程语言中使用。
除了为基于 Lucene 的文档检索提供网络可访问的引擎之外,Solr 还提供了扩展到单个机器限制之外的能力。可以使用两种 Solr 集群类型之一对索引进行分片和复制,以实现性能和可靠性。一种类型的集群不需要任何支持基础设施,实例由管理员直接管理。第二种类型使用 Apache ZookeeperTM 来协调整个集群的管理活动。
Solr 的扩展和高可用性功能非常有效,以至于一些最大和最著名的互联网站点都在使用 Solr。可以在 https://solr.apache.org/community.html#powered-by 上找到一个部分、通常是自荐的使用 Solr 的站点列表。