全文検索
このページではQuickSolutionの全文検索技術について、ご紹介します。
全文検索とは
全文検索とは、複数の文書ファイルから特定の文字列(キーワード)を検索する技術を指します。
文書ファイルの「ファイル名」や「ファイル内の特定の文字列」だけを検索するのと異なり、複数の対象ファイルの全文(文章の全体)からテキスト情報を抽出し、合致する文字列(キーワード)を検索することができる全文検索は、ファイルの所在やファイル名がはっきりしない場合などに非常に有効な検索手法です。
QuickSolutionの全文検索には、キーワードによる検索(完全一致検索)のほか、あいまい検索(類似検索)、セマンティック検索があります。
全文検索の仕組みやQuickSolutionの全文検索の特長について、以下で詳しくご説明いたします。
全文検索のテキスト情報の抽出方法
全文検索はgrep型と索引型とに大別されます。
多くの本が格納された本棚から欲しい情報を探すケースを例に、この2つの全文検索方式をご説明いたします。
まずgrep型は、本棚の端から端まで一つずつ本を開いては欲しい情報があるかどうかを探していく方法で、逐次検索とも呼ばれます。事前準備は必要なくただちに検索に取り掛かることができますが、膨大な本とそのページ(データ)の中から探し出す場合、その量に比例して検索時間も長くなります。

一方索引型では、各情報がどの本棚のどの段のどの本の何ページに格納されているかのリスト(索引情報)をあらかじめ準備しておきます。このリストを用いることで簡単かつスピーディに、欲しい情報の載った本を探し出すことができるのです。

ビジネスシーンにおいては大量のデータ群から目的の情報を高速に検索することが求められるため、あらかじめ索引情報を準備しておく索引型の全文検索が一般的です。この索引情報をインデックスと呼びます。
(インデックスの生成方法に関しては機能>高速検索をご参照下さい)
インデックス生成時の文字列の抽出方法としては、主に形態素解析方式、N-gram方式、さらにその2つを組み合わせたハイブリッド方式などがあります。
形態素解析方式の特徴
英文の場合は単語と単語の間にスペースが入るため、スペースで区切られた文字列を抽出していけば、索引データの作成は容易です。しかし、日本語の場合は、単語をスペースで区切る習慣がありません。
その為、文脈の解析、単語分解を行い、それをもとにインデックスを生成します。
それが形態素解析です。
形態素解析を行うためには解析用の辞書(システム辞書)が必須であり、全文検索結果は辞書の品質に大きく影響を受けます。
N-gram方式の特徴
検索対象を単語単位ではなく文字単位で分解して、インデックスを生成する方式です。
たとえば「全文検索技術」という文字列の場合、「全文」「文検」「検索」「索技」「技術」と2文字ずつ分割してインデックスを生成すれば、検索漏れが生じず、辞書の必要もありません。
しかし形態素解析に比べると、全文検索結果にノイズ(「京都」で検索すると「東京都」がヒットするなど)が生じることが欠点とされています。
QSハイブリッド方式
QuickSolutionの全文検索は、形態素解析をベースとしたN-gram方式併用の「QSハイブリッド方式」を採用。
「QSハイブリッド方式」は、N-gram方式の特徴である検索漏れが発生しないという点に加え、検索ノイズについては独自アルゴリズムによる抑制および辞書の併用により、ノイズが入りにくくなっています。
システム辞書のメンテナンスは基本的に不要な為、未踏テキストもすぐに検索することが可能です。
さらに検索機能を補完・拡張する機能として、関連語辞書(同義語・類似語登録)、シソーラス、単語重み付け辞書(重要語・不要語の登録)などを使用することで、検索漏れのない、ノイズが少ない全文検索結果を手に入れることができます。
全文検索の技術方式と特徴
形態素解析方式 | N-gram方式 | QSハイブリッド 方式 |
|
---|---|---|---|
システム辞書 | 必要 | 不要 | 必要 |
インデックス 形式 |
単語転置ファイル: 単語インデックス |
N-gram転置ファイル: フルテキストインデックス |
単語転置ファイル+N-gram転置ファイル |
インデックス 生成方法 |
新たな検索語句を事前にシステム辞書に登録した後、追加ファイルだけでなく、既存のファイル全てに対してインデックスの再生成が必要 | 追加されたファイルの分だけ、インデックスを追加(差分更新) | 追加されたファイルの分だけ、インデックスを追加(差分更新) |
長所 | 検索結果にノイズが入りにくい | 任意の文字列を検索可能 検索漏れがない |
任意の文字列を検索可能 検索漏れがない 検索結果の上位にノイズが入りにくい インデックスの再生成が不要 |
短所 | 検索漏れが生じる 新語/造語が検索できない 辞書のメンテナンスが必要 インデックス再生成が必要 型番の部分一致に弱い →「イントラ」で検索して「イントラネット」がヒットしない |
検索結果にノイズが入りやすい →「京都」で検索して東京都がヒットする → 「スキー」で検索して「ウイスキー」がヒットする |
CPUやメモリの負荷が比較的高い |