1. Solr 官网
II. 启动
- 请求处理程序 - 发送到Apache Solr的请求由这些请求处理程序处理。请求可以是查询请求或索引更新请求。根据这些请示的要求来选择请求处理程序。为了将请求传递给Solr,通常将处理器映射到某个URI端点,并且它将为指定的请求提供服务。
- 搜索组件 - 搜索组件是Apache Solr中提供的搜索类型(功能)。它可能是拼写检查,查询,构面,命中突出显示等。这些搜索组件被注册为搜索处理程序。多个组件可以注册到搜索处理程序。
- 查询解析器 − Apache Solr查询解析器解析传递给Solr的查询,并验证查询的语法是否有错误。解析查询后,将它们转换为Lucene理解的格式。
- 响应写入器 - Apache Solr中的响应写入器是为用户查询生成格式化输出的组件。 Solr支持XML,JSON,CSV等响应格式。对每种类型的响应都有不同的响应写入。
- 分析器/分词器 - Lucene以令牌的形式识别数据。 Apache Solr分析内容,将其分成令牌,并将这些令牌传递给Lucene。 Apache Solr中的分析器检查字段的文本并生成令牌流。分词器将分析器准备的令牌流分解成令牌。
- 更新请求处理器 - 每当向Apache Solr发送更新请求时,请求都通过一组称为更新请求处理器的插件(签名,日志记录,索引)运行。这个处理器负责修改,例如删除字段,添加字段等。
5). Solr 术语
- 实例 - 就像一个tomcat实例或一个jetty实例,这个术语指的是在JVM中运行的应用程序服务器。Solr主目录提供对每个这些Solr实例的引用,一个或多个核心可以配置在每个实例中运行。
- 核心(core) - 在应用程序中运行多个索引时,可以在每个实例中拥有多个核心,而不是每个核心的多个实例。
- 主目录(home) - 术语$SOLR_HOME是指主目录,其中包含有关内核及其索引,配置和依赖关系的所有信息。
- 碎片(Shard) - 在分布式环境中,数据在多个Solr实例之间进行分区,其中每个数据块可以称为碎片(Shard)。它包含整个索引的子集。
6). Solr Cloud 术语
- 节点(Node) - 在Solr云中,Solr的每个单个实例都被视为一个节点。
- 集群 - Solr云环境中的所有节点组合在一起构成集群。
- 集合 - 集群具有称为集合的逻辑索引。
- 碎片 - 碎片是集合的一部分,它具有一个或多个索引副本。
- 副本 - 在Solr Core中,在节点中运行的分片副本称为副本。
- 领导者(Leader) - 它也是碎片的副本,它将Solr Cloud的请求分发给剩余的副本。
- Zookeeper - 这是一个Apache项目,Solr Cloud用于集中配置和协调,管理集群和选择领导者。
7). Solr中的主要配置文件如下 -
- Solr.xml - 它是包含Solr Cloud相关信息,此文件是在$SOLR_HOME目录中。 为了加载核心,Solr引用这个文件,这有助于识别它们。
- Solrconfig.xml − 此文件包含与请求处理和响应格式化相关的定义,核心特定配置,以及索引,配置,管理内存和提交。
- Schema.xml − 此文件包含整个模式以及字段和字段类型。
- Core.properties - 此文件包含特定于核心的配置。它被引用为核心发现,因为它包含核心的名称和数据目录的路径。它可以在任何目录中使用,会将此目录它视为核心目录。
8). 基本命令
I. 后台启动
参数:
- -c core_name 要创建的核心的名称
- -p port_name 要创建的核心的端口
- -d conf_dir 端口的配置目录
III. 删除核心
- 索引集合,解析和存储文档。
- 索引是为了在查找所需文档时提高搜索查询的速度和性能。
在Apache Solr中,我们可以索引(添加,删除,修改)各种文档格式,如xml,csv,pdf等。可以通过几种方式向Solr索引添加数据。
I. Post命令添加文档
Solr在其bin/目录中有一个post命令(Windows中无法使用)。使用这个命令,可以在Apache Solr中索引各种格式的文件。
- 将目录下的post.jar拷贝到中, 使用命令执行添加文档
III. Web界面添加文档
- 数据
代码
-
- add − 这是用于将文档添加到索引的根标记。它包含一个或多个要添加的文档。
- doc − 添加的文档应该包含在<doc> </ doc>标记中。文档包含字段形式的数据。
- field − 字段标记包含文档的字段的名称和值。
II. Post命令添加
唯一的区别是这里使用字段的一个update属性。
II. 命令II. Post命令
6). 检索数据
I. 代码
参数 描述 q 这是Apache Solr的主要查询参数,文档根据它们与此参数中的术语的相似性来评分。 fq 这个参数表示Apache Solr的过滤器查询,将结果集限制为与此过滤器匹配的文档。 start start参数表示页面的起始偏移量,此参数的默认值为0。 rows 这个参数表示每页要检索的文档的数量。此参数的默认值为10。 sort 这个参数指定由逗号分隔的字段列表,根据该列表对查询的结果进行排序。 fl 这个参数为结果集中的每个文档指定返回的字段列表。 wt 这个参数表示要查看响应结果的写入程序的类型。 fl 表示索引显示那些field(*表示所有field,如果想查询指定字段用逗号或空格隔开(如:Name,SKU,ShortDescription或Name SKU ShortDescription【注:字段是严格区分大小写的】) q.op 表示q 中 查询语句的 各条件的逻辑操作 AND(与) OR(或) hl 是否高亮 ,如hl=true hl.fl 高亮field ,hl.fl=Name,SKU hl.snippets 默认是1,这里设置为3个片段 hl.simple.pre 高亮前面的格式 hl.simple.post 高亮后面的格式 facet 是否启动统计 facet.field 统计field 特殊字符:
8). Apache Solr中可用的faceting类型 -
- 查询faceting - 返回当前搜索结果中与给定查询匹配的文档数。
- 日期faceting - 它返回在特定日期范围内的文档数。