Hitachi

HiRDB 全文検索プラグイン HiRDB Text Search Plug-in Version 10


4.2.7 concept_with_score

〈この項の構成〉

(1) 機能

概念検索条件式に一致する文書を検索します。また,同時にスコア値の計算をします。

(2) 書式

concept_with_score(列指定,概念検索条件式)

(3) 入力

列指定

概念検索条件式(BLOB)(最大5メガバイト)

(4) 戻り値

常にTRUE

(5) 詳細

(6) SQL文の例

表「reports」のSGMLTEXT型の列「doc」の「概要」部分について,種文章と似た概念を持つ文書を検索する。その後,スコア順にソートし,スコア値,タイトルを格納する一覧表を作成する(文書の最上位構造は「文章」)。
EXEC SQL BEGIN DECLARE SECTION;
    struct {long len; char data[4096];} sql;
    SQL TYPE IS BLOB(1M) excond;
    char title[8];
    int  score;
EXEC SQL END DECLARE SECTION;
 
strcpy(sql.data, "SELECT score_concept(doc), title FROM reports
      WHERE concept_with_score(doc, ? AS BLOB(1M)) IS TRUE  ORDER BY 1 DESC"); 
sql.len = strlen(sql.data);
 
strcpy(excond.excond_data,
     "文章[概要{\"概念検索とは,検索条件として入力された文章と
内容(概念)\が似通った文書を検索する機能である。\"}]");
excond.excond_length = strlen(excond.excond_data);
EXEC SQL PREPARE sqlext FROM :sql;
EXEC SQL DECLARE excrs CURSOR FOR sqlext;
EXEC SQL OPEN excrs USING :excond;
while(1) {
  EXEC SQL FETCH excrs INTO :score, :title;
}
score_concept

(7) 注意事項

全文検索条件式には,複数の条件を"AND","OR"で指定できます。