目次


連載 IBM Notes/Domino の「検索」を使いたおす! 第 2 回「全文検索の仕組みと基本」

Comments

第 1 回は、IBM Notes/Domino が提供している検索機能の全体像について解説しました。(第 1 回「IBM Notes/Domino 検索の全体像を鬼わかりやすく解説」

第 2 回では、「全文検索の仕組みと基本」をテーマに、IBM Notes/Domino における全文検索機能の基本的なメカニズムならびに基本的な使用方法について鬼わかりやすく解説いたします。

1

全文検索の概要

全文検索(Full Text Search)とは、文書に含まれる全文(件名、本文、作成者および任意の入力欄)を対象とした複数文書を横断的に検索する機能です。Web の検索サイトと同様に、特定のキーワードを入力し検索を実行すると、そのキーワード含んだ 文書が検索され、さらにキーワードを追加するなどの絞り込みを行うことで目的となる文書を効率的に探す事が可能となります。IBM Notes/Domino の場合、製品バージョンに関わらず、全文検索機能を標準で利用することができます。(なんと、国内で最初に発売された R3J 以降のすべてのバージョンで対応しています。)

IBM Notes/Domino では下記が全文検索の対象となります。

  • すべての入力欄(フィールド)のテキスト情報
  • 入力欄に添付されているファイルの中身(*)

(*)全文検索では、dll、exe といった実行ファイル、gif、png、mp4、wav のような画像・動画ファイル、zip や tar 等の圧縮ファイル類に含まれる内容は索引の対象外となります。

全文検索の対象範囲は大きく以下の 2 点になります。

  1. 1つ(単体) または 複数の Notes アプリケーション(NSF) 内
  2. 複数の Domino サーバー上に配置されている Notes アプリケーション (NSF) をまたいでの検索

今回は、1 つ(単体)の Notes アプリケーション(NSF) 内の全文検索について解説します。

2

全文検索でできること (ユーザー編)

前提として、全文検索は対象となる Notes アプリケーション上に「索引」が作成済みである必要があります。この前提事項の詳細は続く 4 章でご説明致します。索引が存在しなくても Notes アプリケーションから文書を検索することは可能ですが、パフォーマンスや精度が大きく劣ります。

この索引が Notes アプリケーション上に作成されている場合、高度な全文検索機能を活用できます。Notes アプリケーションから文書を検索する際、以下のような違いが出てきます。

図 1. データベース内の文書検索画面:検索バー(索引が作成されていない場合)

 

図 2. データベース内の文書検索画面:検索バー(索引が作成されている場合)

 

違いがお分かりいただけたでしょうか。

索引が作成されている場合、索引済みの緑色アイコンになり、様々な検索のオプション機能を利用するためのメニューボタンが表示され、フィルタリングをかけたり、表示結果をソートしたりすることが出来るようになります。また全文検索を使うと、絞り込み検索、添付ファイルを含んだ検索を素早く行い、目的の文書を見つけることができます。以下が特にユーザーが得られるメリットです。

  • 索引が存在しない場合と比べて検索スピードが格段と速くなる
  • 文書の添付ファイルを含む検索が可能になる(オプションを有効にした場合)
  • 様々な絞込み条件を使用できる
    • 日付
    • 作成者
    • フィールド etc.
  • 語尾変化(cat→cats)やあいまいな言葉(スペルの類似)に対応できる
  • 検索結果の文書に、該当するキーワード部分がハイライト表示され、検索ワードがどこに使用されているか即座に判断できる。
図 3. 添付ファイルの中身を含む検索

 

図 4. フィールドを指定して絞り込んだ検索

 

図 5. 語尾変化に対応した検索

 

また、IBM Notes 9.0 では検索バーで利用できる検索クエリの構文として Web 形式の構文がデフォルト設定へと変更になっており、Web サイト上で検索する際と同様にスペース区切りで複数のキーワードを AND でつなぐ検索クエリが利用できるようになりました。以前の IBM Notes 形式が慣れている場合には、図 6. 「検索バーのクエリー構文の設定」の該当項目にチェックを入れて下さい。

Web 形式の構文の場合、「単語 A 単語 B 単語 C」で検索すると、これらが含まれる文書が返されますが、表示順は順不同です。すべてが含まれる結果がほしい場合は“”(ダブルクォーテーション)で囲んでください。

図 6. 検索バーのクエリー構文の設定

 

アプリケーションの全文検索を使用すると、目的の文書を素早く見つけることができます。それでは、続きの章では全文検索の仕組みについてご紹介します。

3

全文検索の仕組み

次に、全文検索のメカニズムについてご説明します。

全文検索の構成要素としては下記があります。

  • Notes アプリケーション本体である NSF ファイル
  • 全文索引ファイル
  • Indexer と呼ばれる Update タスク、Updall タスク
  • 検索エンジン(GTR:Global Text Retrieval)

Notes アプリケーションで全文検索を有効にすると、図 7 のように、Notes アプリケーションと同じパスの中に全文索引の要素を含むフォルダ「XXXX.ft」が作成されます。そのフォルダ名は Notes アプリケーションのファイル名の拡張子が ft に変わったものとなります。たとえば、names.nsf の場合は「names.ft」という名前になります。その中には更にいくつかのサブフォルダーとファイルが存在しますが、検索される文書の各種メタ情報、文書 ID 情報、GTR の内部構造を含むその他の情報が格納されており、検索エンジンがそれらを利用します。

図 7. 全文索引フォルダの中身

 

正しい検索結果を得るためには、Notes アプリケーションに文書が追加、変更および削除された場合に適切なタイミングで索引を最新の状態に更新する必要があります。

そこで必要になるのが Update タスク、Updall タスクであり、これらは全文索引を更新します。両者の動作内容はほぼ同じですが、更新タイミングや動作オプションに相違があります。

更新タイミングはそれぞれ下記の表の通りです。

表 1. Indexer の更新タイミング
更新タイミングUpdate タスクUpdall タスク
毎日N/A午前 2 時に索引を更新(デフォルト)
スケジュールベースNotes.ini のパラメータで起動インターバルを指定可能(秒、ミリ秒)プログラム文書でタスク起動指定した時間に索引を更新(任意指定)
更新する Notes アプリケーションの指定が可能
毎時プロパティに「毎時」設定された Notes アプリケーションの索引を更新N/A
即時プロパティに「即時」設定された Notes アプリケーションの索引を更新N/A

また、どちらのタスクも全文索引に破損を検知すると、索引の再構築を行ってくれます。Notes アプリケーションに対して管理者や設計者の権限をもつユーザーが任意で再作成することも、時間を指定する運用も可能です。

(ローカル PC 上の Notes アプリケーションでも全文検索はできますが、IBM Domino サーバーとの相違は、Update、Updall タスクがないために手動で全文索引を更新しなければならない点です。)

これらのタスクには Notes.ini パラメータや Domino サーバーコマンドの引数が多く提供されており、きめ細かく更新をコントロールすることができます。必要に応じてヘルプで Indexer の関連項目を参照してください。

4

必要な設定 (サーバー管理者編)

1. 権限について

Notes アプリケーションを検索対象にするには、各アプリケーションの設計者 もしくは 管理者の権限が必要です。

Domino Administrator を操作できるサーバー管理者は、「フルアクセスアドミニストレーション」の権限を取得することで、サーバー内の全ての Notes アプリケーションの索引を管理することができます。

2. 設定の方法

アプリケーションの設計者以上の権限を持つ各ユーザーが、アプリケーションごとに索引を作成するには、「アプリケーションのプロパティ」で行います。

図 8. データベースのプロパティ

 

Domino Administrator では、ファイルタブで複数のファイルを選択することで、一括で索引の作成や管理が可能です。

図 9. Administrator ファイル画面

 

図 10. Administrator 全文索引管理画面

 

索引の各オプションの意味は、以下の通りです。

  • 添付ファイルを索引する
    添 付ファイルの索引を作成します。[簡易検索 (高速)] を選択すると、添付ファイルの ASCII テキストだけが対象となります。[詳細検索] を選択すると、添付ファイルのバイナリ全体が対象となります。[簡易検索 (高速)] を選択すると、[詳細検索] を選択した場合に比べて索引は早く作成されますが、索引の内容はあいまいになります。
  • 暗号フィールドを索引する
    暗号化フィールドの索引を作成します。

    このオプションを選択すると、システムのセキュリティが低下することがあります。

  • 文と段落の切れ目の索引
    単語の切れ目の他に文と段落の切れ目の索引を組み込むと、ユーザーはあいまい検索ができるようになります。
  • 大文字と小文字を区別する
    大文字、小文字を区別して検索できるようにします。このオプションを選択すると、「apple」と「Apple」のように、1 つの単語に対して 2 つの索引が作成されるため、索引サイズが約 15%大きくなります。

3. 必要なディスクサイズについて

索引に必要なディスクサイズは、データベースそのもののサイズではなく、索引を作成するデータのサイズと関連しています。サイズは小さくてもテキストが多いデータベースは、設計要素を多く含むサイズの大きなデータベースより、索引のサイズが大きくなる場合があります。

また、データベースサイズが大きい場合でも、全文検索の対象とならない動画や画像のファイルが多い場合にも、索引は大きくなりません。

とはいえ、事前に必要なディスクのサイズを見積もりたい場合には、以下のようなガイドをすることが多いです。

「全文索引のサイズは、添付ファイルを索引の対象外とする場合は Notes アプリケーションのファイルサイズの 30%、添付ファイルも対象とする場合は DB サイズの 100%が目安となります。」

現時点で索引が作成されているアプリケーションがある場合には、そのサイズを参照することで、類似のアプリケーションについて、おおよそのサイズの目安とすることができます。

各アプリケーションのサイズは、アプリケーションのプロパティでも個々に参照できますが、カタログデータベースの"DbBytesIndexed"フィールドにも格納されています。

各文書を開いて参照することも可能ですが、適当なビューに該当のフィールドを表示する列を追加することで、現在の索引サイズを一覧で確認することが可能となります。

図 11. カタログデータベース

 

また、全文索引は複製されないため、データベースのレプリカごとに全文検索を作成する必要があります。各サーバーに索引用のディスクスペースが必要となります。

レプリカの全文索引を作成するときに、元のデータベースに全文索引がある場合は、その索引オプションがレプリカに引き継がれます。

4. CPU、メモリのリソースに関して

大きなファイルが添付されたりすると、全文索引の作成更新負荷で CPU やメモリのリソースを消費し、サーバーの応答速度などパフォーマンスに影響を与える恐れがあります。

お客様要件にもよりますが、検索対象の添付ファイルサイズを制限する、特定の拡張子のファイルを検索対象から外す、全文索引の作成に利用するメモリ展開エリアを変更する、といった方法等によりパフォーマンスへの影響を少なくすることも可能です。特に全文検索が対応していないフォーマットのファイルが多く添付されている Notes アプリケーションの場合は、その拡張子のファイルは対象から外すことを強く推奨します。

これらの索引作成に関する項目に関しても、notes.ini のパラメータが用意されています。

5

おわりに

今回は IBM Notes/Domino における全文検索の基本とメカニズム、基本的な使用方法について解説しました。

次回(第 3 回)では、全文検索応用・実践編として、便利な検索テクニックや裏ワザ、演算子活用術、便利な検索用無償サンプルテンプレート紹介を含めた「あなたの知らない Notes/Domino 全文検索の世界」について鬼わかりやすく解説いたします。お楽しみに!


ダウンロード可能なリソース


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Lotus
ArticleID=1044391
ArticleTitle=連載 IBM Notes/Domino の「検索」を使いたおす! 第 2 回「全文検索の仕組みと基本」
publish-date=03302017