環境
- Scientific Linux release 7.2 (Nitrogen)
- Apache Solr 6.6
インストール
- # yum install -y java
- # wget http://ftp.jaist.ac.jp/pub/apache/lucene/solr/6.6.0/solr-6.6.0.tgz
- # tar xzf solr-6.6.0.tgz
- # solr-6.6.0/bin/install_solr_service.sh solr-6.6.0.tgz
でおしまい。service にも systemctl にも登録されている。便利。
チュートリアル
QuickStart が用意されているので遊んでみる。
xml とか json とかのデータを食わせることができて、それらを検索できるっぽいです。
- # systemctl start solr
しておいて
- $ /opt/solr/bin/solr create -c gettingstarted
とかでコレクションを作る。コレクションに情報を集約する感じかな。
ちなみに root で bin/solr create とかすると怒られる。
su - solr するとデータのディレクトリとかがあるので、ここにデータが入るのだろう。
QuickStart を参考に
- /opt/solr/bin/post -c gettingstarted /opt/solr/docs
- /opt/solr/bin/post -c gettingstarted example/exampledocs/*.xml
- /opt/solr/bin/post -c gettingstarted example/exampledocs/books.json
- /opt/solr/bin/post -c gettingstarted example/exampledocs/books.csv
とかでデータを食わせる。食わせたデータは RESTful に検索できるとのこと。
ということでいろいろと検索してみる。
- $ curl "http://localhost:8983/solr/gettingstarted/select?indent=on&q=*:*&wt=json"
- でとりあえず何にでもマッチするクエリを投げる
- 検索は key:value ってフォーマットらしい
- なので *:* はなんでもマッチする感じですね
- $ curl "http://localhost:8983/solr/gettingstarted/select?wt=json&indent=true&q=foundation"
- で "foundation" を含むデータを探す。
- 返ってくるデータの形式は json
- たぶん json 以外にも対応している
- $ curl "http://localhost:8983/solr/gettingstarted/select?wt=json&indent=true&q=foundation&fl=id"
- 返すフィールドを id のみに制限。
- fl が field の略か。
とかとかいろいろあるらしい。
ブラウザからもアクセス可能でその場合はデフォルトだと 8983 番で listen している。
マルチバイト文字の扱いが地味に気になるがその辺りも対応しているのなら便利そうだ。
でも始めて聞いたな Solr 。界隈では有名なのだろうか。
0 件のコメント:
コメントを投稿