Solr 1.3 のマルチコアでdataDirを指定する

マルチコアの設定を試していたのだけど、ここによると、dataDir も設定できるようにも見えるが、それとなく Solr 1.4 と書いてあり、solr.xmlでは Solr 1.3 では指定することができない。というわけで、ここによると、各コアの solrconfig.xml で指定しておけば良いことがわかる(がしかし、そのやりとり内の例が間違っている…)。というわけで、Solr 1.3 でマルチコアにして、dataDir を各コアで指定したいときには、solr.xml で

<?xml version="1.0" encoding="UTF-8"?>
<solr persistent="true" sharedLib="lib">
<cores adminPath="/admin/cores">
<core name="core0" instanceDir="core0" />
<core name="core1" instanceDir="core1" />
<core name="core2" instanceDir="core2" />
<core name="core3" instanceDir="core3" />
</cores>
</solr>

という感じにして、各コアの solrconfig.xml で

:
<dataDir>./solr/${solr.core.name}/data</dataDir>
:

とdataDirを指定しておけば、各コアに conf とかをまるっとコピーすることができる。

jardiff-maven-plugin

jardiff-maven-plugin っていうのがあったので、どんなレポートを生成してくれるのかが気になる(試してみたもの、Maven のバージョンが合わないせいか、動かなかった)。どうやら、API の diff を生成してくれるみたい。内部的には jardiff を呼んでいるだけのようだが。そのうち、またチャレンジしてみよ。

Solrが参照するcommons-io

solr-core と solr-solrj の pom では commons-io の groupId が以下のように org.apache.commons になっている。

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>

なので、自分のプロジェクトでも groupId が commons-io の commons-io を定義していると別物として扱われ、2つの commons-io が入ることになる。というわけで、紛らわしいから自分のプロジェクトの pom で solr の dependency で exclusions して commons-io が入らないようにするのが良いかも。commons 系の groupId は困るな…。