快速概述
Solr是基于Apache Lucene构建的搜索服务器,Apache Lucene是基于Java的开源信息检索库。它旨在驱动功能强大的文档检索应用程序-无论您需要根据用户的查询向其提供数据的任何地方,Solr都能为您服务。
这是Solr如何与应用程序集成的示例:
图1. Solr与应用程序的集成
在上述情况下,Solr与其他服务器应用程序一起运行。例如,在线商店应用程序将提供用户界面,购物车以及为最终用户进行购买的方式。而库存管理应用程序将允许商店员工编辑产品信息。产品元数据将保存在某种数据库以及Solr中。
Solr通过以下步骤使添加在线商店搜索功能变得容易:
- 定义一个模式。该模式告诉Solr有关将要建立索引的文档的内容。在在线商店示例中,该架构将定义产品名称,描述,价格,制造商等字段。Solr的架构强大而灵活,允许您根据应用程序定制Solr的行为。有关所有详细信息,
- 您的用户将搜索的Feed Solr文档。
- 在您的应用程序中公开搜索功能。
因为Solr基于开放标准,所以它具有高度的可扩展性。Solr查询是简单的HTTP请求URL,响应是结构化的文档:主要是JSON,但也可以是XML,CSV或其他格式。
Solr的模式
Solr的模式是一个单独的文件(以XML格式),用于存储有关Solr希望理解的字段和字段类型的详细信息。该模式不仅定义字段或字段类型的名称,还定义了对字段建立索引之前应进行的任何修改。例如,如果您要确保输入“ abc”的用户和输入“ ABC”的用户都可以找到包含术语“ ABC”的文档,则需要进行标准化(在这种情况下为小写) )为索引建立“ ABC”,并规范化用户查询以确保匹配。这些规则在您的模式中定义。
我们提到了复制字段,它是由源自其他字段的数据组成的字段。您还可以定义动态字段,该字段使用通配符(例如*_t
或*_s
)动态创建特定字段类型的字段。这些类型的规则也在模式中定义。