例: プレーン・テキストの N-gram および形態素方式の索引の作成

このタスクについて

以下の手順を使用して、 Db2® Text Search 索引をセットアップして同期し、SAMPLE データベースで形態素方式および N-gram の索引付けを行います。 言語的に意味のある中国語を検索します。

プロシージャー

  1. 形態素方式および N-gram の索引付けを行うために表を 2 つ作成します。
    表には、書名、著者、内容、ISBN 番号、および発行年の列があります。
    db2 "CREATE TABLE morphobooks (
    isbn VARCHAR(18) not null PRIMARY KEY, 
    bookname VARCHAR(30), 
    author VARCHAR(30), 
    story blob(1G), 
    year integer
    )" 
    
    db2 "CREATE TABLE ngrambooks (
    isbn VARCHAR(18) not null PRIMARY KEY, 
    bookname VARCHAR(30), 
    author VARCHAR(30), 
    story blob(1G), 
    year integer
    )" 
    
  2. CREATE INDEX コマンドを発行して、MORPHOBOOKS 表の ORY 列でテキスト検索索引を作成します。 テキスト検索索引の名前は MORPHOINDEX です。
    db2ts " CREATE INDEX db2ts.morphoindex FOR TEXT 
    ON morphobooks (story) LANGUAGE zh_TW 
    INDEX CONFIGURATION (CJKSEGMENTATION 'morphological') 
    CONNECT TO sample";
  3. CREATE INDEX コマンドを発行して、NGRAMBOOKS 表の ORY 列にテキスト検索索引を作成します。 テキスト検索索引の名前は NGRAMINDEX です。
    db2ts " CREATE INDEX db2ts.ngramindex FOR TEXT 
    ON ngrambooks (story) LANGUAGE zh_TW 
    INDEX CONFIGURATION (CJKSEGMENTATION 'ngram') 
    CONNECT TO sample";
  4. 2 つの表にデータをロードします。
    db2 "import from ./data/books.del of DEL lobs from ./data/ 
    replace into morphobooks";
    
    db2 "import from ./data/books.del of DEL lobs from ./data/ 
    replace into ngrambooks";
    
    books.del ファイルには以下の項目があります。
    "0-13-086755-4", "book1", "Julie", "books_zh_TW1.lob.0.449/", 2004
    Books_zh_TW1.lob ラージ・オブジェクトの内容は以下のとおりです。
    図 1. Books_zh_TW1.lob オブジェクトの内容
    Books_zh_TW1.lob オブジェクトの内容
  5. 以下のコマンドを発行して、対応する表からのデータとテキスト検索索引を同期します。
    db2ts "UPDATE INDEX db2ts.morphoindex FOR TEXT CONNECT TO sample"; 
    
    db2ts "UPDATE INDEX db2ts.ngramindex FOR TEXT CONNECT TO sample"; 
    
  6. 以上で、形態素方式セグメンテーションと N-gram セグメンテーションの両方で、 言語的に意味のある中国語の検索が正常に行われるようになります。
    図 2. 意味のある中国語の照会結果
    意味のある中国語の照会結果
    形態素方式セグメンテーションの結果は N-gram セグメンテーションと同じであることを、出力が示しています。
  7. 意味を持たない中国語を検索して、形態素方式セグメンテーションと N-gram セグメンテーションの違いを確認します。
    図 3. 意味を持たない中国語の照会結果
    意味を持たない中国語の照会結果
    N-gram セグメンテーションのみで書名が返されます。