日記とか、工作記録とか

自分に書けることを何でも書いてゆきます。作った物、買ったもの、コンピュータ系の話題が多くなるかもしれません。

Apache alikeを試してみる(その5:デモWebサーバの起動)

さて、いよいよ作業も最終段階に入ります。デモ用のWebサーバを用意して起動します。

  1. Apache alikeを試してみる(その1:準備と前置き) - 日記と、買い物記録
  2. Apache alikeを試してみる(その2:前提環境構築) - 日記と、買い物記録
  3. Apache alikeを試してみる(その3:alikeのインストール&コンパイル) - 日記と、買い物記録
  4. Apache alikeを試してみる(その4:データの作成) - 日記と、買い物記録
  5. Apache alikeを試してみる(その5:デモWebサーバの起動) - 日記と、買い物記録
  6. Apache alikeを試してみる(おまけ:run_desc_extractor.pyの改良) - 日記と、買い物記録
  7. Apache alikeを試してみる(おまけ2:動作例とサンプル画像) - 日記と、買い物記録

Apache Solr 4.8.0のインストールと起動

Apache Solrは検索システムだそうです。私も詳細を知らずに使っているだけですが、これ自体はWebサーバの機能を持つわけではないようです。本来はTomcatなどのミドルウェアのうえで動作させるようですが、Solrの中に簡易的な仕組みが用意されていますので、これを使用します。

Solrのサイトから4.8.0をダウンロードしました。これをホームディレクトリで展開します。

$ tar xf solr-4.8.0.tar

参考ページの内容に従えば、ここで以下のように実行するよう案内されています。しかしこのままでは動作しません。まず、solrhomeはどこにあるかというと、alike/trunk/demo/solrhomeにありますので、javaの-Dsolr.solr.homeにはこの場所を引き渡す必要があります。

【このままでは実行できない例】
$ cd apache-solr-4.0.0/example
$ java -Dsolr.solr.home=../../solrhome -jar start.jar
【実際に動かした例】
$ cd apache-solr-4.8.0/example
$ java -Dsolr.solr.home=../../alike/trunk/demo/solrhome -jar start.jar
:
:
:
3973 [main] INFO  org.apache.solr.servlet.SolrDispatchFilter  – user.dir=/Users/WindVoice/solr-4.8.0/example
3974 [main] INFO  org.apache.solr.servlet.SolrDispatchFilter  – SolrDispatchFilter.init() done
4036 [main] INFO  org.eclipse.jetty.server.AbstractConnector  – Started SocketConnector@0.0.0.0:8983

最後に接続先の情報が現れます。この時点で http://localhost:8983/solr にアクセスすると、Apache Solrの管理画面が表示されますので動作しているか確認ができます。

Apache Solrの起動が確認できたら、前回作成したデータを引き渡せます。以下の場所にあるpost.shを使ってPOSTします。渡すデータも下の場所にあります。

$ cd apache-solr-4.8.0/example/exampledocs
$ ./post.sh ~/alike/trunk/demo/solr-demo-data.xml
Posting file solr-demo-data.xml to http://localhost:8983/solr/update
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader"><int name="status">0</int><int name="QTime">751</int></lst>
</response>

<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader"><int name="status">0</int><int name="QTime">363</int></lst>
</response>

最後に、結果を確認するための簡易Webサーバを起動します。実際の起動前に、Pythonのモジュールsolrpyを追加インストールする必要がありました。

$ sudo easy_install solrpy
Password:
Searching for solrpy
Reading http://pypi.python.org/simple/solrpy/
Best match: solrpy 0.9.6
Downloading https://pypi.python.org/packages/source/s/solrpy/solrpy-0.9.6.tar.gz#md5=5fde85d44010521179a223cde1cc4007
Processing solrpy-0.9.6.tar.gz
Running solrpy-0.9.6/setup.py -q bdist_egg --dist-dir /tmp/easy_install-uvvgM7/solrpy-0.9.6/egg-dist-tmp-V3SxXZ
warning: no previously-included files matching '*.pyo' found anywhere in distribution
zip_safe flag not set; analyzing archive contents...
Adding solrpy 0.9.6 to easy-install.pth file

Installed /Library/Python/2.7/site-packages/solrpy-0.9.6-py2.7.egg
Processing dependencies for solrpy
Finished processing dependencies for solrpy
$ 
$ cd ~/alike/trunk/demo
$ python demoserver.py

ここまでくれば、簡易Webサーバは起動しています。 http://localhost:8080/ にアクセスして結果が表示されれば、動作確認はOKです。

さて、かなり長い内容でしたが、果たして最後まで読み進む人が現れるのでしょうか。プロジェクト自体もまだマイナーなようですし…… 私自身も動作させることに成功しただけで、内部でどんな処理が行われているのか理解できていません。そのあたりはこれから探っていこうと考えています。今回の記事としては、環境構築から動作まで、ということでいったん終了としたいと思います。

入門 機械学習

入門 機械学習

集合知プログラミング

集合知プログラミング