Solr 通用术语
Apache 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对其进行配置。
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> |
布尔值-真或假 |
|
<str> |
字符串值 |
<str>spellcheck</str>
or
<str name="wt">json</str>
|
<int> |
整数值 |
|
<long> |
长整型值 |
<long>1359936000000</long>
|
<float> |
浮点值 |
|
<double> |
双浮点值 |
<double>3.14159265359</double>
|