CoreAdminHandler 之 CREATE

CREATE 请求将创建一个新的 core,并注册到 solr 中。如果配置了持久(<solr>元素中的 persistent=”true”),这个新 core 的配置将被保存到 solr.xml中。如果名称已存在,旧的 core 在新 core 初始化完成前继续服务,当新的 core 初始化完成后,旧的 core 将被锁定。

http://localhost:8983/solr/admin/cores?action=CREATE
&name=coreX&instanceDir=path/to/dir
&config=config_file_name.xml&schema=schem_file_name.xml&dataDir=data

CREATE 接受两个必须参数和三个可选参数

name:
指定新 core 的名称
instanceDir:
指定新 core 的文件存储的目录
config:
可选,配置文件的名称,默认为 solrconfig.xml
schema:
可选,schema文件的名称,默认为 schema.xml
datadir:
可选,数据文件目录

CoreAdminHandler 之 STATUS

STATUS 请求返回所有运行中的solr 所有的 core 的状态,也可以指定特定 core 的状态。
http://localhost:8983/solr/admin/cores?action=STATUS
http://localhost:8983/solr/admin/cores?action=STATUS&core=core0
这个 STATUS 请求接收一下可选参数:
core:
core名称,该名称可以在 solr.xml 中查看到

CoreAdminHandler

CoreAdminHandler 是一个专门管理 solr core 的请求处理器。跟普通的 SolrRequestHandlers 不一样,CoreAdminHandler 不属于某个专门的 core,它是存在于 solr 实例的顶层。
使用 CoreAdminHandler 时,确保在 <cores> 元素里定义了 adminPath,否则不能请求到 solr core 的管理界面。
CoreAdminHandler 有7个不同的请求,这些请求通过 HTTP 请求。这些请求名称是大写的,名字如下:
STATUS
CREATE
RELOAD
RENAME
ALIAS
SWAP
UNLOAD
后续章节将详细讲解每个请求

solr.xml 之 Properties

<solr persistent="true" sharedLib="lib">
<property name="productname" value="Acme Online"/>
<cores adminPath="/admin/cores">
<core name="core0" instanceDir="core0">
<property name="dataDir" value="/data/core0"/></core>
<core name="core1" instanceDir="core1"/>
</cores>
</solr>

solr.xml 之core

每个 core 指定一个 SolrCore,core 是 cores 的子元素,core 元素有以下 6 个属性:
name
SolrCore 名称,在通过 CoreAdminHandler 运行命令时,需要这个名称
instanceDir
core 文件的路径,相对于 solr home 目录 
config
指定 core 的配置文件的名称,默认为 solrconfig.xml
schema
指定 schema.xml 配置文件的名称,默认为 schema.xml
dataDir
core 数据存放的路径,相对于 solr home 目录
properties
core 的属性文件的路径,可以是绝对路径也可以是相对于 instanceDir 的绝对路径。

多核配置 之 cores 节点

Cores 有以下三个属性:

adminPath

这是一个相对URL路径,用于访问 solr core 的管理页面。假设该值为 /admin/cores ,说明可以通过 http://localhost:8983/solr/admin/cores 来访问 CoreAdminHandler。

shareSchema:

当这个属性值为 true 时,多个核将使用同一份的 schema.xml,并且使用相同的 IndexSchema 对象,使用同一个 IndexSchema 对象可以让 core 加载的更快,使用该特性时,需保证每个核不需要特殊的 schema.xml。

adminHandler:

该属性用于指定 adminHandler 的处理类,如果使用该属性,需要设置完整的类路径。实现类需要继承自 CoreAdminHandler。如果该属性没有设置,系统将使用自带的 org.apache.solr.handler.admin.CoreAdminHandler。

多核配置 之 solr 节点

Solr 节点是 solr.xml 的根节点,其有以下几个属性可以配置:

Persistent:

是否保存运行时通过 api 和 admin ui 对该文件的修改。如果为 false,任何运行时的修改,在下一次 solr 启动后,修改都将失效。当 改值为 true 时,需保证应用对该文件具备写权限。

sharedLib:

设置 jar 的共享目录,该目录下的jar包,可以被任一核使用,该路径是相对 solr home 的。

配置多核(Multiple SolrCores)

Solr 支持多个索引库,每个索引库有各自的配置,多个索引库,在 solr 中称为多核,多个核可以通过一个统一的管理界面进行管理。创建一个新的核、关闭核甚至替换正在运行的核都是非常快速的,也不用重启 servlet 容器(不用重启tomcat)。

多核配置在 solr.xml 文件中,典型的多核配置如下所示:

<solr persistent="true" sharedLib="lib">
	<cores adminPath="/admin/cores">
		<core name="core0" instanceDir="core0dir"/>
		<core name="core1" instanceDir="core1dir"/>
	</cores>
</solr>

这个配置了两个核,名称分别是 core0 和core1,同时制定了他们数据存储的路径。

Solr.xml

Solr.xml 用于控制solr 的 core,配置多核就是在这个文件中配置的,solr.xml 存在 solr home 目录下,默认的 solr.xml 文件如下所示:

<solr persistent="false">
	<cores adminPath="/admin/cores"
		defaultCoreName="collection1"> <core name="collection1" instanceDir="." />
	</cores>
</solr>

solrconfig.xml 之 enableLazyFieldLoading

如果这个参数设置为 true,不是直接请求的字段将会被延迟加载。这个可以提高性能,在查询只是查小数据量字段时,那些大内容字段将会延迟加载。
<enableLazyFieldLoading>true</enableLazyFieldLoading>

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress