Apache Solrをインストールしてみる
会社の人から「Apache Solr」というものを教えてもらったので、試しにCentOSにインストールしてみました。
「Apache Solr」とは?
Solr は「ソーラ」と読むみたいです。Wikipedia によると
全文検索エンジンライブラリLuceneをベースに、管理画面やキャッシュ機構を取り入れたアプリケーション。
http://ja.wikipedia.org/wiki/Solr
という全文検索系のエンジンみたいです。
とりあえずインストールしてみる
なにはともあれ、まずはインストールをしてみます。
Java をインストール
Solr は Java ベースのアプリケーションになるので、事前に Java をインストールしておきます。
※大抵の場合、Java はインストール済みだと思うのでここはパスしても良いです。
$ yum install java $ java -version java version "1.6.0_17" OpenJDK Runtime Environment (IcedTea6 1.7.5) (rhel-1.16.b17.el5-i386) OpenJDK Client VM (build 14.0-b16, mixed mode)
Apache Solr をインストール
Java がインストールが完了したら、次に Solr をインストールします。
Solr のインストールはアーカイブをダウンロードして解凍するだけでOKです。
Solr は以下からダウンロードができます。
Apache Download Mirrors
今回は wget で zipファイルをダウンロードして、解凍しました。
$ wget http://ftp.riken.jp/net/apache//lucene/solr/1.4.1/apache-solr-1.4.1.zip $ unzip apache-solr-1.4.1.zip
とりあえず Solr を起動してみる
解凍まで完了したら、さっそく Solr を起動させてみます。
「apache-solr-1.4.1/example」以下にあるサンプルを起動させてみます。
起動には「start.jar」を使います。
$ cd apache-solr-1.4.1/example $ java -jar start.jar 2011-02-05 08:30:36.501::INFO: Logging to STDERR via org.mortbay.log.StdErrLog 2011-02-05 08:30:36.656::INFO: jetty-6.1.3 ... 情報: SolrUpdateServlet.init() done 2011/02/05 8:30:38 org.apache.solr.core.QuerySenderListener newSearcher 情報: QuerySenderListener sending requests to Searcher@ed32c4 main 2011-02-05 08:30:38.480::INFO: Started SocketConnector @ 0.0.0.0:8983
正常に起動ができたら、http://localhost:8983/solr/admin/ へアクセスして以下のようなページが表示されたらOKです。
とりあえず Solr にデータ登録してみる
Solr の起動が正常に完了したら、次に検索用のデータを登録してみます。
「apache-solr-1.4.1/example/exampledocs」以下にサンプルデータのxmlがあるので、今回はこの中から「ipod_other.xml」を登録してみます。
データの登録には「example/exampledocs/post.jar」を使用します。
$ cd /[solr-path]/apache-solr-1.4.1/example $ java -jar exampledocs/post.jar exampledocs/ipod_other.xml SimplePostTool: version 1.2 SimplePostTool: WARNING: Make sure your XML documents are encoded in UTF-8, other encodings are not currently supported SimplePostTool: POSTing files to http://localhost:8983/solr/update.. SimplePostTool: POSTing file ipod_other.xml SimplePostTool: COMMITting Solr index changes..
とりあえず管理ページから検索してみる
データ登録まで完了したら、http://localhost:8983/solr/admin/ へアクセスして管理ページの「Query String」に「weight:4」と入力して「Search」をクリックします。
すると、以下のように検索結果が xml 形式で表示されます。
xml 全体はこんな感じです。
<?xml version="1.0" encoding="UTF-8"?> <response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">8</int> <lst name="params"> <str name="indent">on</str> <str name="start">0</str> <str name="q">weight:4</str> <str name="version">2.2</str> <str name="rows">10</str> </lst> </lst> <result name="response" numFound="1" start="0"> <doc> <arr name="cat"><str>electronics</str><str>connector</str></arr> <arr name="features"><str>car power adapter, white</str></arr> <str name="id">F8V7067-APL-KIT</str> <bool name="inStock">false</bool> <str name="manu">Belkin</str> <date name="manufacturedate_dt">2005-08-01T16:30:25Z</date> <str name="name">Belkin Mobile Power Cord for iPod w/ Dock</str> <int name="popularity">1</int> <float name="price">19.95</float> <float name="weight">4.0</float> </doc> </result> </response>
とりあえず、今回はここまで。
正直、動作させてみただけなので、内部構造とかは良く解っていません。
tomcatとかPHPとの連携もできるみたいなので、気が向いたらやってみます。
今回参考にしたページ
PHP と Apache Solr によるエンタープライズ検索
http://www.ibm.com/developerworks/jp/opensource/library/os-php-apachesolr/
自宅サーバの道しるべ【ポート設定(ファイアウォール)】
http://my-server.homelinux.com/port_firewall.php