Solr 通用术语

 

在 Apache Solr 中,以下是我们在使用 Apache solr 时将使用的通用术语。

Instance: Solr中的Instance类似于Tomcat实例或jetty实例,指的是应用程序服务器,在 Java 虚拟机中运行。每个 Solr 实例都由主目录提供引用,其中一个或多个内核可以配置为在每个实例内运行。

Core: 当我们在应用程序中运行多个索引时,我们可以在每个实例中拥有多个内核,而不是多个实例,每个实例都有一个内核。

首页: 术语 $SOLR_HOME 指的是主目录,其中包含有关内核及其配置、索引和依赖项的所有信息。

分片: 数据在不同 Solr 实例之间的分布式环境中进行分区,其中每一块数据都可以称为一个 Shard。分片包含整个索引的一个子集。

 

SolrCloud 术语

我们可以以主从模式安装的分布式模式(即云环境)安装 solr .在云环境中,索引已在主服务器上创建,并将其复制到一台或多台从服务器。

以下是与 Solr 云相关的关键术语:

节点: Solr 的每个实例都被视为 Solr 云中的一个节点。

集群: 环境中的所有节点组合起来构成一个集群。

集合: 集合是一个逻辑索引由集群获取。

分片: 它是具有一个或多个索引副本的集合的一部分。

副本: 在 Solr 核心节点中运行的分片副本称为副本。

Leader: 它也是将 Solr Cloud 的请求分发给剩余副本的分片副本。

Zookeeper: 是一个Solr cl可以使用的Apache项目用于集中配置和协调以管理集群并选举领导者。

 

Solr 的配置

Solr 开箱即用,无需修复任何配置变化。但在某些时候,我们需要针对我们特定的搜索应用程序需求优化 Solr。以下是Apache Solr中的主要配置文件。

Solr. xml: 此文件位于 $SOLR_HOME 目录中,其中包含与 Solr 云相关的信息。给定的文件将用于加载有助于识别它们的内核。

Solrconfig.xml: 该文件包含特定于内核的配置和与请求处理和响应格式相关的定义,以及索引、配置、管理内存和提交。

Schema.xml: 它包含整个模式以及字段和字段类型。

Core.properties: 该文件包含特定于核心的配置。它被称为核心发现,因为它包含核心的名称和数据目录的路径。它可以在任何被视为核心目录的目录中使用。

对于使用 core.properties 自动发现的核心,以下是配置属性。

参数 说明
name 它提供内核所需的名称。
config 可用于指定配置文件默认为solrconfig.xml。
dataDir 它指定包含索引文件和更新日志的目录的路径,该目录默认为实例目录下的数据。
blogger 它指定包含更新日志的目录的路径。
schema 它将架构文档的名称设置为默认为 schema.xml。
shard 它为当前核心设置分片 ID。
collection 它是此核心所属的 SolrCloud 集合的名称。
loadOnStartup 如果此标志设置为 true,则在 Solr 初始化过程中加载时为核心打开一个新的搜索器。
transient 表示如果达到Solr的transientCacheSize阈值,可以自动卸载这个core。

下面显示的ER图使用core.properties显示collection1核心,并在服务器初始化期间使用solrconfig.xml对其进行配置。

Apache Solr General Terminology

 

Solrconfig.xml 概述

在命令行中使用以下命令启动服务器。

cd $SOLR_INSTALL/example
Java-jar start.jar

服务器启动后,进入 http://localhost:8983/solr 的 Solr 管理控制台。单击左侧 collection1 选项,然后单击 Files 链接。它会将您重定向到 collection1 核心的配置文件作为目录结构。要显示 collection1 核心的活动配置设置,请单击 solrconfig.xml。

<config>
<luceneMatchVersion>4.7</luceneMatchVersion>
<lib dir=

"../../../contrib/extraction/lib"

 regex=

".*\.jar"

 />
<dataDir>${solr.data.dir:}</dataDir>
<directoryFactory name=

"DirectoryFactory? class="

..."/>
<indexConfig> ... </indexConfig>
<jmx />
<updateHandler class=

"solr.DirectUpdateHandler2"

>
<updateLog> ... </updateLog>
<autoCommit> ... </autoCommit>
</updateHandler>
<query>
<filterCache ... />
<queryResultCache ... />
<documentCache ... />
<listener event=

"new_Searcher"

 class=

"solr.QuerySenderListener"

>
<arr name=

"queries"

> ... </arr>
</listener>
<listener event=

"1stSearcher"

 class="solr.QuerySenderListener">
<arr name="queries"> ... </arr>
</listener>
</query>
<requestDispatcher handleSelect=

"false"

 >
<requestParsers ... />
<httpCaching never304=

"true"

 />
</requestDispatcher>
<requestHandler name=

"/select"

 class=

"solr.SearchHandler"

>
<lst name=

"defaults"

> ... </lst>
<lst name=

"appends"

> ... </lst>
<lst name=

"invariants"

> ... </lst>
<arr name=

"components"

> ... </arr>
<arr name=

"last-components"

> ... </arr>
</requestHandler>
<searchComponent name=

"spellcheck"

class=

"solr.SpellCheckComponent"

> ... </searchComponent>
<updateRequestProcessorChain name=

"langid"

> ...
</updateRequestProcessorChain>
<queryResponseWriter name=

"json"

class=

"solr.JSONResponseWriter"

> ... </queryResponseWriter>
<valueSourceParser name=

"myfunc"

 ... />
<transformer name=

"db"

class=

"com.lidihuo.LoadFromDatabaseTransformer"

>
...
</transformer>
</config>

常见的 XML 数据结构和类型元素

元素 说明 示例
<arr> 命名的、有序的对象数组
<arr name="last-components">
<str>spellcheck</str>
</arr>
<lst> Named, ordered list of name/
value pairs
<lst name
<lst> 命名的、有序的名称/ 值对列表
<lst name="defaults">
<str name="omitHeader">true</str>
<str name="wt">json</str>
</lst>
<bool> 布尔值-真或假
<bool>true</bool>
<str> 字符串值
<str>spellcheck</str>
or
<str name="wt">json</str>
<int> 整数值
 <int>512 </int>
<long> 长整型值
<long>1359936000000</long>
<float> 浮点值
<float>3.14</float>
<double> 双浮点值
<double>3.14159265359</double>

 Solr 安装完成后,打开文件资源管理器,进入 Solr 主目录下的/bin 文件夹,使用以下命令,启动 Solr。[Hadoop@localhost ~]$ cd [Hadoop@localhost ~]$ ...