全文検索エンジン Solr について②
前回の投稿の続きです。
◆全文検索の仕組み
●全文検索の代表的な方式
【順次検索】
・検索対象ドキュメントを先頭から探索
(grep コマンドなど)
・
【転置インデックス】
・索引(転置インデックス)を作成しておき、索引を利用して検索
【転置インデックス要約】※あくまで要約です。実際のsolrの インデックスとは異なります。
■下記、3つのドキュメントがあるといます。
・私の好きな寿司ネタは、赤身と穴子と玉子です。
・木村さんの好きな寿司ネタは、赤身とイクラと玉子です。
・大石さんの好きな寿司ネタは、穴子とタコです。
■各ドキュメントに一意の番号を付ける
1 私が一昨日食べた寿司のネタは、赤身と穴子と玉子です。
2 私が昨日食べた寿司のネタは、赤身とイクラと玉子です。
3 私が今日食べた寿司のネタは、穴子とタコです
■ドキュメントを単語に分割
1 私 が 一昨日 食べた 寿司 ネタ は 、 赤身 と 玉子 です。
2 私 が 昨日 食べた 寿司 ネタ は 、 赤身 と 穴子 です。
3 私 が 今日 食べた 寿司 ネタ は 、 穴子 と 玉子 です。
■転置インデックスの作成
私 1、2、3
が 1、2、3
…
…
赤身 1、2
玉子 1、3
穴子 2、3
■AND検索
・赤身 AND 玉子 で検索
・赤身 1、2 玉子 1、3 ※両方に含まれるのは 1
・結果:ドキュメント1が検索される。
【順次検索】
〔メリット〕
・インデックスを使わないためメンテナンスが必要ない
・インデックスを使わないため最新のドキュメントを即時検索できる
〔デメリット〕
・大量のドキュメントを検索するのは向かない
・多数のユーザーから繰り返し検索される状況下では非効率
【転地インデックス】
〔メリット〕
・大量のドキュメントの検索に向く
・多数のユーザーから繰り返し検索される状況下でも効率的に処理できる
〔デメリット〕
・インデックスのメンテナンスが必要
・最新のドキュメントとインデックスにタイムラグが生じる
・ドキュメントとは別にインデックスを格納するディスクまたはメモリ領域が必要