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> | 布尔值-真或假 |
<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 ~]$ ...