Solr中需要配置的文件主要有三个:
我们从配置的角度看一下Solr Server是怎么启动的。在Solr 4.7.0的example中,运行里面的start.jar时候,启动的是一个Java web应用程序(用的是Jetty),Solr web应用通过一个全局的Java属性(solr.solr.home)来识别配置文件所在的目录,在example中,Solr的home directory(solr.solr.home)为本机中solr所在的目录下的example/solr处。
接下来,Solr扫描home directory的子目录,找到core.properties文件,在示例中,core.properties文件里面包含一句:name=collection1,定义了core的名字。下图展示了core.properties和solrconfig.xml在Solr初始化过程中是如何被使用以及如何配置collection1 core的:
在Solr服务器加载的时候,会自动在core.properties文件中发现collection1这个core(即使它没有在solr.xml中定义),然后在colletion1文件夹下的solr.xml里面就有collection1的配置文件solrconfig.xml,solr运用这个配置文件来对core都进行初始化。
core.properties文件除了能够定义name之外,还可以定义其他的属性:
solrconfig.xml
因为各个配置文件都是xml文件,先了解一下xml中的data-structure和type elements:
<arr>和<lst>的区别:
<lst>中每个子元素都有name属性,而<arr>的子元素则unnamed.
Solr并不会实时更新solrconfig.xml文件,如果要apply更新,则需要在Solr的admin界面中手动更新:
在配置文件的顶部会看到如下配置语句:
第一个标签定义了所用的lucene版本,第二个标签<lib dir/>定义了需要加载的jar包。
jmx是Java Management Extensions的缩写,这种高级玩法在后面再学习。
参考文献
[1]Grainger T, Grainger T, Grainger T. Solr in Action[M]. Manning Publications, 2014.