デジタルサーチャー講座

検索を科学する
塩田 紳二

第3回

ウィンドウズの検索機能

今回は、ウィンドウズ XP に標準で組み込まれている検索機能「インデックスサービス」について解説する。これは、エクスプローラから検索を選んだときにも利用される機能で、あらかじめファイルに関してインデックスを作成しておくというもの。機能的には Google Desktop Search と同じだが、ファイルやディレクトリーに対してインデックス化の可不可の設定ができるなど、OS 組み込みならではメリットもある。

インデックスサービスとは？

うことで、さまざまなアプリケーションのことで イン デックスサ ービスを 使 ってファイル形式に対応できる。

PDF を対象とした検索を行うことが可能

ウィンドウズ XP に組み込まれている標準では、テキストファイル、Officeドになる。ただし、現在配布されているの「インデックスサービス」は、もともとは、キュメント、HTML、MIME（電子メールは、2004 年に Acrobat 6.0 用に作られたインデックスサーバーという名称のソフトのメッセージ形式）に対応しており、一部

IFilter v6.0 で 、対 応 する PDF の バ ーウェアで、ウィンドウズ NT 用の IIS（マイのアプリケーションは、自身のインストー

ジョンは 1.5 までのため、最新の Acrobat

クロソフトのウィンドウズ用ウェブサー

ル時に IFilter を組み込むものがあるほ7.0 で作成される PDF 1.6 には対応してバーソフト）から全文検索を行うためのか、ウェブサイトなどで IFilter を配布していない。

サーバー用ソフトウェアとして 1996 年にいるところもある。

このインデックスサービスは、エクスプ登場した。その後、ウィンドウズ NT 4.0

たとえば、アドビは、PDF 用の IFilter

ローラの検索機能が利用しているほか、のオプションパックにインデックスサーの配布を行っている※ 1。これを組み込む

ウィンドウズを使ったウェブサーバーでバー 2.0 が搭載され、ウィンドウズ 2000 からは、インデックスサービスとなって OS
標 準 の モジュールとなった 。た だし 、

NTFS
ファイルの変更通知（Change Journal）

バージョン番号は、以前のものを引き継ぎ Ver.3.0 のままだった。
Catalog（Index Data）

ウィンドウズ XP に搭載されているインIndex情報
内容読み出しデックスサービスも同じくVer.3.0 だが、ウィンドウズ 2000 のものに対して、オーIndexing

Querying

ディオやビデオなどのメディアファイルが持つプロパティー にも対応するように問い合わせ

結果文章ファイルなっている。
設定値

インデックスサービスは、ファイルを対検索アプリケーション象とした全文検索型の検索エンジンであ

設定値
レジストリーり、IFilter と呼ばれるコンポーネントを使
図194 │ INTERNET magazine │ 2005 │ 08 │インデックスサービスは、インデックス作成を行う Indexing 部と、検索を行う Query 部から構成されている。Indexing 部で Catalog を作成し、Query 部ではこれを使って検索を行う。
インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D

は、標準的な全文検索システムとして利などを、ロケール（地域／言語設定）に応イズが大きすぎてメモリーなどに置くこ用されている。検索ページの拡張子がじて単語に分解し、さらにノイズワードをとができないため、これを圧縮して記録

asp や aspx になっているサイトは大概、排除する。
「ノイズワード」とは、数が多く、するインデックスを作成する。これには、インデックスサーバーを利用している。

検索対象を絞ることができない単語のこ

Shadow と Master の 2 つがあり、Wordとだ。英語なら冠詞や前置詞などで、日List は、一定量を超えた段階でいったん本語ならば「が」や「を」といった助詞な

Shadow Index に マ ージされ る 。そ のどが相当する。単語への分解やノイズ後、1 日に 1 回（レジストリーの設定によワードの定義は、ロケール単位で行われる）、Shadow Index と Master Index がている。

マージされることになる（図 4）。

インデックスサービスの構成

こうしてできた Word List はカタログ2 段階でマージを行うのは、マージ作

インデックスサービスは、大きく、文書に登録され、検索時に検索語から対象業が比較的負荷の高い作業であることをスキャンし、インデックスファイル（カタファイルを見つけるために利用される。と、作業中も検索を可能にするためと思ログ）を作成する Indexing 部と、外部かなお、カタログは標準では各ボリューム

わ れ る 。Shadow Index の 段 階 よりもらの問い合わせに応じてカタログを検索にある「¥System Volume Information」

