Solrについて
Solrとは
Solr is the popular, blazing-fast, open source enterprise search platform built on Apache Lucene™.
- オープンソースの全文検索エンジン
- 検索プログラムのLuceneがベース
- Standaloneモードとクラウド運用に特化したSolrCloudモードがある
- データセットはcore(standalone)またはcollection(SolrCloud)と呼ばれる
- データをインポートする際スキーマは指定しなくても自動で解析してくれる
- 転置インデックスという方式でインデックスを作成する
- トークナイズの方法には形態素解析やN-gramがある
- SQLのGROUP BYのような検索をする、ファセット機能をもつ
- 地理空間検索ができる
こちらの記事が要点を抑えていてわかりやすいです。
文章を単語ごとに分解する方法。
例:「東京特許許可局」 →「東京」「特許」「許可局」
意味のわからないトークンが作られない一方、例えば「京特」で調べた時に引っかからないという事が起こる。
文章をN文字で機械的に分解する方法。
例:「東京特許許可局」N=2 →「東京」「京特」「特許」「許許」「許可」「可局」
検索する文字に対して漏れなく結果を返せる反面、それが全く関連のないノイズとなりえる。
データソースとトークンの間のM:N関係。
動かしてみる
こちらの記事を参考にdockerで動かしてみます。
$ docker pull solr $ docker run -d --name=solr -p8983:8983 solr
NOTE: docker run
をすると8983ポートでsolrが起動します。もし以下のTutorialのようにSolrCloudを試したい場合は違うポートを繋いでおき、コンテナ内で別プロセスを立ち上げるのが楽です。またその後任意のコマンドを実行する際にはポートを指定する必要があるので注意。
疑問
- Schemaの書き方
- 検索の適合度
- 地理検索機能の実例