Top >RDBで実装するN-Gram全文検索

5. テスト・プログラム

 この方法の評価をするためにテスト・プログラムを作成しました。ダウンロードしてご利用になれます。

動作環境
  • OS : MS-Windows
  • DB : SQL Server 2008 R2 以降(Expressを含む)
実行方法

 ZIPファイルを解凍して GramlocTester.exe を起動してください。インストーラーはありません。

  • GramlocTester ver 1.0.0.0    download

 以降に、使用方法を説明いたします。

5.1. 準備

 以下のものを用意してください。

データベース

 SQL Server 2008 R2 以降を使用します。Expressでもかまいません。

 SQL Server 上に、テストで使用するデータベースを作成し、接続文字列が分かるようにしておいてください。

テキスト・データ

 検索対象となるテキスト・データを、テキスト・ファイルの形で用意してください。

 1本でも複数本でもかまいません。量が少ないと、同じ内容のレコードが多くなってしまいますので、ある程度の量を用意してください。

 『青空文庫』からダウンロードしたデータがご利用になれます。

5.2. データベース設定

 GramlocTester.exe を起動すると、以下のダイアログが開きます。

 

 データベース設定

  1. 『接続文字列(C):』に、接続文字列を入力してください。
  2. 『接続テスト(T)』を押して、接続の確認をしてください。

 次に、『テーブル作成』タブを選択してください。

 作成するテーブルは2種類で、検索対象のテキストを格納するデータ・テーブルと、全文検索に使用するインデックス・テーブルです。

 

 データベース設定

  1. 作成するテーブルをチェックしてください。
    データ・テーブルは必須です。インデックスは1つ以上を選択してください。
  2. 『作成(M)』ボタンを押すと、テーブルを作成します。

 テーブルは、Management Studio等で作成してもかまいません。

 以下の構造のテーブルを作成してください。使用するテーブル名、列名は、ダイアログの『テーブル』、『列』タブで設定できます。

データ・テーブル
列名 データ型
ID int
SENTENCE ntext
  • ID列は、「IDENTITYの指定」を「はい」に設定し、主キーにしてください。
インデックス・テーブル
列名 データ型
CHARCODE nchar(1),nchar(2),nchar(4),smallint,int,bigint
ID int
POSITION smallint
  • CHARCODE列のデータ型は、どれか1つを選択してください。
  • 3つの列を主キーに設定します。

5.3. データの挿入

 テーブルにテスト・データを挿入します。

 

 データの挿入

  1. 『ファイルの選択(F)』を押して、テキスト・ファイルを選択してください。
  2. 『目標データ数(T):』に、数値を入力してください。
  3. 『開始(S)』ボタンを押すと、データの挿入を開始します。

5.4. 検索

 指定した文字列を含むレコードを検索します。

 

 検索

  1. 検索する文字列を入力してください。
  2. 検索に使用するインデックスを選択してください。
    『LIKE』を選択するとインデックスを使用せずに、LIKE 演算子を使用して検索します。
  3. 『実行』ボタンを押してください。
  4. 検索に要した処理時間、ヒット件数が表示されます。

 

 以上のようにして、LIKE 演算子で検索した場合と、N-Gram インデックスを使用した場合との比較が出来ます。

PAPER BOWL
NEZEN