Master Index のほうが、圧縮率が高く、する Querying 部に分かれている（図 1）。

内にあり、通常はファイルとして見ることよりコンパクトな状態となっている。

インデックスサービスとはいうが、もともはできない。とインデックスサーバーといっていたよう

この Word List のままでは、データサに単純なサービス（ウィンドウズで GUI を持たずにバックグラウンドで動作するプログラム。Unix 系でいうデーモン）ではなく、さまざまなモジュールの集合体で1 ログに変更ファイルを登録

NTFS
変更通知ある。

FileSystem

前者をインデックスサービスの実体で2 ログ読み出し

ファイルアクセスある cisvc.exe が行い、後者は、いくつか

Catalog（Index Data）

定期的なスキャン3 変更のあったファイルのIndexing

インデックス化処理の DLL が API を実装し、サーチエンジンを制御する。
Indexing 部は、NTFS 上では、NTFSが持つジャーナル機能を使って、ファイル

図2

Indexing 部は、NTFS からのファイル変更の通知または、ファイルシステムの定期的なスキャンにより変更、追加されたファイルやディレクトリーを検出。これをいったん log として Catalog に登録する。その後、log を元にインデックスの更新を行う。の作成や削除、変更を検出する（ただし初めて Indexing（インデックス化）が行われる場合には全てのファイルのスキャンを行う）。FAT 上などでは、定期的なス

DistributedDocuments

キャンによりこうしたファイルを検出する

Changed Document

Content andLocale Definitions

Indexing
Component

IFilter
Component

Filtering
Component（図 2）。

File Name

Catalog

対象となるファイルは、デフォルトまたは組み込まれた IFilter を使い、テキスト

Change Logなどが抽出される（図 3）。インデックス

Property
Cache

サービスでは、単にファイル内のテキスト

FilterDocuments

IPropertyStrage

FilterDocument
Type

Locale-Specific

Language
Resources

IFilter

TextValues

Break Words

Break Words
for Locale

Words

Master Index

だけでなく、ファイルの更新日時やタイト

RemoveNoise Words

Shadow
Indexes

ルなどのメタデータもインデックス化の対Word List

象となる。

Words

Noise Words

Noise Word
List forLocale

このフィルターメカニズムが生成するのは、Word List と呼ばれる単語のリストだ。これは、IFilter が抽出したテキスト

図3

Indexing 部は、変更、追加されたファイルを IFilter を使ってテキストに分解する。その後、これを単語に分解し、Noise Word を取り除いた後、Word List として Catalog に登録する。

インターネットマガジン／株式会社インプレスR&D

デジタルサーチャー講座
検索を科学する │ INTERNET magazine │ 2005 │ 08 │ 95
©1994-2007 Impress
R&D

IFilter
この Indexing の中核となるのは、IFil-

えば、文書名などのメタデータであり、各文書が持つプロパティについては、HTML タグのアトリビュートなどが対応カタログ内にキャッシュとしてプロパティする。

値を保存する。このようにすることで、文ter と呼ばれる DLL モジュールである。

このチャンクに対して、さらにテキスト

これは、ファイルからテキストなどを取りや値（プロパティーのとき）の取得を行わ出す際に、ファイルタイプに応じて呼びだせる。

される。

書にアクセスせずとも、プロパティ値を得ることができる。
また、この IFilter は、インデックスサーチャンクからテキストが取り出されるとバ ー だ け で なく、SharePoint Portal

インターネットを検索するとさまざまなその後の処理は、インデックスサービス

Server、Exchange、SQL Server などもIFilter が公開されている。とりあえず側で行われる。インデックスサービスで利用する。

Google などで「IFilter」と検索してみるとは、言語情報（これもプロパティーとしてある意味、ウィンドウズで、固有のデーいいだろう。MP3 や JPEG といったファIFilter 経由で取得する）を利用して、テタ形式を持つファイルを検索する場合のイル用の IFilter が見つかるはずだ。

キストを Word に分割する。インデックス標準的なフィルターといってもいい。

IFilter に関しては、「Desktop Search

サービスでは、これを Word Breaker と※2

IFilters」 などに情報がある。

よんでいる。

IFilter は、ファイルをチャンク単位に分つまり、IFilter は最低限、ファイルから割する。各チャンクは、テキストかプロパテキスト分解してテキストを抽出できれティのどちらか（あるいは IFilter 固有

