Apache Solr を使ってみた

ちょっとしたきっかけで
Apache Solr」という全文検索エンジンを知ったので、
使ってみた。

結論から言うと、
使いこなすには時間が必要だと思った。
構文解析の知識も必要かなと・・・。
ただ、触ってみるだけなら簡単だった。

環境は CentOS 6.4 です。


Apache Solr はJavaで動くので、Tomcatが必要。
Tomcatもインストールする。


tomcatのインストール】
まずはパッケージ確認
# yum list *tomcat*

今回はバージョンが6だったので、以下のように指定する。
# yum -y install tomcat6 tomcat6-webapps tomcat6-admin-webapps

# /etc/init.d/tomcat6 restart

http://IP:8080

各ページへアクセスできるように「/etc/tomcat6/tomcat-users.xml」を編集する。

                                  • -




                                  • -


【ApacheSolrのインストール】
http://archive.apache.org/dist/lucene/solr/ から最新版を取得する。
# wget http://archive.apache.org/dist/lucene/solr/4.4.0/solr-4.4.0.tgz
# tar xzvf solr-4.4.0.tgz

起動する。
# cd solr-4.4.0/example
# java -jar start.jar &

管理画面にアクセスしてみる。
http://IP:8983/solr

表示されているはず。


【サンプルデータの登録】
# cd /solr-4.4.0/example/exampledocs
# java -Ddata=files -jar post.jar 任意のxmlファイル


PHPで操作】
peclのクライアントライブラリをインストールする。
# yum -y install php-pecl-solr

以下が取得コード

$client = new SolrClient(array(
    'hostname' => 'localhost',
    'port'     => 8983,
));
$query = new SolrQuery('*');
$query->addField('name')->addField('cat');
$query->addSortField('name', SolrQuery::ORDER_DESC);
$query_response = $client->query($query);
$response = $query_response->getResponse();
print_r($response);


使うだけなら、こんな感じで使えます。

ただ、 schema.xml を理解できていないと
「使える」とはいえない気がする・・・。

とりあえず、今はここまでかな・・・・。