<Insert Picture Here> Oracle Text 概 要 日 本 オラクル 株 式 会 社
検 索 機 能 ~ テキスト 検 索 と 部 分 一 致 検 索 の 違 い 部 分 一 致 検 索 パターン マッチング 全 角 半 角 大 文 字 小 文 字 の 区 別 あり CHAR/VARCHAR2 型 のみ 検 索 対 象 となる 部 分 一 致 検 索 SELECT * FROM doc WHERE text LIKE % 菅 直 人 % ; 文 書 2のみヒット テキスト 検 索 予 め 検 索 対 象 テキストから 作 成 しておいた テキスト 索 引 を 使 用 し 検 索 基 本 的 に 全 角 半 角 大 文 字 小 文 字 の 区 別 なし CHAR/VARCHAR2/CLOB/BLOB/BFILE 型 などが 検 索 対 象 となる テキスト 検 索 SELECT * FROM doc WHERE CONTAINS(text, 菅 直 人 ) > 0; 文 書 1, 2 共 にヒット 本 文 1: 菅 直 人 さんは 選 挙 で 2: 挨 拶 で 菅 直 人 さんは スペース / など 記 号 の 有 無 を 無 視 した 検 索 が 可 能 2
検 索 機 能 ~ スコア 表 示 ヒット 順 表 示 スコア ヒットした 文 書 がどの 程 度 検 索 語 句 を 含 んでいるかを 表 す 整 数 値 (0~100) 大 きい 値 ほど 条 件 に 近 い 結 果 の 比 較 などに 使 用 し 相 対 的 な 値 指 定 した 語 を 含 むテキストは 必 ず0より 大 きなスコアが 付 く CONTAINS 演 算 子 の 戻 り 値 で 表 示 CONTAINS(...) > 0 と 指 定 する スコア 表 示 SELECT title,score(1) FROM doc スコア 順 にソートして 結 果 表 示 WHERE CONTAINS( text, 'java', 1) > 0 スコアの 上 位 n 件 を 表 示 可 能 ORDER BY SCORE(1); ヒット 順 表 示 CONTAINS 演 算 子 の 戻 り 値 が "0より 大 " と 指 定 3
Oracle Text 使 用 手 順 ~ 一 連 の 流 れ 初 期 データ ロード 初 期 索 引 作 成 データ 追 加 更 新 削 除 テキスト 索 引 との 同 期 化 テキスト 索 引 のメンテナンス 環 境 作 成 初 期 データロード 初 期 索 引 作 成 索 引 メンテナンス データ 追 加 更 新 削 除 リアルタイム or バッチ で 行 うことが 可 能 索 引 の 同 期 化 (SYNC) 検 索 表 にデータが 追 加 され 新 しく 抽 出 されたトークンが トークン 表 の 末 尾 に 格 納 リアルタイム or バッチ で 行 うことが 可 能 テキスト 索 引 のメンテナンス(OPTIMIZE) フラグメンテーションを 解 消 し トーク ン 表 が 最 適 な 状 態 に 保 つ 最 適 化 処 理 or 索 引 の 再 作 成 で 行 うことが 可 能 4
Oracle Text 使 用 手 順 ~ 初 期 データロード 検 索 対 象 の 表 を 作 成 ( 表 名 :Master) ID Title Author Publisher Publish_ date Abstract 1 2 XXXXX 全 文 検 索 の 対 象 とする 列 Title 既 に 以 下 のものがインストールされているものとする Oracle Database OptionとしてOracle Textが 選 択 されインストール 済 み Oracle Textは データベースインストール 後 でも インストール 可 能 5
Oracle Text 使 用 手 順 ~ 初 期 索 引 作 成 1 1. 利 用 するユーザに 以 下 の 権 限 を 与 える - CTXAPP ロール SQL> CONNECT / AS SYSDBA SQL> GRANT CTXAPP TO <ユーザ 名 >; 2. プリファレンス( 全 文 検 索 対 象 のデータがどんなものかを 示 す 指 定 ) を 作 成 SQL> CONNECT <ユーザ 名 >/<パスワード> SQL> BEGIN 2 CTX_DDL.CREATE_PREFERENCE('<プリファレンス 名 >', 3 'JAPANESE_VGRAM_LEXER'); 4 END; 5 / これで データが 日 本 語 です という 指 定 になる 今 回 の 場 合 は 以 下 の 項 目 を 入 力 <プリファレンス 名 >: 任 意 6
Oracle Text 使 用 手 順 ~ 初 期 索 引 作 成 2 3. 全 文 検 索 用 の 索 引 を 作 成 - これによって 本 で 表 すと 巻 末 の 索 引 を 作 成 します 全 文 検 索 は この 索 引 を 使 用 して 検 索 が 行 われます SQL> CREATE INDEX < 索 引 名 > ON < 表 名 >(< 列 名 :>) 2 INDEXTYPE IS CTXSYS.CONTEXT 3 PARAMETERS ('LEXER <プリファレンス 名 > '); 索 引 が 作 成 されました 今 回 の 場 合 は 以 下 の 項 目 を 入 力 < 表 名 >:Master, < 列 名 >: 書 籍 著 者 名 <プリファレンス 名 >:2.と 同 じ 名 前 4. 全 文 検 索 が 実 行 可 能 SQL> SELECT < 列 名 > FROM < 表 名 > 2 WHERE CONTAINS (< 列 名 >,'< 検 索 文 字 列 >')>0; 7
索 引 メンテナンス ~ サンプルデータ 検 索 対 象 表 (Master)に 対 し Oracle Text 使 用 手 順 と 同 様 の 方 法 で 全 文 検 索 用 の 索 引 を 作 成 検 索 対 象 表 ( 表 名 :Master) ID Title 1 2 ORACLEデー タベース 管 理 簡 単 ORACLE チューニング トークン 表 トークン 出 現 位 置 ORACLE (1,1), (2,2) データ (1,2) タベ (1,3) ベース (1,4) 管 理 (1,5) 簡 単 (2,1) チューニ (2,3) ニング (2,4) (1,1)は (ID, トークン 位 置 ) 8
追 加 索 引 メンテナンス ~ 新 規 文 書 情 報 の 追 加 テキスト 索 引 の 同 期 化 リアルタイムでも 可 能 だが 24 時 間 365 日 の 運 用 を 行 わない 限 り バッチ 処 理 で 行 う 方 がより 効 果 的 トークン 表 検 索 対 象 表 ( 表 名 :Master) ID Title 1 2 3 ORACLEデータ ベース 管 理 簡 単 ORACLEチ ューニング ORACLE バックアップ 新 たに 追 加 されたトークン が 索 引 の 末 尾 に 追 加 EXEC CTX_DDL.SYNC_INDEX( <インデックス 名 > ); トークン 出 現 位 置 ORACLE (1,1), (2,2) データ (1,2) タベ (1,3) ベース (1,4) 管 理 (1,5) 簡 単 (2,1) チューニ (2,3) ニング (2,4) ORACLE (3,1) バック (3,2) クア (3,3) アップ (3,4) 9
索 引 メンテナンス ~ 新 規 文 書 情 報 の 追 加 テキスト 索 引 のメンテナンス トークン 表 トークン 出 現 位 置 ORACLE (1,1), (2,2) データ (1,2) タベ (1,3) ベース (1,4) 管 理 (1,5) 簡 単 (2,1) チューニ (2,3) ニング (2,4) ORACLE (3,1) バック (3,2) クア (3,3) アップ (3,4) テキスト 索 引 に 複 数 エントリ されている 同 一 トークン をまとめる トークン 表 トークン 出 現 位 置 ORACLE (1,1), (2,2), (3,1) データ (1,2) タベ (1,3) ベース (1,4) 管 理 (1,5) 簡 単 (2,1) チューニ (2,3) ニング (2,4) バック (3,2) クア (3,3) アップ (3,4) EXEC CTX_DDL.OPTIMIZE_INDEX(<インデックス 名 >, FAST ); 10
索 引 メンテナンス ~ 文 書 情 報 の 削 除 テキスト 索 引 の 同 期 化 追 加 検 索 対 象 表 ( 表 名 :Master) ID Title 1 2 3 ORACLEデータ ベース 管 理 簡 単 ORACLEチ ューニング ORACLE バックアップ 検 索 対 象 表 への 削 除 処 理 を Oracle Text は 即 座 に 検 知 し て 検 索 結 果 に 反 映 させる 文 書 情 報 の 削 除 は リアルタイムに 検 索 結 果 に 反 映 されるため コマンドの 実 行 は 不 要 トークン 表 トークン 出 現 位 置 ORACLE (1,1), (2,2), (3,1) データ (1,2) タベ (1,3) ベース (1,4) 管 理 (1,5) 簡 単 (2,1) 削 除 済 チューニ (2,3) 削 除 済 ニング (2,4) 削 除 済 バック (3,2) クア (3,3) アップ (3,4) 削 除 済 11
索 引 メンテナンス ~ 文 書 情 報 の 削 除 テキスト 索 引 のメンテナンス トークン 表 トークン 出 現 位 置 ORACLE (1,1), (2,2), (3,1) データ (1,2) タベ (1,3) ベース (1,4) 管 理 (1,5) 簡 単 (2,1) チューニ (2,3) ニング (2,4) バック (3,2) クア (3,3) アップ (3,4) 削 除 されて 既 に 検 索 対 象 表 に 存 在 していない トークンを 削 除 トークン 表 トークン 出 現 位 置 ORACLE (1,1), (3,1) データ (1,2) タベ (1,3) ベース (1,4) 管 理 (1,5) バック (3,2) クア (3,3) アップ (3,4) EXEC CTX_DDL.OPTIMIZE_INDEX(<インデック ス 名 >, FULL ); 12
参 考 情 報 製 品 マニュアル Oracle Text リファレンス http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/text.11 1/E05789-02/toc.htm Oracle Text アプリケーション 開 発 者 ガイド http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/text.11 1/E05788-02/toc.htm OTN(Oracle Technology Network) Oracle Text 製 品 情 報 http://www.oracle.com/technology/global/jp/products/text/index.html 13
以 上 の 事 項 は 弊 社 の 一 般 的 な 製 品 の 方 向 性 に 関 する 概 要 を 説 明 するものです また 情 報 提 供 を 唯 一 の 目 的 とするものであり いかなる 契 約 にも 組 み 込 むことは できません 以 下 の 事 項 は マテリアルやコード 機 能 を 提 供 することをコミットメン ト( 確 約 )するものではないため 購 買 決 定 を 行 う 際 の 判 断 材 料 になさらないで 下 さ い オラクル 製 品 に 関 して 記 載 されている 機 能 の 開 発 リリースおよび 時 期 につい ては 弊 社 の 裁 量 により 決 定 されます OracleとJavaは Oracle Corporation 及 びその 子 会 社 関 連 会 社 の 米 国 及 びその 他 の 国 における 登 録 商 標 です 文 中 の 社 名 商 品 名 等 は 各 社 の 商 標 または 登 録 商 標 である 場 合 があります 14