ば、あとの処理は、インデックスサービスデータ）になる。プロパティーとは、たと側で行ってくれるわけだ。

検索インターフェイス
インデックスサービスは、SQL または専用の問い合わせ言語で検索条件を指Catalog定する。検索条件を受け取ったら、これを前処理し、その後、Catalog を使って対Master Index
Master Merge
一日一回（レジストリーで指定）
またはユーザー指示により開始

Shadow Indexes

ンデックス化が行われているため、検索処理はこのインデックス内から条件を満Shadow Indexes

たすエントリーを探し、対応するファイル

Shadow Merge

一定サイズを超えるとShadow Indexesへマージ開始

象となるファイルを見つける。すでにイ（のパス）を得るという処理になる（図 5）。

Word Lists

WordIndexing部

ファイルの更新日時などのプロパティー情報は、事前に Catalog に Property

図 4 Word List は、一定サイズを超えた段階で圧縮処理が行われ、Shadow Index として Catalog に登録される。その後、1 日に 1 回といった頻度（レジストリーで指定）で、Shadow Index は、より圧縮度のキャッシュとして登録されているため、検高い Master Index にマージされる。Word List、Shadow Indexes、Master Index ともに検索時には索ごとにファイルにアクセスする必要はインデックス情報として利用される。このような構成になっているのは圧縮処理に時間がかかり、その間ない。

も検索を実行できるようにするためである。

インデックスサービスは、アプリケーション側のインターフェイスとして以下のものを持っている。

検索条件

検索条件前処理

Query Language
またはSQL
検索
アプリケーション・ISAPI（IIS からの呼び出し）
Catalog

検索結果
ファイルリスト

検索処理

Property Cache
Master Index
Shadow Indexes
Word Lists

・OLE DB Helper/Provider（OLE DB）
・ ActiveX Data Object（ 埋め込みオブジェクト）・ Query/Admin Helper（ OLE オートメション）

図5

Query 部は、外部アプリケーションから API 経由で検索条件を受け付ける。その後、その検索条件を前処理（オプティマイズ）してから検索を行う。

96 │ INTERNET magazine │ 2005 │ 08 │インデックスサービスは、インデックス

インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D

サーバーとして登場したときに、IIS と組み合わせて使うため、ISAPI（ InternetServer

Applications

Programming

Interface）と、C++、Visual Basic などの言語からの呼び出し、HTML 内のスクリプトからの呼び出し（埋め込みオブ

図6ジェクト）などに対応していた。その後、デックスサービスの起動や Master Index へのマージなどを指示できる。

ウィンドウズ XP にあるインデックスサービスの管理ツール（管理コンソール）。ここからインアプリケーションからデータベースとしてアクセスできるようにしたり、インデックても、候補をかなり絞ることが可能だ。

このインデックスサービスをベースにしたスサービス自体の制御を行うインターフェイス（OLE DB Helper、Admin Helper）「Longhorn」）に搭載される検索機能は、ウィンドウズ内での検索ものになるという。
標準状態では、GDS ほど対象ファイルを持つことになった。
これらの API では、インデックスサー

このインデックスサービスは、エクスプが多くないのが欠点だが、英語版が提供バー専用の問い合わせ言語（Indexing

ローラの「検索」機能、標準では、犬が出されている「MSN Search Toolber withService Query Language）
もしくは SQLてくるあの検索機能で利用されている。

Windows Desktop Search」で は 、200を利用する。これは API により検索条件

ただし、そのためには、インデックスサー種類以上のファイル形式に対応している。

を指定する言語が違っているということ

ビスを有効にし、対象となるファイルに対年内には、日本語にも対応するとのことである。SQL だけに統一できないのは、してインデックス化を許可するフラグを設

なので、これが登場すれば、もう少し使HTML 経由などの問い合わせの際に、定しておく必要がある。

いやすいものになるだろう。

検索条件を指定し、それを直接インデッ

この検索機能は、インデックスサービス前述したが、インデックスサービスでクスサービスが解釈するからである。

がオフであっても、その場で対象ファイルは、メタデータ（プロパティー）を取り扱う

ウェブサイトなどで、検索機能に ANDの検索を行うようになっており、インデッことができ、検索パスを制限することもや OR のついた検索があるが、このようクスサービスを止めていても時間はかか可能である。このため、ローカルディスクな条件検索を直接実行できるようにしたるものの検索機能は利用できる。

