solr in action翻译- 第四章配置Solr 4.1
转载请声明出处,谢谢。翻译也很辛苦
本章涵盖了
•处理查询请求
•与搜索组件扩展查询处理
•管理和变暖搜索者
•管理缓存行为
到目前为止,你已经提出了什么信仰,没有学习Solr是如何工作的。我们会改变,在这一章和下一个通过学习如何配置和配置设置如何影响Solr Solr的行为。您将看到,Solr的配置可以在第一次看到令人生畏的,因为示例的配置文件在Solr服务器包含几乎所有可能的配置设置。我们在这一章的重点介绍最重要的配置设置Solr,尤其是那些影响Solr如何处理来自客户机应用程序的请求。你获得的知识在本章将被应用在这本书的其余部分。阅读本章后,你将有一个公司的理解如何在Solr服务器上执行查询。
在第二章我们得知,Solr的工作不需要任何配置更改。但在某些时候,你需要为您的特定优化Solr search-application需求。一般来说,大多数的配置你与Solr集中在三个主要的XML文件:
•solr.xml——定义相关属性管理、日志记录、分片,SolrCloud
•solrconfig.xml——定义的主要设置特定的Solr的核心
•schema. xml定义索引的结构,包括字段和字段类型
在这一章,我们将专注于xml。在第五章中,我们将了解所有schema.xml,驱动你的索引结构。至于solr。xml,您不需要做任何手动修改该文件,因此我们将跳过讨论它的目的,直到第12章,当我们介绍核心管理API。
Solr的大多数的配置中指定XML文档,本章从XML包含大量代码清单显示XML片段。但是我们的主要重点是概念背后的配置设置,而不是特定的XML语法,这是自解释的。
首先,从配置的角度让我们看看会发生什么,当你启动Solr服务器。从第2章召回,Solr在Jetty作为Java web应用程序运行。Solr web应用程序使用一个全局Java系统属性(solr.solr.home)来识别寻找配置文件的根目录。示例服务器,Solr的主目录(solr.solr.home)$ SOLR_INSTALL / / Solr /例子。
接下来,Solr扫描包含一个核心的主目录的子目录。属性文件,它定义了autodiscovered核心的基本属性。例如,示例服务器有一个核心。属性文件的示例中example/solr/collection1/。的核心。属性文件包含一行定义核心的名称,名称=文物,包括那些需要触发自动发现文物的核心包括。图4.1描述了核心。属性和solrconfig。xml使用Solr的初始化过程中创建和设置collection1核心包括。
图4.1。Solr发现collection1的核心包括使用core、使用solrconfig属性和solrconfig.xml在服务器初始化。
在Solr的早期版本中,您必须在Solr.xml定义核心,需要建立一个核心的缺点目录,然后添加solr.xml的核心定义。与核心。属性,您不再需要额外的步骤添加solr.xml的核心。此外,
新方法允许独立的核心通过消除需要定义所有核心中央配置文件。
core.properties文件在例子collections1 core包括只包括所需的名称参数。但是你也可以设置一些可选的参数来调整一个autodiscovered核心的定义。表4.1显示了参数可以指定的核心。属性定义一个autodiscovered核心。
表4.1。配置属性使用core.properties autodiscovered核心
参数 | 描述 |
name | Core的名称,必须的 |
config | 指定配置文件的名称,默认为solrconfig.xml。 |
dataDir | 指定的路径目录包含索引文件和更新日志(tlog);默认数据实例目录下。 |
ulogDir | 指定的路径包含更新日志的目录(tlog)。 |
schema | 集模式文档的名称,默认为schema.xml。 |
shard | 设置core这个核心的碎片ID;有关更多信息,请参见12和13章分片。 |
collection | 称SolrCloud收集这个核心属于;集合是第13章。 |
loadOnStartup | 如果是true,这个核心Solr的初始化过程中加载和核心的新搜索器打开。 |
transient | 表明该核心可以自动卸载如果Solr的达到transientCacheSize阈值(高级选项)。 |
现在,你不需要担心任何的属性列在表4.1中,当我们在本章中主要的关注点是solrconfig。collections1的例子包括核心的xml文件。重要的是要理解,Solr可以使用core.properties autodiscover内核在启动期间。一旦发现一个核心,Solr solrconfig定位。xml文件下SOLR_HOME / instanceDir / conf / solrconfig美元。xml,$ instanceDir /目录包含的核心。属性文件。Solr使用solrconfig。xml文件来初始化的核心。
既然我们已经看到了Solr标识配置文件在启动期间,让我们把注意力转到理解solrconfig的主要部分。solrconfg.xml,因为这将给你一个想法的在本章的其余部分。
4.1solrconfig.xml的概述
在solrconfig说明的概念solrconfig. xml,我们将建立工作在第二章通过使用预配置的示例服务器和Solritas example-search UI。开始,我们建议您从服务器的例子在第二章我们使用使用如下所示的命令清单。
清单4.1。从命令行启动示例服务器
cd $SOLR_INSTALL/example
java -jar start.jar
一旦你开始服务器,去Solr管理控制台:http://localhost:8983 / Solr,单击左边的collection1链接core,然后链接的文件。这将显示所有collection1核心包括配置文件的目录结构。单击solrconfig。xml显示活跃的配置设置的collection核心包括在你的电脑上运行。该清单显示了solrconfig的压缩版本。xml,给你一个想法的主要元素。
清单4.2。压缩版本的sorlconfg.xml
正如您可以看到的,solrconfig。xml有很多复杂的部分。好消息是,你不必担心这些,直到你遇到一个特定的需要。另一方面,这是一个好主意在solrconfig精神的注意solrconf.xml,它展示了如何灵活Solr是和什么类型的行为你可以控制和扩展。
当组织这一章,我们选择目前订单的配置设置建立在前面,而不是遵循XML文档中的元素的顺序。之前我们现在Solr的请求处理框架讨论缓存,即使在xml缓存相关设置request-handler之前设置。我们采取这种方法,因为你应该理解如何处理请求之前你担心与缓存优化一个特定类型的请求。但这并意味着你将不得不跳来跳去的XML文档作为你通过这一章的工作。
索引设置延迟第五章
solrconfig。xml文件包含index-management设置。但我们可以节省下一章讨论与索引相关的设置,这样,你就可以了解他们在获得索引过程的基本理解。具体来说,可以忽略以下元素,直到第五章:
<dataDir> ... </dataDir>
<directoryFactory name="DirectoryFactory" class="..."/>
<indexConfig> ... </indexConfig>
<updateHandler class="solr.DirectUpdateHandler2"> ...
<updateRequestProcessorChain name="langid"> ...
4.1.1。常见的XML数据结构和类型的元素
当你通过solrconfig. xml工作。,您会遇到常见的xml元素,Solr用来表示各种数据结构和类型。表4.2提供了简要的描述和实例类型的元素,在solrconfig Solr使用。xml文档。你也会遇到这些元素在XML搜索结果,所以请花时间熟悉这个Solr-specific语法。
表4.2。Solr的数据结构和类型的XML元素值
Element | Description | Example |
<arr> | Named, ordered array of objects | <arr name="last-components"> <str>spellcheck</str> </arr> |
<lst> | Named, ordered list of name/value pairs | <lst name="defaults"> <str name="omitHeader">true</str> <str name="wt">json</str> </lst> |
<bool> | Boolean value—true or false | <bool>true</bool> |
<str> | String value | <str>spellcheck</str> or <str name="wt">json</str> |
<int> | Integer value | <int>512</int> |
<long> | Long value | <long>1359936000000</long> |
<float> | Float value | <float>3.14</float> |
<double> | Double value | <double>3.14159265359</double> |
主要区别< arr >和< lst>是< lst >的每个子元素名称属性,但< arr >子元素是匿名的。
4.1.2。应用配置更改
学习配置不是最令人兴奋的任务,这样帮助你保持兴趣,我们建议你尝试配置更改这一章。您的更改不会应用,直到你重新加载Solr核心,然而。Solr solrconfig并不看变化。xml和应用自动;你必须采取一个明确的行动应用配置更改。目前,应用配置更改的最简单方法是使用重载按钮从管理控制台的核心管理页面,如图4.2所示。
图4.2。重新加载一个核心应用配置更改从核心管理页面。
如果你在本地运行Solr,点击刷新按钮的collection1核心包括验证功能。在本章结束时,我们会看到另一种方式重新加载内核编程,使用核心管理API。
4.1.3。各种各样的设置
现在我们已经介绍了一些配置的背景,让我们开始我们的solrconfig之旅solrconfg.xml通过观察杂项Solr服务器的设置。下一个清单显示了配置设置在本节我们将讨论。
清单4.3。全局设置的顶部附近
Lucene版本
Lucene和Solr认真对待向后兼容性。< luceneMatchVersion >元素控制Lucene索引是基于的版本。如果你开始,然后使用版本,在例子中指定服务器,如:
<luceneMatchVersion>4.7</luceneMatchVersion>
现在想象一下,经过几个月的运行Solr和索引数以百万计的文件,你决定,你需要升级到最新的版本的Solr。当你开始更新的Solr服务器,它使用< luceneMatchVersion >明白你的指数是基于哪个版本,是否禁用Lucene的特性,取决于后面的版本比指定。
你将能够运行Solr的升级版本与你的大index,但在某些时候你可能需要提高< luceneMatchVersion >利用Lucene的新功能和错误修正。在这种情况下,你可以重建索引文件,或者使用Lucene的内置index-upgrade工具。[1],因为对未来的问题,我们会参考你的JavaDoc指令如何运行升级工具。
加载依赖JAR文件
<lib>元素允许您添加JAR文件Solr的运行时类路径,这样就可以找到插件类。让我们来看看几个<lib>元素的solrconfig.xml示例。看到<lib>元素是如何工作的。
<lib dir="../../../contrib/langid/lib/" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-langid-\d.*\.jar" />
每个<lib>元素识别一个目录和一个正则表达式匹配的目录中的文件。注意,dir属性使用相对路径,评估从核心目录根,通常被称为核心instanceDir。对于collection1核心服务器的示例中,包括instanceDir SOLR_INSTALL$/ / solr /collection/包括例子;记住,$ SOLR_INSTALL /的变量名称的目录提取solr分布存档。因此,先前的两个示例<lib>元素导致以下JAR文件被添加到Solr的类路径:
jsonic-1.2.7.jar (from contrib/langid/lib/)
• langdetect-1.1-20120112.jar (from contrib/langid/lib/)
• apache-solr-langid-4.7.0.jar (from dist/)
注意,apache-solr-langid。jar的版本号文件可能不同,这取决于您正在使用哪个版本的Solr 4。或者,您可以使用路径属性来识别一个JAR文件,等
<lib path="../../../dist/solr-langid-4.7.0.jar" />
You can also put JAR files for plugins in the $SOLR_HOME/lib/ directory, such as $SOLR_INSTALL/example/solr/lib/.
启用JMX
< jmx >元素激活Solr的mbean允许系统管理员监控和管理核心Solr组件从流行的系统监视工具,比如Nagios。简而言之,一个MBean是一个Java对象,使配置属性和统计使用Java管理扩展(JMX)API。mbean可以autodiscovered和自检JMX-compliant工具。这允许Solr集成到您的现有system-administration基础设施。我们将讨论如何启用外部监测Solr在12章更详细地通过JMX。
你不需要一个外部JMX-enabled监控工具看到Solr的mbean。Solr管理控制台提供访问所有Solr的mbean。图4.3是一个文物核心包括截图的MBean。
图4.3。检查插件的SolrCore MBean /collection1核心包括统计页面