LoginSignup
0
0

More than 5 years have passed since last update.

solrの勉強はじめました。Lv.1

Posted at

書いてあること
1. Solrについて
2. スキーマについて
3. 外部のDBとの接続について

Solrについて

Solr = 全文検索エンジンで、Luceneをベースに作られている。

一般に検索方法は、
 1. 順次検索方式(grepやLIKEなど)
 2. 転置インデックス方式
の2通りが存在し、solrは後者。

クライアントから検索リクエストをサーチハンドラが受け取り、その中に含まれる検索式をもとにインデックスから検索し、
得られた結果をクライアントまで返す。

スキーマについて

スキーマ = データベース構造のこと。
Solrにどのようなデータが投入でき、検索できるかを定義することができる。
スキーマの定義によってSolrの検索挙動も大きく変わる(らしい)
定義の方法は、Schema APIとSchema.xmlの2通りがある。
* Schema APIはmanaged-schemaディレクトリ内でjson形式で、定義する。

スキーマ定義の構成要素は

要素名 定義の省略 SchemaAPIでの編集
FieldType 不可 可能       
Field 可能     可能       
Dynamic Field 可能      可能       
UniqueKeyField 可能 可能       
CopyField 可能       可能       
Similarity 可能 可能       

の6つ。

フィールドタイプにはAnalyzerをもつものともたないものがある。
Analyzarとは、任意のワードで文書を検索するためのインデックスをつくる仕組み

Analyzer = charfilter + tokenizer + filter
処理の順番は、charfilter → tokenizer → filter

tokenizerは、「トークン」を出力する。トークンは、文字列だけでなく他のトークンとの位置関係やドキュメント内でのオフセットをもつ。

外部DBとの接続について

外部のデータソースに格納されたデータをインポートし、solrにインデックスするにはデータインポートハンドラを使う。

solrconfig.xmlで、リクエストハンドラを定義する。

  <requestHandler name="/dataImport" class="org.solr.handler.dataimprt.dataImportHandler">
    <lst name="defaults">
      <str name="config">db-data-config.xml</str>
    </lst>
  </requestHandler>

db-data-config.xmlで、データインポートハンドラの設定をしている。
データインポートハンドラで、RDBなどの外部のデータベースとのマッピングを行うことができる。

参考文献など
 
http://d.hatena.ne.jp/shinobu_aoki/20110819/1313773180

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0