上のすべてを検索結果としてしまう GDSのがインデックスだった。このため、簡易もう 1 つあるユーザーインターフェイスな検索言語が定義されており、これを入は、管理コンソール（図 6）で、これは次力として ASP ファイル内で、検索対象なのプログラムを実行する。

たとえば、自身で作成した文書を特定のフォルダー以下に入れていて、その他のディレクトリーに検索の対象にもするどを指定して簡単にサイト内の全文検索ができるようになっていた。このときの検よりも使いやすい場合がある。

C:¥WINDOWS¥system32¥ciadv.msc

が、インターネットなどからダウンロードした PDF ファイルが大量にある場合な索言語が一部のインターフェイスで利用
ここでは、インデックスサービスの起動

ど、GDS では、検索結果が大量すぎて、標準状態だと IFilter がほとんどインスなどに加え、カタログのクリアや前述のなかなか目的のファイルが見つけにくいこトールされていない状態なので、実際のMaster Merge などを強制的に行わせるとがある。
（GDS のプラグインソフトGoogle

ところ、インデックスサービスにはあまりことが可能だ。

Desktop Extreme などである程度は対できる。

利点がない。しかし、利用頻度の高い

現時点では、ユーザーが利用できるイ

ファイルを対象とする IFilter を入手でき

ンデックスサービスのユーザーインターれば、検索はエクスプローラから直接行フェイスはこの程度だが、IIS 上で ASPドキュメントなども整備されていて、アえるため、場合によっては、本連載の第（ Active Server Pages）を 使 って 検 索

プリケーション側でファイル検索機能を実

1 回で解説した Google Desktop Search

フォームを作成することはできる。

装しなくとも、インデックスサービスを呼びgins.html 参照）出すだけで検索機能を付加できる。

（以下、GDS）よりも便利なことがある。
一番の違いは、ファイルの日付や拡張子、応可能。http://desktop.google.com/plu-

次世代ウィンドウズでも利用

こうしたメリットがありながら、いままであまり活用されてこなかったのは、IFilter

ディレクトリーなどを指定して検索が可能なことだ。こうした条件設定により、キー

マイクロソフトが発表したデスクトップの提供など、マイクロソフト自身があまり手ワード自体では絞りきれない検索であっサーチや、次世代ウィンドウズ（コード名間を掛けてなかったのが理由だろう。

インターネットマガジン／株式会社インプレスR&D

デジタルサーチャー講座
検索を科学する │ INTERNET magazine │ 2005 │ 08 │ 97
©1994-2007 Impress
R&D［インターネットマガジン バックナンバーアーカイブ］ ご利用上の注意
この PDF ファイルは、株式会社インプレス R&D（株式会社インプレスから分割）が 1994 年～2006 年まで発行した月刊誌『インターネットマガジン』の誌面を PDF 化し、「インターネットマガジン バックナンバーアーカイブ」として以下のウェブサイト「All-in-One INTERNET magazine 2.0」で公開しているものです。

http://i.impressRD.jp/bn
このファイルをご利用いただくにあたり、下記の注意事項を必ずお読みください。
z 記載されている内容（技術解説、URL、団体・企業名、商品名、価格、プレゼント募集、アンケートなど）は発行当時のものです。
z 収録されている内容は著作権法上の保護を受けています。著作権はそれぞれの記事の著作者（執筆者、写真の撮影者、イラストの作成者、編集部など）が保持しています。
z 著作者から許諾が得られなかった著作物は収録されていない場合があります。
z このファイルやその内容を改変したり、商用を目的として再利用することはできません。あくまで個人や企業の非商用利用での閲覧、複製、送信に限られます。
z 収録されている内容を何らかの媒体に引用としてご利用する際は、出典として媒体名および月号、該当ページ番号、発行元（株式会社インプレス R&D）、コピーライトなどの情報をご明記ください。
z オリジナルの雑誌の発行時点では、株式会社インプレス R&D（当時は株式会社インプレス）と著作権者は内容が正確なものであるように最大限に努めましたが、すべての情報が完全に正確であることは保証できません。このファイルの内容に起因する直接的および間接的な損害に対して、一切の責任を負いません。お客様個人の責任においてご利用ください。

このファイルに関するお問い合わせ先
All-in-One INTERNET magazine 編集部
im-info@impress.co.jp
Copyright © 1994-2007 Impress R&D, an Impress Group company. All rights reserved.