インデクサの役割とは、その後の様々な処理を容易にし、高度な検索処理を可能にするための作業を行うことです。インデクサはデータに中間処理を施し、プログラムの処理速度を高め、データベース量を節約します。

中間処理を行い高度な検索処理を助けるインデクサ

インデクサは、クローラーが巡回・収集したWebページのドキュメントをインデックスに格納する役割を持っています。インデグサはこのとき、検索アルゴリズムが扱いやすいデータ形式にドキュメントを変換します。あらかじめ中間処理をしておくことで、生のドキュメントを扱うのに比べその後の様々な処理を容易にし、高度な処理を可能にします。

インデクサは、様々なプログラムを用いて、ドキュメントに対して次のような解析作業を行います。

  • ページ解析やリンク解析を行い、検索アルゴリズムがスコアリング時に使用しやすいよう、それらの状態を指標化します。
  • ページ解析を行って、HTMLソース内の検索に必要の無い(スクリプト記述部分など)部分を明かにします。
  • 形態素解析などによって、文章を単語に切り分け、ページ内の個々の単語が、文書内のどの位置に存在するのか、その位置情報を明かにします。

ドキュメントのデータ化と、インデックスへの格納

インデクサは、ドキュメントの解析の結果をもとにして、情報ブロック(単語・HTML要素など)ごとに、その位置や性質・重要性をデータ化します。そして、データをファイルとしてまとめ、インデックスに格納します。

このときインデクサは、データを中間コード化した「転置ファイル」のかたちでインデックスに格納します。データを中間コード化しておくことで、プログラムの処理速度を高め、データベース量を節約することができます。

処理を容易にする中間ファイル「転置ファイル」

転置ファイルとは、Webページのドキュメント内に含まれる情報ブロック(単語・HTML要素など)ごとに、それらの位置と性質を、中間コードで記録したものです。インデックスの中身を全て中間コードで構成することができ、プログラムの処理速度を高め、データベース量を節約することができます。

転置ファイルは、文書ファイル・転置リスト・辞書ファイルの3つの構造から成っています。

文書ファイル
形態素解析などで単語に切り分けられたドキュメントに対して、その切り分けた文字列ごとにユニークな識別コードを施したファイルです。
転置リスト
「文書ファイル」に施した識別コードをドキュメント内の記述順に並べた上で、個々の文字列に対応する、システム全体で決められている単語の識別コードを並記したリストです。単語の識別コードだけでなく、HTML要素の種類やそのWebページのリンクポピュラリティの値など、あらゆる属性を与える場合があります。
辞書ファイル
検索アルゴリズムで扱う単語ごとに、該当する「転置リスト」の所在と、その中での位置情報・性質(HTML要素の種類やリンクポピュラリティの値など)をコード化してまとめたものです。

検索を行う際には、まず、「辞書ファイル」の内容から該当する語句が含まれるページを探します。次に、「転置リスト」内の情報を手がかりに個々の単語を拾い出すとともにスコアプロセシングを行い、「文書ファイル」を組み立てなおして結果を表示します。

データベースによっては、「転置リスト」を「転置ファイル」として考え、「文書ファイル」や「辞書ファイル」は別のものとして考える場合もあります。