intra-mart WebPlatform/AppFramework



Similar documents
IM-ContentsSearch

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

<4D F736F F D20819C486F70658F6F93588ED297708AC7979D89E696CA837D836A B E A2E646F63>

01_07_01 データのインポート_エクスポート_1

購買ポータルサイトyOASIS簡易説明書 b

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

TIPS - 棚 割 りを 開 始 するまで Liteを 起 動 し 企 業 情 報 の 追 加 を 行 い 棚 割 を 行 う 企 業 の 追 加 をして 下 さい 企 業 情 報 の 追 加 時 に エラーメッセージが 表 示 された 場 合 別 途 TIPS トラブルが 発 生 した 場 合

1 書 誌 作 成 機 能 (NACSIS-CAT)の 軽 量 化 合 理 化 電 子 情 報 資 源 への 適 切 な 対 応 のための 資 源 ( 人 的 資 源,システム 資 源, 経 費 を 含 む) の 確 保 のために, 書 誌 作 成 と 書 誌 管 理 作 業 の 軽 量 化 を 図

POWER EGG V2.01 ユーザーズマニュアル ファイル管理編

(Microsoft PowerPoint - Ver12\203o\201[\203W\203\207\203\223\203A\203b\203v\216\221\227\277.ppt)

治 験 実 施 管 理 システム NMGCP 向 け Excel 形 式 プロトコール 作 成 手 順 書 V4.0.3 対 応 版 第 1 版 株 式 会 社 富 士 通 アドバンストエンジニアリング All Rights Reserved,Copyright 株 式 会 社 富 士 通 アドバン

CENTNET 導 入 の 手 引 き 変 更 履 歴 No. 変 更 日 変 更 番 号 変 更 枚 数 備 考 /07/ 版 発 行 - システムリプレースにより 全 面 刷 新 //07/ 版 発 行 3 誤 字 等 の 修 正 /

■コンテンツ

目 次 1. 大 学 情 報 データベースシステムの 使 用 方 法 について EXCEL 一 括 登 録 EXCEL ダウンロード 検 索 条 件 の 指 定 プレビュー EXCEL ダウンロード(データ 抽 出 あ

R4財務対応障害一覧

目 次 1. Web メールのご 利 用 について Web メール 画 面 のフロー 図 Web メールへのアクセス ログイン 画 面 ログイン 後 (メール 一 覧 画 面 ) 画 面 共 通 項 目

< 目 次 > 8. 雇 用 保 険 高 年 齢 雇 用 継 続 給 付 27 ( 育 児 休 業 給 付 介 護 休 業 給 付 ) 8.1 高 年 齢 雇 用 継 続 給 付 画 面 のマイナンバー 設 定 高 年 齢 雇 用 継 続 給 付 の 電 子 申 請 高

Microsoft Word - サンプル _データベースアクセス_.doc

目 次 遺 失 物 管 理 プログラム 利 用 者 マニュアル 1. 動 作 条 件 遺 失 物 管 理 プログラムのインストール 運 用 の 流 れ 起 動 方 法 操 作 方 法 について 基 本 的 な 操

スライド 1

IM-ContentsSearch

1

V-CUBE One

DN6(R04).vin

目 次 1.はじめに 書 式 の 説 明 表 紙 スケジュール 組 入 れ 基 準 併 用 禁 止 薬 併 用 注 意 薬 同 種 同 効 薬 医 師 モニタリング..

■コンテンツ

Microsoft Word - 第3章.doc

接続試験実施要領【障害者総合支援法(平成27年4月報酬改定)対応】

4 応 募 者 向 けメニュー 画 面 が 表 示 されます 応 募 者 向 けメニュー 画 面 で [ 交 付 内 定 時 の 手 続 を 行 う] [ 交 付 決 定 後 の 手 続 を 行 う]をクリックします 10

入 札 参 加 資 格 申 請 システム 操 作 マニュアル 入 札 参 加 資 格 の 資 格 有 効 ( 変 更 ) 日 を 迎 えると 追 加 届 の 登 録 ができるようになります ( 入 札 参 加 資 格 申 請 の 定 時 受 付 では いずれかの 申 請 先 団 体 から 入 札 参

工事記録写真チェックシステム 操作説明書

Sol-007 内部統制一元管理 _ppt [互換モード]

目 次 1. 積 算 内 訳 書 に 関 する 留 意 事 項 1 ページ 2. 積 算 内 訳 書 のダウンロード 3 ページ 3. 積 算 内 訳 書 の 作 成 (Excel 2003の 場 合 ) 6 ページ 4. 積 算 内 訳 書 の 作 成 (Excel 2007の 場 合 ) 13

<4D F736F F D C97F195CF8AB DEC90E096BE8F912091E6312E313294C52E646F63>

改 定 履 歴 改 訂 日 改 訂 理 由 及 び 内 容 承 認 者 確 認 者 改 訂 者 05/8/7 新 版 発 行 05/0/5 推 奨 動 作 環 境 を 追 記

■デザイン

機 能 概 要 概 要 平 成 24 年 度 シームレスな 地 域 連 携 医 療 の 実 現 実 証 事 業 に 対 応 するため 地 域 連 携 システム( 能 登 北 部 版 )を 構 築 する 機 能 < 機 能 追 加 変 更 一 覧 > 1. 画 像 連 携 機 能 院 内 で 撮 影

2 課 題 管 理 ( 科 学 研 究 費 補 助 金 ) 画 面 が 表 示 されます 補 助 事 業 期 間 終 了 後 欄 の[ 入 力 ] をクリックします [ 入 力 ]ボタンが 表 示 されていない 場 合 には 所 属 する 研 究 機 関 の 事 務 局 等 へお 問 い 合 わせく

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

U/Cサーバ 業務システム間転送プログラムインターフェース仕様書

Microsoft PowerPoint _リビジョンアップ案内_最終.pptx

ez_meishi.ppt


Office 10 パッケージ版「リンク集」

( 別 紙 ) 以 下 法 とあるのは 改 正 法 第 5 条 の 規 定 による 改 正 後 の 健 康 保 険 法 を 指 す ( 施 行 期 日 は 平 成 28 年 4 月 1 日 ) 1. 標 準 報 酬 月 額 の 等 級 区 分 の 追 加 について 問 1 法 改 正 により 追 加

CSI情報管理システム

EC-OrangePOS 簡易マニュアル

XML形式の電子報告書作成に当たっての留意事項

事前チェック提出用現況報告書作成ツール入力マニュアル(法人用)

<4D F736F F D AC90D1955D92E CC82CC895E DD8C D2816A2E646F63>

研究者情報データベース

WebMail ユーザーズガイド

マスタの 登 録 処 理 月 の 登 録 勤 怠 管 理 対 象 となる 処 理 月 を 設 定 します 1つのエクセルのファイル(ブック)で1ヵ 月 分 の 勤 怠 管 理 ができます 初 めてご 使 用 になる 場 合! 本 エクセルを 初 めてご 使 用 になる 場 合 は 処 理 月 を 設

施 工 P お 気 に 入 り データを 活 用 するための 準 備 施 工 パッケージデータをお 気 に 入 りに 登 録 し 単 価 を 閲 覧 するための 方 法 を 説 明 します 1. 施 工 パッケージデータをダウンロードする 施 工 パッケージデータのダウンロードは 下 記 から 行

文科省様式3-2集計オプションマニュアル

MetaMoJi ClassRoom/ゼミナール 授業実施ガイド

電子申告直前研修会(所得税編)

前 書 き 広 域 機 関 システム System for Organization for Cross-regional Coordination of Transmission Operators(OCCTO) rev: 商 標 類 Windows Office Excel

決 算 時 の 流 れ-1 1 年 間 の 仕 訳 入 力 が 終 了 したら 以 下 の 手 順 で 決 算 書 を 作 成 します Step1 精 算 表 を 印 刷 する 1.[F2 入 力 ]タブより 合 計 表 を 選 択 し 月 度 の 指 定 で 期 首 ~12ヶ 月 目 を 指 定

< 現 在 の 我 が 国 D&O 保 険 の 基 本 的 な 設 計 (イメージ)> < 一 般 的 な 補 償 の 範 囲 の 概 要 > 請 求 の 形 態 会 社 の 役 員 会 社 による 請 求 に 対 する 損 免 責 事 由 の 場 合 に 害 賠 償 請 求 は 補 償 されず(

医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート - 目 次 - < 第 1 章 > 共 通 事 項 説 明 医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート 目 次 1.1 本 システムの 注 意 点 入 力 項 目 について 基 本 情

5-2 一 般 ユーザー 用 :メール 2 送 信 者 のリンクをクリックすると 受 信 メールの 内 容 を 見 ることができます 受 信 メール 内 容 画 面 項 目 送 信 者 宛 先 CC 本 文 (テキスト) 本 文 (HTML) メールアドレスのリンクをクリックするとアドレス 帳 へ

以 下 に 手 順 の 流 れを 記 載 します 3ページ 以 降 で 各 項 目 の 手 順 を 説 明 します ( をクリックすると 該 当 ページにジャンプします ) また 4ページに 汎 用 データ 受 入 に 関 するよくあるお 問 い 合 わせをご 紹 介 しています Step (3ペー

続 に 基 づく 一 般 競 争 ( 指 名 競 争 ) 参 加 資 格 の 再 認 定 を 受 けていること ) c) 会 社 更 生 法 に 基 づき 更 生 手 続 開 始 の 申 立 てがなされている 者 又 は 民 事 再 生 法 に 基 づき 再 生 手 続 開 始 の 申 立 てがなさ

SXF 仕 様 実 装 規 約 版 ( 幾 何 検 定 編 ) 新 旧 対 照 表 2013/3/26 文 言 変 更 p.12(1. 基 本 事 項 ) (5)SXF 入 出 力 バージョン Ver.2 形 式 と Ver.3.0 形 式 および Ver.3.1 形 式 の 入 出 力 機 能 を

2 研 究 資 源 共 通 化 統 合 検 索 システムソフトウェア 利 用 者 用 マニュアル(ゲートウェイシステム) 目 次 1. はじめに 主 な 利 用 の 流 れ 検 索 検 索 画 面 検 索 画 面 の 設 定...

操 作 の 手 順 : 個 人 住 民 税 一 括 納 付 / 新 規 依 頼 修 正 複 写 個 人 住 民 税 一 括 納 付 メニュー 個 人 住 民 税 一 括 納 付 新 規 依 頼 修 正 複 写 依 頼 / 委 託 者 情 報 入 力 (P100) 依 頼 修 正 / 委 託 者 情

<4D F736F F D208CA990CF96BE8DD78F918EAE82CC95CF8D >

12_02_02 帳票設定5

- INDEX - 1 ご 利 用 時 間 1 2 メニュー 1 3 ご 利 用 になる 前 に 行 っていただきたいこと 3 (1) 所 在 地 沿 線 設 定 3 (2) 会 員 情 報 の 管 理 ( 自 社 情 報 の 設 定 ) 5 4 物 件 情 報 の 登 録 8 (1) 操 作 概

参加表明書・企画提案書様式

■ディレクトリ

PowerPoint プレゼンテーション

1.2. ご 利 用 環 境 推 奨 ブラウザ Internet Explorer Google Chrome(バージョン 32 時 点 で 動 作 確 認 済 み) Mozilla Firefox(バージョン 26 時 点 で 動 作 確 認 済 み) Safari 7

研究者総覧システム

1-1 一覧画面からの印刷

2 科 学 研 究 費 助 成 事 業 のトップページ 画 面 が 表 示 されます [ 研 究 者 ログイン]をクリック します 掲 載 している 画 面 は 例 示 です 随 時 変 更 されます 3 科 研 費 電 子 申 請 システムの 応 募 者 ログイン 画 面 が 表 示 されます e

<4D F736F F D2090BF8B818AC7979D8B40945C91808DEC837D836A B2E646F63>

以 下 に 手 順 の 流 れを 記 載 します 3ページ 以 降 で 各 項 目 の 手 順 を 説 明 します ( をクリックすると 該 当 ページにジャンプします ) また 15ページに 汎 用 データ 受 入 に 関 する よくあるお 問 い 合 わせをご 紹 介 しています Step1 (

WEBメールシステム 操作手順書

<4D F736F F D2090C389AA8CA72D92F18F6F2D D F ED28CFC82AF91808DEC837D836A B E838B A815B816A2E646F6378>

スライド 1

H28記入説明書(納付金・調整金)8

(4) 給 与 制 度 の 総 合 的 見 直 しの 実 施 状 況 について 概 要 国 の 給 与 制 度 の 総 合 的 見 直 しにおいては 俸 給 表 の 水 準 の 平 均 2の 引 下 げ 及 び 地 域 手 当 の 支 給 割 合 の 見 直 し 等 に 取 り 組 むとされている.

学校教育法等の一部を改正する法律の施行に伴う文部科学省関係省令の整備に関する省令等について(通知)

4. 発 注 者 コード 及 び 成 績 評 定 8 (Q4-1) 該 当 の 発 注 者 コードが 付 与 されていないので 追 加 してください... 8 (Q4-2) 発 注 者 コードが 不 正 確 空 白 のものがあり 点 数 を 入 力 できません 成 績 評 定 の 入 力 ができませ

Ver.30 改 版 履 歴 版 数 日 付 内 容 担 当 V /09/5 初 版 発 行 STS V /0/8 証 明 書 バックアップ 作 成 とインストール 手 順 追 加 STS V /0/7 文 言 と 画 面 修 正 STS V..30 0//6

「給与・年金の方」からの確定申告書作成編

<4D F736F F D2091E F18CB48D C481698E7B90DD8F9590AC89DB816A2E646F63>

一般競争入札について

03_主要処理画面.xlsx

経 理 上 くん db(version 8.001)の 変 更 点 概 要 Ⅰ. 消 費 税 /リバースチャージ 方 式 の 申 告 に 対 応 1 特 定 課 税 仕 入 特 定 課 税 仕 入 返 還 区 分 を 追 加 しました Ⅱ.その 他 の 改 良 修 正 詳 細 は 後 述 を 参 照

0 目 次 1. 畑 のあしあとの 使 い 方 P.3 2.オプション P.6 3.モバイルデバイスより 履 歴 取 得 P.8 4. 基 本 情 報 管 理 P 栽 培 計 画 P.22 6.ドキュメント 出 力 P 栽 培 履 歴 管 理 P.28 8.モバイルでの 栽

<4D F736F F F696E74202D C90BF8F CC8DEC90AC97E181698A4F8D E8816A5F56322E707074>

別冊資料-11

スライド 1

【 新 車 】 新聞・チラシ広告における規約遵守状況調査結果

1

Transcription:

intra-mart WebPlatform/AppFramework Ver.7.1 IM-ContentsSearch プログラミングガイド 2009/11/30 第 2 版

<< 変 更 履 歴 >> 変 更 年 月 日 変 更 内 容 2009/05/01 初 版 2009/11/30 第 2 版 3.2.4 文 書 種 別 の 階 層 化 に 動 的 文 書 種 別 の 説 明 を 追 加

目 次 << 目 次 >> 1 概 要...1 1.1 はじめに...1 1.2 前 提 条 件...1 1.3 本 資 料 の 記 載 内 容 について...1 2 API 概 要...2 2.1 Solrスキーマ...2 2.1.1 Solrスキーマを 独 自 に 作 成 する 場 合 の 制 限 事 項...3 3 業 務 文 書 の 追 加...4 3.1 イントラマート 標 準 Solrスキーマ 定 義...4 3.1.1 フィールド 詳 細...5 3.2 業 務 文 書 の 追 加 手 順...6 3.2.1 クローラの 作 成...7 3.2.2 業 務 テンプレートの 作 成...10 3.2.3 文 書 種 別 情 報 の 定 義...13 3.2.4 文 書 種 別 の 階 層 化...15 4 検 索 機 能...19 4.1.1 文 書 の 検 索...19 4.1.2 検 索 条 件...20 5 削 除 機 能...25 5.1.1 文 書 の 削 除...25 5.1.2 削 除 処 理 後 の 後 処 理...25 6 API 使 用 上 の 注 意 点...26 6.1 全 般 的 な 注 意 事 項...26 6.2 文 書 の 登 録 に 関 する 注 意 事 項...26 6.2.1 テキストを 抽 出 することができるファイルフォーマット...26 6.2.2 テキストを 抽 出 する 際 の 制 限 事 項...26 7 サンプルプログラム...30 作 成 者 : 株 式 会 社 NTT データ イントラマート Page i

1 概 要 1 概 要 1.1 はじめに 本 ドキュメントでは イントラマート 上 から 全 文 検 索 エンジン Solr( 以 下 Solr サーバと 略 します)に 文 書 の 登 録 また は 検 索 を 行 うためのクライアント API( 以 下 IM-ContentsSearch クライアントと 略 します)を 利 用 したモジュールの 開 発 方 法 について 解 説 します 概 要 は 以 下 の 通 りです API 概 要 IM-ContentsSearch クライアントについての 概 要 を 説 明 します この 章 を 読 んだ 上 で 以 降 の 必 要 な 章 をお 読 みになることをお 勧 めします 業 務 文 書 の 追 加 業 務 アプリケーションデータを Solr サーバに 登 録 する 方 法 について 説 明 します 検 索 機 能 IM-ContentsSearch クライアントの 検 索 機 能 の 詳 細 を 記 載 しています 削 除 機 能 IM-ContentsSearch クライアントの 削 除 機 能 の 詳 細 を 記 載 しています 使 用 上 の 注 意 点 API を 使 用 する 上 での 注 意 事 項 制 限 事 項 について 説 明 します API の 詳 細 については API リストも 併 せてご 参 照 ください JavaEE 開 発 モデル アプリケーション 共 通 モジュール API IM-ContentsSearch クライアント API 弊 社 ホームページ 製 品 最 新 情 報 ダウンロードページ(http://www.intra-mart.jp/download/product/index.html) より ダウンロードが 可 能 です 1.2 前 提 条 件 本 書 は Solr プロダクトの 解 説 を 目 的 とするものではありません Solr プロダクトについての 詳 しい 情 報 は Apache Software Foundation の Web サイトでご 確 認 ください http://lucene.apache.org/solr/ また Solr Wiki では Solr に 関 する 様 々な 資 料 が 掲 載 されていますのでご 活 用 ください http://wiki.apache.org/solr/ 1.3 本 資 料 の 記 載 内 容 について 本 資 料 では API 使 用 事 例 として 実 際 のソースコードを 掲 載 しています 本 文 の 説 明 中 に 記 載 しているソースコードは 編 集 の 都 合 上 実 際 のソースコードと 一 部 異 なる 場 合 がありますの で あらかじめご 了 承 ください 尚 本 資 料 に 記 載 されている 内 容 については 今 後 のバージョン(リビジョン パッチ 含 む)における 機 能 追 加 仕 様 変 更 に 伴 い 予 告 なく 変 更 する 場 合 があります 詳 細 については 弊 社 ホームページ 製 品 最 新 情 報 ダウンロードページをご 参 考 ください 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 1

intra-mart IM-ContentsSearch プログラミングガイド 2 API 概 要 IM-ContentsSearch クライアントは javaee 開 発 モデルで 使 用 することが 可 能 なイントラマートと Solr サーバと 連 携 を 行 うための API です Solr サーバに 文 書 を 登 録 または 検 索 削 除 するための 機 能 を 提 供 します ( ここでいう 文 書 とはドキュメントを 意 味 するものではなく 登 録 データ 全 般 を 指 します ) この API を 利 用 することで HTTP で 通 信 していることを 意 識 せずに Solr サーバとの 通 信 を 行 うことが 出 来 イン トラマートの 権 限 と 登 録 文 書 のアクセス 権 限 の 連 携 を 簡 単 に 実 現 することができます この API では 使 用 用 途 に 合 わせて 以 下 の 二 つのマネージャクラスが 用 意 されています jp.co.nttdata.intra_mart.solr.solrmanager jp.co.nttdata.intra_mart.solr.intramartsolrmanager 図 2.1 Solr マネージャ クラス 図 SolrManager は イントラマート 上 から 実 行 が 可 能 な 登 録 検 索 削 除 機 能 を 提 供 します IntramartSolrManger は イントラマート 上 から 実 行 が 可 能 な イントラマート 標 準 Solr スキーマに 特 化 したより 簡 素 化 されたインターフェースを 持 つ 登 録 検 索 削 除 機 能 を 提 供 します 上 記 クラス 図 で 示 したように IntramartSolrManger は SolrManager のサブクラスですので API の 使 用 方 法 に 大 きな 違 いはありません 2.1 Solrスキーマ Solr スキーマとは Solr サーバに 作 成 するインデックスの 構 造 (データ 型 やフィールドなど) 定 義 です 一 つの Solr サーバに 対 し 一 つの Solr スキーマを 定 義 することで 異 なる 業 務 間 を 横 断 的 に 検 索 することが 可 能 となります イントラマートでは 汎 用 的 に 使 用 が 可 能 な 標 準 の Solr スキーマを 提 供 していますので 基 本 的 には Solr スキ ーマの 設 計 を 行 う 必 要 はありません イントラマート 標 準 スキーマを 使 用 した 場 合 は 標 準 で 提 供 しているクローラ 全 文 検 索 画 面 を 使 用 することがで きます このスキーマを 利 用 している 場 合 には IM-ContentsSearch クライアントの 主 に IntramartSolrManager クラスを 使 用 して 実 装 を 行 います イントラマート 標 準 Solr スキーマを 使 用 せずに 独 自 に 業 務 要 件 に 特 化 した Solr スキーマを 設 計 し 使 用 する ことも 可 能 です 但 し 独 自 の Solr スキーマを 使 用 する 場 合 には イントラマートが 標 準 で 提 供 するクローラ 全 文 検 索 画 面 は 使 用 することができないため 独 自 に 作 成 する 必 要 があります 独 自 のSolrスキーマを 利 用 する 場 合 には IM-ContentsSearch クライアントの SolrManager クラスを 使 用 して 実 装 を 行 います Page 2 Copyright 2000-2009 株 式 会 社 NTT データ イントラマート All rights Reserved.

2 API 概 要 2.1.1 Solrスキーマを 独 自 に 作 成 する 場 合 の 制 限 事 項 1. Solr スキーマを 設 計 する 場 合 には Solr プロダクトの 仕 様 をよくご 理 解 した 上 で 行 ってください 2. 作 成 する Solr スキーマには イントラマートとの 権 限 連 携 に 必 要 な 以 下 のフィールドは 必 ず 定 義 してく ださい フィールドの 必 須 項 目 sids_allowed この 文 書 の 閲 覧 を 許 可 する 権 限 です 設 定 可 能 な 権 限 の 種 類 は 以 下 の 通 りです ユーザ ロール 組 織 +(ロールまたは 役 職 ) パブリックグループ + (ロール) ALL ユーザ sids_denied この 文 書 の 閲 覧 を 許 可 しない 権 限 です 設 定 可 能 な 権 限 は 上 記 と 同 じです schema.xml の 記 述 例 <field name="sids_allowed" type="string" indexed="true" stored="true" multivalued="true" /> <field name="sids_denied" type="string" indexed="true" stored="true" multivalued="true"/> 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 3

intra-mart IM-ContentsSearch プログラミングガイド 3 業 務 文 書 の 追 加 この 章 では 業 務 アプリケーションデータを Solr サーバに 文 書 として 登 録 する 方 法 手 順 について 詳 しく 解 説 しま す この 章 での 解 説 は イントラマート 標 準 の Solr スキーマを 使 用 し かつ 標 準 の 全 文 検 索 画 面 を 使 用 している とい う 前 提 で 説 明 を 行 っています 上 記 前 提 に 当 てはまらない 場 合 には 関 連 項 目 のみご 参 照 ください はじめに イントラマート 標 準 Solr スキーマの 構 造 について 説 明 します 3.1 イントラマート 標 準 Solrスキーマ 定 義 イントラマートの 標 準 Solr スキーマは 以 下 のような 構 造 になっています Solr スキーマの 構 造 は Solr サーバ 内 の 設 定 ファイル schema.xml に 定 義 されています 項 番 フィールド 名 タイプ 必 須 索 引 化 データ 格 納 マルチ(*) 概 要 スタティックフィールド 1 id string 文 書 を 一 意 に 識 別 する ID 2 type string 文 書 種 別 ID 3 url string 詳 細 画 面 URL 4 id_original string 詳 細 画 面 を 表 示 するために 必 要 なパ ラメータ 5 title string タイトル 6 text_ngram text_ngram N-gram 用 テキストデータ 7 text_morph text_morph 形 態 素 解 析 用 テキストデータ 8 sids_allowed string 閲 覧 可 能 権 限 9 sids_denied string 閲 覧 不 可 権 限 10 record_date string 登 録 日 ダイナミックフィールド 11 *_string string 文 書 タイプ 固 有 の 文 字 列 データ 12 *_integer integer の 整 数 データ 13 *_long long の 長 整 数 データ 14 *_date date の 日 付 型 データ 15 *_string_mlt string_mlt マルチバリューの 文 書 タイプ 固 有 の 文 字 列 データ 16 *_integer_mlt integer の 整 数 データ 17 *_long_mlt long の 長 整 数 データ 18 *_date_mlt date の 日 付 型 データ マルチバリューフィールド 一 つのフィールドに 複 数 のデータを 格 納 することが 可 能 なフィールド Page 4 Copyright 2000-2009 株 式 会 社 NTT データ イントラマート All rights Reserved.

3 業 務 文 書 の 追 加 3.1.1 フィールド 詳 細 スタティックフィールド 文 書 種 別 共 通 の 固 定 のフィールドです 1. id 文 書 を 一 意 にするための ID です 文 書 種 別 間 で id が 重 複 するのを 防 ぐため 文 書 種 別 などをプレフィックスに 付 ける ことを 推 奨 します ( 例 )bpw_2_0000000001_00000002 2. type この 文 書 の 種 別 です アプリケーション 単 位 またはアプリケーション 内 の 機 能 単 位 等 で 種 別 を 設 定 しま す 階 層 構 造 を 持 つ 文 書 種 別 の 場 合 は 親 の 文 書 種 別 を 含 む 全 ての 文 書 種 別 を 登 録 します ( 例 )bpw 文 書 種 別 の 階 層 化 ついては 3.2.4 文 書 種 別 の 階 層 化 をご 参 照 ください 3. url 標 準 の 検 索 結 果 画 面 で タイトルリンクをクリックした 際 に 表 示 するコンテンツ 画 面 のURLです コンテンツ 画 面 が javaee 開 発 モデルの 場 合 [アプリケーション ID]-[サービス ID].service ( 例 )bpw-detail_info_frame_call.service コンテンツ 画 面 がスクリプト 開 発 モデルの 場 合 [Resource Service]からのパス ( 例 )sample/solr/sample.jssp 4. id_original 標 準 の 検 索 結 果 画 面 で タイトルリンクをクリックした 際 に 表 示 するコンテンツ 画 面 を 表 示 する 為 に 必 要 なパラメータ 群 です フォーマット:key=value の 半 角 スペース 区 切 り ( 例 )process_def_cd=2 version_cd=0000000001 process_cd=00000002 5. title 文 書 のタイトルです 6. text_ngram 文 字 列 の 解 析 方 法 が N-gram 用 のテキストデータです API では 文 書 登 録 時 に 解 析 方 法 に N-gram を 使 用 する 設 定 の 場 合 にのみテキ ストデータをこのフィールドに 格 納 します 標 準 の 検 索 画 面 からの 検 索 対 象 フィールドです 7. text_morph 文 字 列 の 解 析 方 法 が 形 態 素 解 析 用 のテキストデータです API では 文 書 登 録 時 に 解 析 方 法 に 形 態 素 解 析 を 使 用 する 設 定 の 場 合 にのみ テキストデータをこのフィールドに 格 納 します 標 準 の 検 索 画 面 からの 検 索 対 象 フィールドです 8. sids_allowed この 文 書 の 閲 覧 を 許 可 する 権 限 です 設 定 可 能 な 権 限 の 種 類 は 以 下 の 通 りです ユーザ ロール 組 織 +(ロールまたは 役 職 ) パブリックグループ+(ロール) ALL ユーザ 9. sids_denied この 文 書 の 閲 覧 を 許 可 しない 権 限 です 設 定 可 能 な 設 定 内 容 は 項 番 8 と 同 じです 10. record_date 文 書 の 登 録 した 日 時 ( 文 字 列 型 )です フォーマット:yyyy/MM/dd hh:mm:ss 形 式 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 5

intra-mart IM-ContentsSearch プログラミングガイド ダイナミックフィールド 文 書 種 別 固 有 のデータを 登 録 するための 動 的 に 設 定 が 可 能 なフィールドです 11. *_string 各 フィールドのアンダーバーの 後 の 文 字 列 はデータ 型 を 表 します 12. *_integer このフィールドにデータを 設 定 する 場 合 は フィールド 名 に 該 当 のデータ 型 をサフィ 13. *_long ックスとして 付 けます 14. *_date ( 例 ) 業 務 データに 文 字 型 の プロセス 定 義 名 を 格 納 するためのフィールドを 追 加 する 場 合 フィールド 名 process_def_name_string 15. *_string_mlt 上 記 フィールドのマルチバリューフィールド 版 です 16. *_integer_mlt 一 つのフィールドに 複 数 の 値 を 設 定 することが 可 能 です 17. *_long_mlt 18. *_date_mlt Solrの 標 準 で 扱 うことの 出 来 るデータ 型 は 上 記 以 外 にもあり 任 意 で 追 加 が 可 能 です 必 要 に 応 じてダイナミックフィールドに 該 当 のデータ 型 用 フィールドを 追 加 してください 使 用 可 能 なデータ 型 については Solr プロダクトのページをご 参 照 ください 3.2 業 務 文 書 の 追 加 手 順 Solr サーバに 業 務 アプリケーションデータを 文 書 として 登 録 するには 専 用 のクローラを 作 成 する 必 要 がありま す 標 準 の 全 文 検 索 画 面 を 使 用 する 場 合 には さらに 検 索 結 果 表 示 の 為 の 業 務 テンプレート 対 象 コンテンツ 画 面 の 作 成 と 設 定 ファイルへの 文 書 種 別 の 定 義 が 必 要 です 図 3.2.1 文 書 登 録 のイメージ Page 6 Copyright 2000-2009 株 式 会 社 NTT データ イントラマート All rights Reserved.

3 業 務 文 書 の 追 加 図 3.2.2 検 索 結 果 表 示 イメージ 3.2.1 クローラの 作 成 業 務 アプリケーションデータを 抽 出 して Solr サーバに 文 書 として 登 録 するクローラを 作 成 します 標 準 で 用 意 されているワークフロー 用 のクローラはバッチ 処 理 ですが 必 ずしもバッチである 必 要 はありませんの で 業 務 アプリケーションの 仕 様 に 合 わせて 実 行 モジュールを 作 成 してください また ワークフロークローラ 仕 様 書 には ワークフロークローラの 動 作 仕 様 について 詳 しく 解 説 してありますので クローラを 作 成 する 上 でのご 参 考 にしてください クローラでは 主 に 以 下 の 処 理 を 行 います 1 登 録 対 象 の 業 務 アプリケーションデータを 取 得 2 文 書 の 登 録 3 全 文 書 の 登 録 後 の 後 処 理 3.2.1.1 業 務 データの 取 得 業 務 アプリケーションの 仕 様 に 合 わせて 登 録 対 象 となるデータを 取 得 します 取 得 が 必 要 な 情 報 業 務 データ 権 限 情 報 文 書 に 対 して 参 照 可 能 あるいは 参 照 不 可 とする 権 限 添 付 ファイル 情 報 ( 文 書 に 添 付 ファイルがある 場 合 ) Storage Service からのパスとファイル 名 3.2.1.2 文 書 の 登 録 3.2.1.2.1 取 得 データの 設 定 3.2.1.1 で 取 得 したデータを 以 下 のクラスのオブジェクトに 設 定 します jp.co.nttdata.intra_mart.solr.domain.intramartsolrinputdocument スタティックフィールドへの 値 の 設 定 上 記 クラスには 各 スタティックフィールドの setter が 用 意 されているので 該 当 メソッドにてフィールド 値 を 設 定 します テキストフィールドに 値 を 設 定 する 際 は API 側 で 解 析 方 法 に 何 を 使 用 しているのかを 判 断 し 適 切 な テキストフィールドに 値 を 設 定 する 動 作 となっているため 解 析 方 法 について 意 識 する 必 要 はありません 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 7

intra-mart IM-ContentsSearch プログラミングガイド 以 下 にサンプルコードを 示 します IntramartSolrInputDocument inputdoc = new IntramartSolrInputDocument(); // スタティックフィールド // proc に 業 務 データが 設 定 されているものとします // id inputdoc.setdocumentid( bpw_2_0000000001_00000002 ); // id_original inputdoc.setoriginaldocumentid( process_def_cd=2 version_cd=0000000001 process_cd=00000002 ); // url inputdoc.seturl("bpw-detail_info_frame_call.service"); // type inputdoc.settype("bpw"); // title inputdoc.settitle(procinfo.getprocessname()); // テキスト inputdoc.addtext(procinfo.getprocessdefname()); inputdoc.addtext(procinfo.getprocessname()); ダイナミックフィールドへの 値 の 設 定 addfield メソッドを 使 用 します 第 一 引 数 にフィールド 名 ( 形 式 : 名 称 _データ 型 ) 第 二 引 数 にフィールド 値 を 設 定 します 以 下 にサンプルコードを 示 します // ダイナミックフィールド // proc に 業 務 データが 設 定 されているものとします // プロセス 定 義 名 inputdoc.addfield("process_def_name_string", proc.getprocessdefname()); // プロセスコード inputdoc.addfield("process_cd_string", proc.getprocesscd()); // 起 票 日 inputdoc.addfield("draft_date_string", proc.getdraftdate()); // 起 票 者 CD inputdoc.addfield("draft_user_cd_string", proc.getdraftusercd()); 権 限 情 報 の 設 定 addaccesscontrolentry メソッドを 使 用 します 引 数 には 設 定 する 権 限 の 種 別 に 合 わせた AccessControlEntry インターフェースの 実 装 クラスを 指 定 しま す 権 限 種 別 実 装 クラス 備 考 jp.co.nttdata.intra_mart.solr.domain ユーザ UserAccessControlEntry ロール RoleAccessControlEntry API 内 部 では 該 当 ロールの 上 位 レベルのロールを 取 得 して 合 わせて 登 録 します 組 織 DepartmentAccessControlEntry 絞 込 み 条 件 に ロール 役 職 の 指 定 が 可 絞 込 み 条 件 があった 場 合 は API 内 部 で 該 当 権 限 保 持 ユーザを 取 得 し ユーザ 権 限 として 登 録 されます 1 パブリック グループ PublicGroupAccessControlEntry 絞 込 み 条 件 に ロール の 指 定 が 可 絞 込 み 条 件 があった 場 合 は API 内 部 で 該 当 権 限 保 持 ユーザを 取 得 し ユーザ 権 限 として 登 録 されます 1 ALL ユーザ EveryoneAccessControlEntry 全 てのユーザに 閲 覧 権 限 を 付 与 する 場 合 に 設 定 しま す Page 8 Copyright 2000-2009 株 式 会 社 NTT データ イントラマート All rights Reserved.

3 業 務 文 書 の 追 加 1 該 当 権 限 保 持 ユーザを 取 得 する 際 に 使 用 する 検 索 基 準 日 に 関 しては 後 述 の 3.2.5 権 限 連 携 における 検 索 基 準 日 をご 参 照 ください 以 下 にサンプルコードを 示 します // 1.ユーザ inputdoc.addaccesscontrolentry(new UserAccessControlEntry(userCd)); // 2.ロール inputdoc.addaccesscontrolentry(new RoleAccessControlEntry(roleId)); // 3. 組 織 AccessControlEntry d_entry = new DepartmentAccessControlEntry(companyCd, departmentcd); // 絞 込 みがある 場 合 [ロール] d_entry.setroleid(roleid); // 絞 込 みある 場 合 [ 役 職 ] // d_entry.setpostid(postid); inputdoc.addaccesscontrolentry(d_entry): // 4.パブリックグループ PublicGroupAccessControlEntry p_entry = new PublicGroupAccessControlEntry (publicgroupsetid, publicgroupid); // 絞 込 みがある 場 合 [ロール] p_entry.setroleid(roleid); inputdoc.addaccesscontrolentry(p_entry): // 5.ALLユーザ inputdoc.addaccesscontrolentry(new EveryoneAccessControlEntry()): 添 付 ファイル 情 報 の 設 定 addintramartattachment メソッドを 使 用 します 第 一 引 数 に Storage Service からのパス 第 二 引 数 にファイル 名 を 指 定 します この 場 合 添 付 ファイルのフォーマットは ファイル 名 の 拡 張 子 から 自 動 判 別 されます 第 三 引 数 に MIME タイプを 指 定 することで 添 付 ファイルのフォーマットを 明 示 的 に 指 定 することもできます // 添 付 ファイルを 追 加 する inputdoc.addintramartattachment(filepath, filename); 3.2.1.2.2 登 録 処 理 はじめに IntramartSolrManager のインスタンスを 取 得 します 取 得 メソッドには 以 下 の 二 つがあります getinstance(string user, String group, Date date) getinstance(string user, String group) 第 一 引 数 : 任 意 の 文 字 列 を 設 定 します 第 二 引 数 : ログイングループ ID を 設 定 します 第 三 引 数 : 権 限 に 関 する 期 間 化 を 伴 った 情 報 ( 該 当 権 限 保 持 ユーザの 取 得 など)を 取 得 する 際 の 検 索 基 準 日 を 設 定 します 省 略 した 場 合 はシステム 日 付 が 設 定 されます 次 に IntramartSolrManager の addintramartdocument メソッドを 使 用 して 登 録 処 理 を 行 います 第 一 引 数 に IntramartSolrInputDocument オブジェクト 第 二 引 数 に 登 録 情 報 を 即 時 反 映 するかどうかを 指 定 しま す 一 般 的 なパフォーマンスの 観 点 から 特 別 な 事 情 がない 限 りは 全 ての 文 書 の 登 録 が 終 わった 時 点 で 一 括 でコミ ットすることをお 勧 めします 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 9

intra-mart IM-ContentsSearch プログラミングガイド 以 下 にサンプルコードを 示 します try { IntramartSolrManager solrmng = IntramartSolrManager.getInstance("bpwProcessCrawler", logingroupid); solrmng.addintramartdocument(inputdoc, false); } catch (Exception e) { // エラー 時 の 処 理 } 3.2.1.3 全 文 書 登 録 後 の 後 処 理 全 ての 文 書 の 登 録 が 終 わったら 最 後 に 文 書 の 追 加 処 理 のコミットとインデックスの 最 適 化 処 理 を 行 います コミット 文 書 単 位 で コミット 処 理 を 行 っていない 場 合 (addintramartdocument の 第 二 引 数 に false を 設 定 した 場 合 )は 登 録 した 内 容 を 最 後 に 一 括 コミットします 通 常 は インデックスに 追 加 した 文 書 は コミットするまで 検 索 結 果 に 現 れません 但 しコミットを 行 っていなくても Solr サーバで 何 れかのタイミングに 登 録 データのフラッシュが 行 われた 場 合 は 検 索 結 果 に 反 映 される 動 作 となります インデックスの 最 適 化 インデックスの 最 適 化 を 実 行 することで 検 索 速 度 が 向 上 する 可 能 性 があります また 削 除 した 文 書 の 占 めていたインデックス 内 の 領 域 が 解 放 されます 但 し 最 適 化 は 大 変 に 時 間 のかかる 処 理 で 実 行 中 は 検 索 や 文 書 登 録 が 行 えません その 為 頻 繁 に 実 行 するのはお 勧 めしません 以 下 にサンプルコードを 示 します try { // 登 録 内 容 をコミット solrmng.commit(); // インデックスの 最 適 化 solrmng.optimize(); } catch (SearchException e) { // エラー 時 の 処 理 } 参 考 ) ロールバック 処 理 について 現 行 バージョンの Solr 1.3 では ロールバック 処 理 はサポートされていないため 一 度 登 録 した 内 容 をロールバ ックすることはできません どうしても 登 録 した 内 容 を 取 り 消 したい 場 合 には 文 書 の 削 除 処 理 を 行 ってください 削 除 処 理 については 後 述 の 5. 削 除 処 理 をご 参 照 ください 3.2.2 業 務 テンプレートの 作 成 特 定 の 文 書 種 別 の 文 書 を 表 示 するための 処 理 レイアウトが 記 述 されているページファイルを 業 務 テンプレートと 呼 びます 検 索 結 果 画 面 では 文 書 単 位 に 文 書 種 別 を 参 照 し 該 当 の 業 務 テンプレートを 呼 び 出 して 文 書 情 報 を 表 示 させ ます 業 務 テンプレートは JSPまたは Presentation Page で 作 成 します 業 務 テンプレートで 行 わなくてはいけないことは 以 下 の3 点 です レイアウトの 決 定 取 得 情 報 の 表 示 制 御 コンテンツ 画 面 表 示 の 実 装 Page 10 Copyright 2000-2009 株 式 会 社 NTT データ イントラマート All rights Reserved.

3 業 務 文 書 の 追 加 3.2.2.1 レイアウトの 決 定 業 務 テンプレートは 検 索 結 果 画 面 の 一 部 ( 正 確 には <TABLE>の1セル 内 )として 表 示 されます 表 示 エリア 内 に 収 まるようなレイアウトにしてください 3.2.2.2 取 得 情 報 の 表 示 業 務 テンプレートで 表 示 する 文 書 情 報 は 検 索 結 果 画 面 から 全 てリクエスト 経 由 で 渡 されます リクエストのパラメータ 名 は 要 約 の 情 報 を 除 き 全 て Solr スキーマのフィールド 名 と 同 じです 3.2.2.2.1 要 約 の 表 示 検 索 結 果 画 面 から 送 られるリクエスト 内 の 要 約 の 情 報 は 以 下 の 通 りです パラメータ 名 内 容 display_snippets 検 索 画 面 の 表 示 条 件 要 約 の 表 示 の 設 定 値 on : 要 約 を 表 示 する / off : 要 約 を 表 示 しない snippet_text_ngram N-gram 用 テキストフィールドの 要 約 情 報 display_snippets が off の 場 合 は 値 は 設 定 されません snippet_text_morph 形 態 素 解 析 用 テキストフィールドの 要 約 情 報 display_snippets が off の 場 合 は 値 は 設 定 されません 表 示 制 御 検 索 画 面 の 表 示 条 件 要 約 の 表 示 の 値 が off の 場 合 は 業 務 テンプレートで 要 約 列 を 表 示 しないように 制 御 を 行 います また 検 索 条 件 が 否 定 句 (キーワードを 含 めない)のみの 場 合 は 要 約 の 表 示 の 設 定 値 が on の 場 合 でも 要 約 は 作 成 されません(snippet_text_ に 値 が 設 定 されていない)ので 注 意 が 必 要 です ハイライト 設 定 ファイル solr-display-config.xml のハイライト 機 能 が 有 効 (ハイライト 属 性 use-highlight が true)に 設 定 されている 場 合 は 要 約 には 検 索 語 句 をハイライト 表 示 する 為 の HTML タグが 埋 め 込 まれています 従 って リクエストから 受 け 取 った 要 約 情 報 の HTML 特 殊 文 字 をエンコードしてしまうと ハイライト 表 示 の 為 のタグも 一 緒 に 変 換 されてしまうため ハイライトが 正 しく 表 示 できなくなってしまいます ハイライト 表 示 の 為 のタグ 除 いた HTML 特 殊 文 字 がエンコードされた 要 約 を 取 得 するには 以 下 のように 実 装 します JSPの 場 合 jp.co.intra_mart.foundation.solr.util.templateviewutilクラスのgetencodedsnippetsを 使 用 して 取 得 します このメソッドでは 最 初 に snippet_text_ngram を 取 得 し 値 が 取 得 できなかった 場 合 には snippet_text_morph を 参 照 して 要 約 情 報 を 取 得 します TemplateViewUtil util = new TemplateViewUtil(request); String snippets = util. getencodedsnippets (); Presentation Page の 場 合 Procedure.getEncodedSnippets() を 使 用 して 取 得 します このメソッドの 要 約 の 取 得 方 法 は TemplateViewUtil クラスの 該 当 メソッドと 同 じです var snippets = Procedure. getencodedsnippets (request); 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 11

intra-mart IM-ContentsSearch プログラミングガイド 3.2.2.3 コンテンツ 画 面 表 示 の 実 装 検 索 結 果 画 面 では 文 書 のタイトルリンクを 押 下 すると コンテンツ 画 面 をポップアップで 表 示 する 動 作 仕 様 となっ ています その 為 業 務 テンプレートではコンテンツ 画 面 を 表 示 するための 実 装 を 行 います 文 書 情 報 の url フィールド id_original フィールドにはコンテンツ 画 面 を 表 示 するための 情 報 が 格 納 されてい ます 業 務 テンプレートでは この 値 と 検 索 結 果 画 面 の java Script 関 数 opendetailveiw を 利 用 して コンテンツ 画 面 を 表 示 します 引 数 には 以 下 の 値 を 設 定 します 第 一 引 数 文 書 情 報 の url フィールドの 値 第 二 引 数 文 書 情 報 の id_original フィールドの 値 第 三 引 数 コンテンツ 画 面 の 横 サイズ 第 四 引 数 コンテンツ 画 面 の 縦 サイズ 以 下 にサンプルコードを 示 します JSPの 場 合 TemplateViewUtil util = new TemplateViewUtil(request) <A class="solr_title" href="javascript:opendetailveiw('<%= util.getrequestparam("url") %>', '<%= util.getrequestparam("id_original")%>', 600,650)" > <%= util.getencodedrequestparam("title")%></a> Presentation Page の 場 合 <jsファイル> var url; var id_original; function init(request) { url = request.url; Id_original = request.id_original; <htmlファイル> <A class="solr_title" href="javascript:opendetailveiw('<imart type="string" value=url></imart>', '<IMART type="string" value=id_original></imart>', 600,650)"> <IMART type="string" value=title></imart></a> 参 考 ) 業 務 アプリケーションで 既 にコンテンツ 画 面 に 当 たる 画 面 がある 場 合 は その 画 面 を 併 用 することで 実 装 の 負 荷 を 軽 減 させることができる 場 合 もありますのでご 検 討 ください 文 書 種 別 ワークフロー では ワークフローの 詳 細 画 面 をコンテンツ 画 面 として 利 用 しています 3.2.2.4 業 務 テンプレートを 作 成 する 上 での 注 意 業 務 テンプレートは 検 索 結 果 画 面 の 一 部 として 表 示 されるため 作 成 する 上 で 以 下 のような 制 約 事 項 があります 1. 業 務 テンプレートは HTML の 一 部 分 として 表 示 されるため HTML 構 造 を 表 す 以 下 のようなタグは 利 用 できません <BODY>タグ 内 に 表 示 されるドキュメントの 内 容 のみ 記 述 するようにして 下 さい Page 12 Copyright 2000-2009 株 式 会 社 NTT データ イントラマート All rights Reserved.

3 業 務 文 書 の 追 加 <HEAD> <BODY> <!DOCTYPE> 2. 画 面 のスタイルは 検 索 結 果 画 面 で 指 定 されます 前 項 に 記 述 したように<HEAD>タグが 利 用 できない ため スタイルクラスの 定 義 は 記 述 できません タグに 個 別 にスタイルを 設 定 することもできますが でき るだけスタイルに 依 存 しないシンプルな 画 面 作 成 をして 下 さい <STYLE>タグや<LINK>タグを 用 いてスタイルを 指 定 することによって 検 索 結 果 画 面 のレイアウトに 影 響 を 与 えることがあります <IMART type="imdesigncss"> / < imarttag:imartdesigncss>タグは 検 索 結 果 画 面 で 指 定 しており 再 指 定 しなくても 利 用 可 能 ですので 業 務 テンプレートには 記 述 しないようにしてください 3. JavaScript で 利 用 するオブジェクト 名 や 変 数 名 関 数 名 をユニークな 名 前 で 定 義 する 必 要 があります これは 通 常 の 画 面 開 発 でも 同 様 ですが 業 務 テンプレートの 場 合 検 索 結 果 画 面 上 の 全 ての 業 務 テン プレートでバッティングしないようにする 必 要 があるため 特 に 注 意 が 必 要 です コンテンツ 画 面 の 表 示 その 他 ポップアップ 画 面 を 表 示 するための 関 数 が 検 索 結 果 画 面 で 用 意 されて いますので それらが 使 用 できないかどうかをご 確 認 ください 4. 検 索 結 果 画 面 では 検 索 結 果 1レコード 毎 に 該 当 の 業 務 テンプレートを 呼 び 出 して 表 示 しています 処 理 に 時 間 のかかる 業 務 テンプレートを 作 成 すると 検 索 結 果 画 面 が 表 示 されるまでにそれだけ 時 間 がかかってしまいます できるだけシンプルな 画 面 を 作 成 してください 3.2.3 文 書 種 別 情 報 の 定 義 業 務 テンプレートの URL や 業 務 テンプレートで 必 要 なフィールド 値 フォーマットなどの 検 索 結 果 表 示 時 に 必 要 な 文 書 種 別 固 有 の 情 報 は 設 定 ファイルに 定 義 します 設 定 ファイルは ServerManager/conf/solr-display-config.xml です 設 定 例 を 以 下 に 示 します <solr-display-config> <document> <document-type id = "bpw"> <display-string-key>solr.display.document_type.bpw.name</display-string-key> <parent-document-type/> <display-combo>true</display-combo> <templete-url>solr/search/template/bpw_template.jsp</templete-url> <default-date-format>yyyy/mm/dd</default-date-format> <require-fields> <field name="process_def_name_string"/> <field name="draft_date_string"/> <field name="draft_user_cd_string"/> <field name="draft_user_name_string"/> <field name="process_end_status_string"/> <field name="record_date"> <date-format> yyyy/mm/dd</date-format> </ field > </require-fields> </document-type> <document-type id = "sample"> </document-type> <document> < /solr-display-config > 文 書 種 別 ワークフロー の 設 定 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 13

intra-mart IM-ContentsSearch プログラミングガイド タグの 説 明 < document >タグ < document > 文 書 情 報 を 設 定 します < document-type > 文 書 種 別 情 報 を 設 定 します 文 書 種 別 を 追 加 した 場 合 はこのタグ 要 素 を 追 加 します id 属 性 : 文 書 種 別 の id を 設 定 します ここで 設 定 する 値 は Solr スキーマの type フィールドへの 設 定 値 と 関 連 づけられま す またシステム 全 体 で 一 意 でなくてはいけません 文 書 種 別 が 階 層 構 造 を 持 っている 場 合 は 自 身 の 種 別 を 設 定 します 文 書 種 別 の 階 層 化 については 3.2.4 文 書 種 別 の 階 層 化 をご 参 照 ください < document-type >タグ < document-type > 文 書 種 別 毎 の 設 定 1 < display-string-key > ( 必 須 ) 文 書 種 別 のメッセージを 取 得 するためのキーを 設 定 します このメッセージは 種 別 コンボ 種 別 の 絞 込 み 検 索 の 文 書 種 別 表 示 時 に 使 用 されます メッセージは Server Manager/conf/message ディレクトリ 配 下 のメッセージ プロパティファイルに 定 義 してください 2 < parent-document-type > 文 書 種 別 が 階 層 構 造 を 持 ち この 文 書 種 別 に 親 の 種 別 が 存 在 する 場 合 自 身 の 一 つ 上 の 階 層 の 親 の 文 書 種 別 タイプを 指 定 します 但 し 指 定 できる 親 の 文 書 種 別 は 一 つのみです 3 <display-combo> 全 文 検 索 画 面 の 表 示 条 件 文 書 種 別 コンボボックスに 表 示 するか 否 か を 設 定 します デフォルトは true です ( 省 略 可 ) 4 <templete-url> 業 務 テンプレートの URL を 設 定 します [ 設 定 例 ] 業 務 テンプレートが jsp の 場 合 solr/search/template/bpw_template.jsp 業 務 テンプレートが PresetaionPage の 場 合 sample/solr/schedule/schedule_template.jssp 5 <default-date-format> フィールドが Date 型 の 場 合 のデフォルトフォーマット ( 任 意 ) require-fields にフォーマットの 指 定 がない Date 型 のフィールドがあった 場 合 に このフォーマットを 使 用 して 文 字 列 変 換 を 行 います 6 <require-fields> 要 求 フィールド 情 報 デフォルトで 業 務 テンプレートに 送 信 されるフィールド 以 外 に 必 要 なフィ ールドを 定 義 します デフォルトで 送 信 されるフィールド 値 は 以 下 の 通 りです 文 書 情 報 id type ( 自 身 の 文 書 種 別 親 種 別 は 含 みません) url id_original title 検 索 画 面 の 表 示 条 件 display_snippets ( 要 約 の 表 示 非 表 示 ) 要 約 を 表 示 する 場 合 snippet_text_ngram (Ngram 用 テキストフィールドの 要 約 ) snippet_text_morph ( 形 態 素 解 析 用 テキストフィールドの 要 約 ) <field> リクエスト 要 求 フィールド 名 name 属 性 :フィールド 名 はSolrスキーマのフィールド 名 と 一 致 している 必 要 があります <date-format> フィールドが Date 型 の 場 合 のフォーマット ( 任 意 ) このフィールド 値 をこのフォーマットを 使 用 して 文 字 列 変 換 を 行 います Page 14 Copyright 2000-2009 株 式 会 社 NTT データ イントラマート All rights Reserved.

3 業 務 文 書 の 追 加 3.2.3.1 設 定 内 容 の 継 承 親 の 文 書 種 別 が 存 在 する 場 合 は < document-type >の 4~6の 項 目 に 設 定 がない 時 一 つ 上 の 階 層 から 上 位 の 階 層 に 向 かって 順 に 設 定 が 見 つかるまで 親 文 書 種 別 の 該 当 項 目 の 設 定 を 参 照 する 動 作 となっています 上 位 階 層 の 文 書 種 別 の 設 定 内 容 を 複 数 の 下 位 階 層 の 文 書 種 別 が 継 承 することが 可 能 です 3.2.4 文 書 種 別 の 階 層 化 全 文 検 索 結 果 画 面 には 文 書 種 別 によるドリルダウン 検 索 機 能 があります ドリルダウン 検 索 とは データの 集 計 レベルを1つずつ 掘 り 下 げて 集 計 項 目 をさらに 詳 細 にする 操 作 で クリックだ けの 簡 単 操 作 でユーザを 目 的 の 文 書 種 別 まですばやく 誘 導 する 機 能 です 文 書 種 別 が 階 層 構 造 を 持 っている 場 合 には 特 にこの 機 能 が 有 効 です 以 下 に 例 を 示 します 検 索 結 果 種 別 絞 込 み 画 面 の 表 示 例 図 3.4-1 階 層 のある 文 書 種 別 の 例 図 3.4-1 では 社 内 システム に 掲 示 板 ドキュメント 管 理 という 機 能 があり 掲 示 板 では 登 録 対 象 データ を[カテゴリ]と[ 種 別 ]によりカテゴライズしているという 構 成 を 表 しています 各 ノードは 全 て 文 書 種 別 に 当 たりそれぞれが 文 書 種 別 IDを 持 ちます 下 位 のノードから 見 て 上 位 にある 全 てのノードが 親 の 文 書 種 別 です 例 ) [ 種 別 ] 取 引 先 情 報 の 親 の 文 書 種 別 社 内 システム 掲 示 板 連 絡 事 項 階 層 化 された 文 書 種 別 には 以 下 の 二 つの 種 類 の 種 別 があります 基 本 文 書 種 別 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 15

intra-mart IM-ContentsSearch プログラミングガイド システム 固 有 の 文 書 種 別 で 事 前 に 定 義 が 可 能 な 種 別 です 3.2.3 文 書 種 別 情 報 の 定 義 の 内 容 で 設 定 ファイルに 定 義 します 図 3.4-1 の 例 の 場 合 は 第 1 層 第 2 層 の 文 書 種 別 がこれに 当 たります 動 的 文 書 種 別 アプリケーションの 機 能 により 登 録 されるような 流 動 的 な 種 別 です 内 容 が 業 務 データに 依 存 し 事 前 に 設 定 ファイルに 定 義 することができない 為 動 的 文 書 種 別 による 絞 込 み 検 索 機 能 を 使 用 する 場 合 には クローラ 実 行 時 に 種 別 情 報 の 取 得 保 存 を 行 う 必 要 があります また 動 的 文 書 種 別 は 必 ず 基 本 文 書 種 別 に 関 連 付 けが 可 能 ( 親 文 書 種 別 に 基 本 文 書 種 別 が 存 在 する)で なくてはいけません 図 3.4-1 の 例 の 場 合 は 第 3 層 第 4 層 の 文 書 種 別 がこれに 当 たります 3.2.4.1 文 書 種 別 IDの 命 名 規 則 文 書 種 別 IDは 以 下 の 命 名 規 則 に 従 って 付 ける 必 要 があります 1. システム 全 体 で 一 意 であること 2. IDが d$$ で 開 始 していないこと 3. 文 書 種 別 IDに 以 下 の 文 字 を 含 んでいないこと $$ = 3.2.4.2 文 書 種 別 の 登 録 クローラ 実 行 時 に 階 層 構 造 を 持 つ 文 書 種 別 を 登 録 する 方 法 について 説 明 します 3.2.4.2.1 階 層 構 造 に 動 的 文 書 種 別 が 存 在 しない 場 合 登 録 用 オブジェクトの type フィールドに 自 身 の 文 書 種 別 と 全 ての 親 の 文 書 種 別 を 設 定 します 文 書 登 録 時 のプログラミング 例 を 以 下 に 示 します IntramartSolrInputDocument inputdoc = new IntramartSolrInputDocument(); // type フィールドに 文 書 種 別 を 追 加 inputdoc.addtype("self_doc_type"); // 自 身 の 文 書 種 別 inputdoc.addtype("parent1_doc_type"); // 一 つ 上 の 文 書 種 別 inputdoc.addtype("parent2_doc_type"); // 二 つ 上 の 文 書 種 別 3.2.4.2.2 階 層 構 造 に 動 的 文 書 種 別 が 存 在 する 場 合 登 録 用 オブジェクトの type フィールドに 自 身 の 文 書 種 別 と 全 ての 親 の 文 書 種 別 を 設 定 します 但 し 登 録 する 動 的 文 書 種 別 IDは APIを 利 用 して 生 成 する 必 要 があります 文 書 種 別 の 登 録 時 には 基 本 的 に 以 下 の 処 理 を 行 います 使 用 する API のクラスは jp.co.intra_mart.foundation.solr.crawler.common.dynamicdocumenttype です 1 登 録 用 の 動 的 文 書 種 別 ID を 生 成 する 登 録 用 の 動 的 文 書 種 別 ID は 自 身 の 文 書 種 別 ID 親 の 文 書 種 別 IDを 基 に 階 層 構 造 情 報 を 含 んだ 独 自 の フォーマットにより 構 成 されています DynamicDocumentType の makedynamictype メソッドを 使 用 します makedynamictype(list<string> typelist, int index) 第 一 引 数 : 親 から 子 の 順 番 で 文 書 種 別 IDを 格 納 したリスト 第 二 引 数 : 動 的 文 書 種 別 ID を 作 成 するターゲット 文 書 種 別 IDのリスト 内 での 位 置 Page 16 Copyright 2000-2009 株 式 会 社 NTT データ イントラマート All rights Reserved.

3 業 務 文 書 の 追 加 2 生 成 した 登 録 用 動 的 文 書 種 別 ID と 表 示 用 文 書 種 別 名 のマッピングを 保 存 する DynamicDocumentType の savedynamictypefile メソッドを 使 用 します savedynamictypefile(string basedoctype,map<string, String> dynamictypeinfo, String logingroupid) 第 一 引 数 : 動 的 文 書 種 別 情 報 の 親 基 本 文 書 種 別 ID 第 二 引 数 : 登 録 用 動 的 文 書 種 別 ID と 表 示 用 文 書 種 別 名 のマッピング 第 三 引 数 : ログイングループ ID マッピング 情 報 は 第 一 引 数 に 指 定 した 親 基 本 文 書 種 別 ID 単 位 で 以 下 にファイルで 保 存 されます Storage サービス/contents_search/display/dynamic_type/<%ログイングループ ID%>/ <% 親 基 本 文 書 種 別 %>_dynamic_type 既 に 同 一 名 称 のファイルが 存 在 する 場 合 は 上 書 きする 動 作 となります 3 保 存 済 み 登 録 用 動 的 文 書 種 別 ID と 表 示 用 文 書 種 別 名 のマッピングを 取 得 する DynamicDocumentType の getdynamictypeinfo メソッドを 使 用 します getdynamicdoctypemap (String basedoctype, String logingroupid) 第 一 引 数 : マッピング 情 報 の 保 存 時 に 指 定 した 親 基 本 文 書 種 別 ID 第 二 引 数 : ログイングループ ID 図 3.4-1 の 社 内 システム > 掲 示 板 > 通 達 事 項 ( 動 的 文 書 種 別 ) > 取 引 先 情 報 ( 動 的 文 書 種 別 ) に 属 す る 業 務 データの 文 書 種 別 を 登 録 するプログラミング 例 を 以 下 に 示 します 下 記 コード 内 で 使 用 する 各 文 書 種 別 ID は 以 下 のものとします 社 内 システム[system] > 掲 示 板 [bulletin] > 通 達 事 項 [notification] > 取 引 先 情 報 [client_info] また 動 的 文 書 種 別 ID と 表 示 用 文 書 種 別 名 のマッピング 情 報 は 親 基 本 文 書 種 別 掲 示 板 [bulletin] で 保 存 するも のとします Map<String, String> map = null; // 登 録 済 みの 動 的 文 書 種 別 ID と 表 示 用 文 書 種 別 名 のマッピングの 取 得 map = DynamicDocumentType. getdynamictypeinfo ("bulletin", logingroupid); if (map == null) { map = new HashMap<String, String>(); } // 文 書 登 録 処 理 開 始 IntramartSolrInputDocument inputdoc = new IntramartSolrInputDocument(); // 基 本 文 書 種 別 を type フィールドに 追 加 inputdoc.addtype("system"); inputdoc.addtype("bulletin"); // 動 的 文 書 種 別 // 文 書 種 別 リストの 生 成 List<String> typelist = new ArrayList<String>(); typelist.add("system"); typelist.add("bulletin"); typelist.add("notification "); typelist.add("client_info"); // 通 達 事 項 の 登 録 用 動 的 文 書 種 別 ID を 生 成 String doctype1 = DynamicDocumentType.makeDynamicType(typeList, 2); // type フィールドに 追 加 inputdoc.addtype(doctype1); // マップに 追 加 map.put(doctype1, 通 達 事 項 ); // 取 引 先 情 報 の 登 録 用 動 的 文 書 種 別 ID を 生 成 String doctype2 = DynamicDocumentType.makeDynamicType(typeList, 3); 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 17

intra-mart IM-ContentsSearch プログラミングガイド inputdoc.addtype(doctype2); map.put(doctype2, 取 引 先 情 報 ); // 文 書 登 録 処 理 終 了 // 処 理 の 最 後 に 動 的 文 書 種 別 ID と 表 示 用 文 書 種 別 名 のマッピングを 保 存 DynamicDocumentType.saveDynamicTypefile("bulletin", map, logingroupid); 実 装 上 の 注 意 点 動 的 文 書 種 別 情 報 は Storage サービス 内 にファイルとして 保 存 されます その 為 同 一 ファイルに 対 し 並 列 で 処 理 を 行 うと データの 整 合 性 が 失 われたり 一 部 のデータが 消 失 し てしまう 可 能 性 があります 動 的 文 書 種 別 を 扱 うクローラを 作 成 する 際 には 上 記 の 点 を 考 慮 して 実 装 を 行 ってください Page 18 Copyright 2000-2009 株 式 会 社 NTT データ イントラマート All rights Reserved.

4 検 索 機 能 4 検 索 機 能 イントラマートでは 全 文 検 索 画 面 (ポートレット メニュー)を 標 準 で 用 意 していますが IM-ContentsSearch クライ アントの 検 索 機 能 を 利 用 して 業 務 仕 様 に 特 化 した 独 自 の 検 索 画 面 を 作 成 することが 可 能 です この 章 では IM-ContentsSearch クライアントの 検 索 機 能 について 説 明 します 4.1.1 文 書 の 検 索 はじめに SolrManager のインスタンスを 取 得 します 取 得 メソッドには 以 下 の 二 つがあります getinstance(string user, String group, Date date) getinstance(string user, String group) 第 一 引 数 : ログインユーザIDを 設 定 します 第 二 引 数 : ログイングループ ID を 設 定 します 第 三 引 数 : 権 限 に 関 する 期 間 化 を 伴 った 情 報 (ログインユーザの 権 限 所 属 情 報 の 取 得 など)を 取 得 する 際 の 検 索 基 準 日 を 設 定 します 省 略 した 場 合 はシステム 日 付 が 設 定 されます 次 に SolrManager の searchdocuments メソッドを 使 用 して 検 索 処 理 を 行 います 引 数 には 検 索 条 件 を 設 定 した SolrSearchQuery オブジェクトを 設 定 します 設 定 ファイル solr-config.xml の 情 報 は SolrManager の getcachedconfig メソッドにより 取 得 可 能 です 設 定 値 情 報 格 納 クラス:jp.co.nttdata.intra_mart.solr.util.Config 以 下 にサンプルコードを 示 します 独 自 の Solr スキーマを 使 用 している 場 合 は フィールド 名 をお 使 いのスキーマのフィールド 名 に 適 宜 置 き 換 え てください try{ SolrManager mng = SolrManager.getInstance( getuserinfo().getuserid(), getuserinfo().getlogingroupid()); SolrSearchQuery query = new SolrSearchQuery(); Config conf = SolrManager.getCachedConfig(); SolrSearchCondition cond = null; // ファセットフィールドに type を 指 定 query.addfacetfield("type"); // 登 録 日 で 昇 順 にソート query.addsortfield("record_date", false); // 出 力 フィールド(スコア 及 び 全 フィールドを 出 力 ) query.addfieldtooutput("score"); query.addfieldtooutput("*"); // Ngram を 使 用 している 場 合 text_ngram フィールドに イントラマート 販 売 を 含 む 文 書 if (conf.getusengram()) { cond = new SolrSearchCondition().term("text_ngram", "イントラマート").and().term("text_ngram", " 発 売 "); } // 要 約 を 生 成 するフィールド(Ngram 用 テキストフィールド) query.addfieldtogeneratesnippetsfor("text_ngram"); // 形 態 素 解 析 を 使 用 している 場 合 text_morph フィールドに イントラマート 販 売 を 含 む 文 書 if (conf.getusemorph()) { SolrSearchCondition cond2 = new SolrSearchCondition().term("text_morph", "イントラマート") 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 19

intra-mart IM-ContentsSearch プログラミングガイド.and().term("text_morph", " 発 売 "); } if (cond == null) { cond = cond2; } else { cond = SolrSearchCondition.or(cond, cond2); } // 要 約 を 生 成 するフィールド( 形 態 素 解 析 用 テキストフィールド) query.addfieldtogeneratesnippetsfor("text_morph"); // 検 索 開 始 位 置 query.setoffset(long.valueof(pageno) * Long.valueOf(dispCount)); // 取 得 件 数 query.setrows(long.valueof(dispcount)); // 検 索 条 件 query.setcondition(cond); // 検 索 実 行 SearchResult result = mng.searchdocuments(query); } catch (Exception e) { // エラー 時 の 処 理 s } ( ) ファセット ソートフィールドの 注 意 点 1. ファセットフィールド ソートフィールドには 索 引 化 をしていないフィールドは 指 定 できません 2. トークナイズ 対 象 フィールドはソートすることはできません 4.1.2 検 索 条 件 IM-ContentsSearch クライアントを 用 いて 文 書 を 検 索 する 際 に 使 用 することができる 検 索 条 件 の 一 覧 それらの 意 味 および 注 意 事 項 について 説 明 します API では 以 下 の 検 索 条 件 を 組 み 合 わせて 利 用 することができます 項 番 検 索 条 件 意 味 1 ターム 検 索 条 件 フィールドに 指 定 した 語 が 含 まれている 文 書 を 検 索 する 2 フレーズ 検 索 条 件 フィールドに 指 定 したフレーズが 含 まれている 文 書 を 検 索 する 3 整 数 範 囲 検 索 条 件 フィールドの 値 が 指 定 した 32bit 整 数 範 囲 に 含 まれている 文 書 を 検 索 する 4 長 整 数 範 囲 検 索 条 件 フィールドの 値 が 指 定 した 64bit 整 数 範 囲 に 含 まれている 文 書 を 検 索 する 5 文 字 列 範 囲 検 索 条 件 フィールドの 値 が 指 定 した 文 字 列 の 範 囲 に 含 まれている 文 書 を 検 索 する 6 日 時 範 囲 検 索 条 件 フィールドの 値 が 指 定 した 日 時 の 範 囲 に 含 まれている 文 書 を 検 索 する 7 非 ヌル 値 検 索 条 件 フィールドの 値 が 空 でない 文 書 を 検 索 する 8 全 件 検 索 条 件 登 録 された 全 文 書 を 検 索 する 9 AND 検 索 条 件 与 えられた 複 数 の 副 検 索 条 件 の 論 理 積 にマッチする 文 書 を 検 索 す る 10 OR 検 索 条 件 与 えられた 複 数 の 副 検 索 条 件 の 論 理 和 にマッチする 文 書 を 検 索 す る 11 AND NOT 検 索 条 件 与 えられた 複 数 の 副 検 索 条 件 のうち 最 初 の 条 件 にマッチし 二 番 目 以 降 の 条 件 にはマッチしない 文 書 を 検 索 する 12 raw 検 索 条 件 Solr の 検 索 式 を 直 接 指 定 して それにマッチする 文 書 を 検 索 する Page 20 Copyright 2000-2009 株 式 会 社 NTT データ イントラマート All rights Reserved.

4 検 索 機 能 4.1.2.1 検 索 条 件 ごとの 詳 細 な 説 明 と 制 限 事 項 4.1.2.1.1 ターム 検 索 条 件 説 明 ターム 検 索 条 件 とは フィールドに 指 定 した 語 (ターム)が 含 まれている 文 書 を 検 索 する 条 件 です 検 索 条 件 として 指 定 した 語 は まずそのフィールドの Analyzer によって 解 析 され トークンと 呼 ばれる 文 字 列 のリストに 分 割 されます その 後 そのトークンのリストのフレーズ 検 索 として 実 行 されます ターム 検 索 条 件 は jp.co.nttdata.intra_mart.solr.domain.solrsearchcondition の term メソッドを 用 いて 構 築 することができます 制 限 事 項 タームには 空 白 文 字 を 含 めてはいけません また ターム 検 索 において AND OR NOT というタームを 使 用 する 場 合 には 注 意 が 必 要 です これらの 文 字 列 は Solr によって 論 理 積 検 索 論 理 和 検 索 論 理 否 定 検 索 を 表 す 特 殊 キーワードとみなさ れるためです API は これらのキーワードがタームとして 与 えられた 場 合 フレーズクエリとして 実 行 します なお これらのキーワードは 大 文 字 小 文 字 を 区 別 するため and Or not 等 のタームで 検 索 する 場 合 はこの 注 意 は 当 てはまりません オプション 1 ワイルドカード 検 索 ワイルドカード 検 索 とは 任 意 の 文 字 列 にマッチするワイルドカード 文 字 * 及 び 任 意 の 一 文 字 にマッチするワイルドカード 文 字? を 用 いて タームを 記 述 できる 機 能 です 例 えば foo* というタームで 検 索 した 場 合 foo で 始 まる 全 てのトークンを 含 む 文 書 を 検 索 する という 意 味 になります term メソッドの wildcard 引 数 に true を 与 えることで 有 効 になります 後 述 するあいまいマッチオプションとの 同 時 使 用 はできません 注 意 点 ワイルドカード 文 字 は タームの 先 頭 で 使 用 することはできません また ワイルドカード 検 索 を 用 いる 場 合 検 索 タームは トークンに 分 割 されません 2 あいまいマッチ あいまいマッチとは 与 えたタームに 厳 密 に 一 致 するトークンを 含 む 文 書 だけでなく 少 しだけ 異 なったトークンを 含 む 文 書 も 検 索 できる 機 能 です 例 えば ワークフロー というタームで あいまいマッチを 有 効 にして 検 索 を 行 った 場 合 ワードフ ロー ワークブロー 等 の 少 し 異 なったトークンを 含 む 文 書 も 検 索 できます ただし あいまいマッチが 有 効 なのは 3 文 字 以 上 の 長 さを 持 つ 検 索 タームに 対 してのみです また あいまいマッチを 用 いる 場 合 検 索 タームは トークンに 分 割 されません 注 意 点 日 本 語 の 文 書 は インデックス 内 に 格 納 されたトークンが 形 態 素 や N-gram 等 の 小 さな 単 位 である ため あいまいマッチで 直 感 的 な 結 果 を 得 にくいことです 例 えば ワークフロー という 文 字 列 を CJKTokenizer を 用 いるフィールドに 登 録 した 場 合 実 際 には ワー ーク クフ フロ ロー というトークンに 分 割 されてインデックスに 格 納 されています したがって ワークフロー というタームを 用 いてあいまいマッチを 行 っても それぞれのトークンと ワークフロー というタームはあまり 類 似 していないため 検 索 結 果 には 現 れません 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 21

intra-mart IM-ContentsSearch プログラミングガイド 4.1.2.1.2 フレーズ 検 索 条 件 説 明 フレーズ 検 索 条 件 とは フィールドに 指 定 した 語 のリスト(フレーズ)が 指 定 した 順 序 で 隣 接 して 含 まれて いる 文 書 を 検 索 する 条 件 です 検 索 条 件 として 指 定 したフレーズは まずそのフィールドの Analyzer によって 解 析 され トークンのリストに 分 割 されます その 後 それらのトークンが その 順 序 で 隣 接 して 出 現 する 文 書 が 検 索 されます フレーズ 検 索 条 件 は jp.co.nttdata.intra_mart.solr.domain.solrsearchcondition の phrase メソッドを 用 いて 構 築 することができます フレーズ 検 索 には ターム 検 索 とは 異 なり 空 白 文 字 を 含 む 文 字 列 を 与 えることができます しかし 逆 に ワイルドカード 検 索 やあいまいマッチを 行 うことはできません ワイルドカード 文 字 * もしくは? を 与 えた 場 合 は 文 字 そのものが 検 索 されます オプション 1 近 傍 検 索 近 傍 検 索 とは フレーズを 構 成 する 各 トークンが 完 全 に 隣 接 しておらず ある 程 度 離 れて 出 現 する 文 書 も 探 すことができる 機 能 です どの 程 度 離 れていることを 許 容 するかは similarity 引 数 で 指 定 します 例 えば 東 京 と 京 都 という 文 字 列 で MeCabAnalyzer を 用 いるフィールドに 対 してフレーズ 検 索 を 行 うことを 考 えます 通 常 のフレーズ 検 索 では 東 京 と 京 都 という 並 びでトークンが 含 まれる 文 書 を 検 索 します し かし 近 傍 検 索 を 有 効 にすると 東 京 と 名 古 屋 と 京 都 のように 少 し 離 れた 位 置 にトークンが 出 現 する 文 書 も 検 索 することができます この 場 合 文 書 に 含 まれるトークンのリストは 東 京 と 名 古 屋 と 京 都 となり 検 索 条 件 のトークンに 比 べ 二 つ 余 分 にトークンが 挿 入 されています したがって similarity には 2 以 上 を 指 定 する 必 要 があります 4.1.2.1.3 整 数 範 囲 検 索 条 件 整 数 範 囲 検 索 条 件 とは フィールドの 値 が 指 定 した 32bit 整 数 範 囲 に 含 まれている 文 書 を 検 索 する 条 件 です 整 数 範 囲 検 索 条 件 は jp.co.nttdata.intra_mart.solr.domain.solrsearchcondition の 以 下 のメソッドを 用 いて 構 築 す ることができます integerrange integergreaterthan integergreaterthanorequalto integerlessthan integerlessthanorequalto 上 記 のメソッドのうち integerrange は 範 囲 の 上 限 と 下 限 を 指 定 して フィールド 値 がそこに 含 まれる 文 書 を 検 索 するものです inclusive 引 数 により 上 限 値 及 び 下 限 値 を 範 囲 に 含 めるかどうかを 指 定 することができます それ 以 外 のメソッドは 上 限 もしくは 下 限 のみを 指 定 して 検 索 を 行 うものです 4.1.2.1.4 長 整 数 範 囲 検 索 条 件 長 整 数 範 囲 検 索 条 件 とは フィールドの 値 が 指 定 した 64bit 整 数 範 囲 に 含 まれている 文 書 を 検 索 する 条 件 で す Page 22 Copyright 2000-2009 株 式 会 社 NTT データ イントラマート All rights Reserved.

4 検 索 機 能 長 整 数 範 囲 検 索 条 件 は jp.co.nttdata.intra_mart.solr.domain.solrsearchcondition の 以 下 のメソッドを 用 いて 構 築 することができます longrange longgreaterthan longgreaterthanorequalto longlessthan longlessthanorequalto 上 記 のメソッドのうち longrange は 範 囲 の 上 限 と 下 限 を 指 定 して フィールド 値 がそこに 含 まれる 文 書 を 検 索 す るものです inclusive 引 数 により 上 限 値 及 び 下 限 値 を 範 囲 に 含 めるかどうかを 指 定 することができます それ 以 外 のメソッドは 上 限 もしくは 下 限 のみを 指 定 して 検 索 を 行 うものです 4.1.2.1.5 文 字 列 範 囲 検 索 条 件 文 字 列 範 囲 検 索 条 件 とは フィールドの 値 が 指 定 した 文 字 列 範 囲 に 含 まれている 文 書 を 検 索 する 条 件 です 文 字 列 の 大 小 比 較 は 辞 書 順 によります 文 字 列 範 囲 検 索 条 件 は jp.co.nttdata.intra_mart.solr.domain.solrsearchcondition の 以 下 のメソッドを 用 いて 構 築 することができます stringrange, stringgreaterthan, stringgreaterthanorequalto, stringlessthan, stringlessthanorequalto のいずれかのメソッドを 用 いて 構 築 することができます 上 記 のメソッドのうち stringrange は 範 囲 の 上 限 と 下 限 を 指 定 して フィールド 値 がそこに 含 まれる 文 書 を 検 索 するものです inclusive 引 数 により 上 限 値 及 び 下 限 値 を 範 囲 に 含 めるかどうかを 指 定 することができます そ れ 以 外 のメソッドは 上 限 もしくは 下 限 のみを 指 定 して 検 索 を 行 うものです 4.1.2.1.6 日 時 範 囲 検 索 条 件 日 付 範 囲 検 索 条 件 とは フィールドの 値 が 指 定 した 日 付 範 囲 に 含 まれている 文 書 を 検 索 する 条 件 です 日 付 範 囲 検 索 条 件 は jp.co.nttdata.intra_mart.solr.domain.solrsearchcondition の 以 下 のメソッドを 用 いて 構 築 す ることができます daterange, dategreaterthan, dategreaterthanorequalto, datelessthan, datelessthanorequalto 上 記 のメソッドのうち daterange は 範 囲 の 上 限 と 下 限 を 指 定 して フィールド 値 がそこに 含 まれる 文 書 を 検 索 す るものです inclusive 引 数 により 上 限 値 及 び 下 限 値 を 範 囲 に 含 めるかどうかを 指 定 することができます それ 以 外 のメソッドは 上 限 もしくは 下 限 のみを 指 定 して 検 索 を 行 うものです 4.1.2.1.7 非 ヌル 値 検 索 条 件 非 ヌル 値 検 索 条 件 とは フィールドに 任 意 の 値 がセットされている 文 書 を 検 索 する 条 件 です フィールドに 何 も 値 がセットされていない つまり 当 該 フィールドを 持 たない 文 書 は 検 索 されません 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 23

intra-mart IM-ContentsSearch プログラミングガイド 非 ヌル 値 検 索 条 件 は jp.co.nttdata.intra_mart.solr.domain.solrsearchcondition の notnull メソッドを 用 いて 構 築 することができます 尚 フィールドに 空 文 字 列 ( )が 格 納 されている 場 合 は フィールドに 値 がセットされているものとして 扱 われま す 4.1.2.1.8 全 件 検 索 条 件 全 件 検 索 条 件 とは 無 条 件 で 全 ての 文 書 を 検 索 する 条 件 です 全 件 検 索 条 件 は jp.co.nttdata.intra_mart.solr.domain.solrsearchcondition の all メソッドを 用 いて 構 築 することが できます 4.1.2.1.9 AND 検 索 条 件 AND 検 索 条 件 とは 与 えられた 複 数 の 副 検 索 条 件 の 論 理 積 にマッチする 文 書 を 検 索 する 条 件 です すなわち 与 えられた 副 検 索 条 件 全 てにマッチする 文 書 のみ 検 索 します AND 検 索 条 件 は jp.co.nttdata.intra_mart.solr.domain.solrsearchcondition の and メソッドを 用 いて 構 築 すること ができます 4.1.2.1.10 OR 検 索 条 件 OR 検 索 条 件 とは 与 えられた 複 数 の 副 検 索 条 件 の 論 理 和 にマッチする 文 書 を 検 索 する 条 件 です すなわち 与 えられた 副 検 索 条 件 のいずれかにマッチする 文 書 を 検 索 します OR 検 索 条 件 は jp.co.nttdata.intra_mart.solr.domain.solrsearchcondition の or メソッドを 用 いて 構 築 することが できます 4.1.2.1.11 AND NOT 検 索 条 件 AND NOT 検 索 とは 与 えられた 複 数 の 副 検 索 条 件 のうち 最 初 の 条 件 にマッチし 二 番 目 以 降 の 条 件 にはマ ッチしない 文 書 を 検 索 する 条 件 です AND NOT 検 索 条 件 は jp.co.nttdata.intra_mart.solr.domain.solrsearchcondition の andnot メソッドを 用 いて 構 築 することができます 注 意 点 AND NOT 検 索 条 件 には 必 ず 複 数 の 副 検 索 条 件 を 与 える 必 要 があるということです 一 つしか 副 検 索 条 件 を 与 えない 場 合 単 純 にその 条 件 にマッチする 文 書 が 検 索 されます もし 単 独 の 検 索 条 件 の 否 定 条 件 で 検 索 したい 場 合 は 最 初 の 副 検 索 条 件 として 全 件 検 索 条 件 を 与 えます 例 えば ある 語 を 含 まない 文 書 のみを 検 索 したい 場 合 は 最 初 の 副 検 索 条 件 として 全 件 検 索 条 件 二 番 目 の 副 検 索 条 件 としてターム 検 索 条 件 を 与 えます ( 例 ) ターム NTT を 含 まない 文 書 を 検 索 する 条 件 を 構 築 する 正 しく 動 作 しない 例 SolrSearchCondition cond = new SolrSearchCondition().andNot().term("NTT"); 正 しく 動 作 する 例 SolrSearchCondition cond = new SolrSearchCondition().all().andNot().term("NTT"); Page 24 Copyright 2000-2009 株 式 会 社 NTT データ イントラマート All rights Reserved.

5 削 除 機 能 5 削 除 機 能 この 章 では IM-ContentsSearch クライアントの 削 除 機 能 の 実 装 方 法 について 説 明 します 5.1.1 文 書 の 削 除 IM-ContentsSearch クライアントでは 文 書 の 削 除 の 為 に 以 下 のメソッドを 用 意 しています SolrManager deletealldocuments 登 録 された 全 文 書 を 削 除 します deletedocuments 検 索 条 件 にマッチする 文 書 を 全 て 削 除 します 引 数 には 検 索 条 件 jp.co.nttdata.intra_mart.solr.domain.solrsearchcondition を 設 定 します Intramart SolrManager deleteintramartdocumentsbytype 指 定 した 文 書 種 別 の 文 書 を 全 て 削 除 します 引 数 には 文 書 種 別 を 設 定 します 5.1.2 削 除 処 理 後 の 後 処 理 文 書 の 削 除 が 終 わったら 最 後 に 文 書 の 削 除 処 理 のコミットと 必 要 に 応 じてインデックスの 最 適 化 処 理 を 行 いま す これらの 処 理 については 前 述 の 3.2.1.3 全 文 書 登 録 後 の 後 処 理 をご 参 照 ください 以 下 に 条 件 を 指 定 して 文 書 を 削 除 する 場 合 のサンプルコードを 示 します SolrManager mng = SolrManager.getInstance( getuserinfo().getuserid(), getuserinfo().getlogingroupid()); SolrSearchCondition cond = new SolrSearchCondition(); cond.term("フィールド 名 ", "sample"); try { // 削 除 処 理 実 行 mng.deletedocuments(cond); // 登 録 内 容 を 即 時 反 映 mng.commit(); // インデックスの 最 適 化 mng.optimize(); } catch (Exception e) { // エラー 時 の 処 理 } 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 25

intra-mart IM-ContentsSearch プログラミングガイド 6 API 使 用 上 の 注 意 点 この 章 では IM-ContentsSearch クライアントを 使 用 する 上 での 注 意 点 について 説 明 します 6.1 全 般 的 な 注 意 事 項 Javadoc のメソッドの 説 明 において できません ( 例 :null を 与 えることはできません)と 記 載 されているパラメ ータについては 呼 び 出 し 側 でその 制 約 を 満 たすよう 保 証 してください 制 約 を 満 たさなかった 場 合 の 動 作 は 未 定 義 かつ 保 証 対 象 外 です 6.2 文 書 の 登 録 に 関 する 注 意 事 項 本 ライブラリがテキストを 抽 出 することができるファイルフォーマットの 一 覧 と 各 フォーマットからテキストを 抽 出 す る 際 の 制 限 事 項 を 以 下 に 述 べます 6.2.1 テキストを 抽 出 することができるファイルフォーマット 本 ライブラリがテキストを 抽 出 できるファイルフォーマットの 一 覧 は 下 表 のとおりです 項 番 フォーマット 名 MIME タイプ (MIME タイプを 指 定 しない 場 合 に この MIME タ イプであるとみなすファイルの 拡 張 子 ) 1 プレーンテキスト text/plain (txt) 2 HTML text/html (htm, html) 3 XML application/xml (xml) 4 PDF application/pdf (pdf) 5 Microsoft Office Word application/msword (doc, docx) 6 Microsoft Office PowerPoint application/vnd.ms-powerpoint (ppt, pptx) 7 Microsoft Office Excel application/vnd.ms-excel (xls, xlsx) 8 ZIP アーカイブ application/zip (zip) テキストを 抽 出 することができるファイルフォーマット 一 覧 6.2.2 テキストを 抽 出 する 際 の 制 限 事 項 以 下 に それぞれのファイルフォーマットごとの テキストを 抽 出 する 際 の 制 限 事 項 を 述 べます プレーンテキスト API では プレーンテキストファイル 内 のテキストの 文 字 コードを 統 計 的 手 法 により 自 動 的 に 判 別 します しかし 短 いテキストしか 含 まれていないファイルや 複 数 の 文 字 コードが 混 在 しているファイル 等 につい ては 文 字 コードを 正 しく 判 別 できないことがあります この 場 合 ファイルから 抽 出 されたテキストは 文 字 化 けしたものになります Page 26 Copyright 2000-2009 株 式 会 社 NTT データ イントラマート All rights Reserved.

6 API 使 用 上 の 注 意 点 HTML API では HTML 内 の 以 下 の 部 分 から テキストを 抽 出 します HEAD 要 素 内 の TITLE 要 素 に 含 まれるテキスト BODY 要 素 に 含 まれるテキスト またAPIでは HTML の 文 字 コードを まず META タグで 指 定 された content-type を 探 すことによって 判 別 しようと 試 み それに 失 敗 すると プレーンテキストと 同 じく 統 計 的 手 法 により 判 別 を 試 みます 文 字 コードを 正 しく 判 別 できなかった 場 合 ファイルから 抽 出 されたテキストは 文 字 化 けしたものになりま す XML API では XML 内 の 全 てのテキストノードを 抽 出 します PDF APIでは 設 定 ファイル(ServerManager/conf/solr-config.xml)による 指 定 に 応 じて 以 下 のいずれかを 用 いてPDFからテキストを 抽 出 します 1. PDFBox (http://incubator.apache.org/pdfbox/) 2. Xpdf (http://www.foolabs.com/xpdf/) 付 属 のコマンド pdftotext 3. フリーウェア xdoc2txt (http://www31.ocn.ne.jp/~h_ishida/xdoc2txt.html) 1.のPDFBoxを 用 いる 場 合 日 本 語 が 含 まれるPDFから 正 しくテキストを 抽 出 できないことがあります 2.のpdftotextコマンドを 用 いる 場 合 IM-ContentsSearchクライアントが 動 作 しているマシン 上 に Xpdfがイ ンストールされ pdftotextコマンドが 正 常 に 動 作 する 環 境 が 整 っている 必 要 があります 3.のxdoc2txtを 用 いる 場 合 xdoc2txt.exeがインストールされ 正 常 に 動 作 する 環 境 が 整 っている 必 要 があ ります また xdoc2txt.exeは Microsoft Windowsでしか 動 作 しません 1.,2.,3.のいずれを 用 いる 場 合 であっても パスワードつきで 暗 号 化 されたPDFファイル(PDFビューワで 開 く 際 に パスワードを 要 求 されるPDFファイル)からテキストを 抽 出 することはできません Microsoft Office Word APIでは 設 定 ファイルの 指 定 に 応 じて 以 下 のいずれかを 用 いて Wordファイルからテキストを 抽 出 しま す 1. Apache POI (http://poi.apache.org/) 2. xdoc2txt 1.のApache POIを 用 いる 場 合 Office Open XML 形 式 のファイル( 拡 張 子 docx)から テキストを 抽 出 するこ とはできません Office 2003 までのWordファイル( 拡 張 子 doc)からテキストを 抽 出 することは 可 能 です 2.のxdoc2txtは Office 2003 までのWordファイル Office Open XML 形 式 のファイルのいずれからも テキ ストを 抽 出 できます ただし Office Open XML 形 式 のファイルからテキストを 抽 出 するためには 添 付 ファイルの 名 前 に 含 まれ る 拡 張 子 が docx でなければいけません 添 付 ファイルの 名 前 とは jp.co.nttdata.intra_mart.solr.model.inputdocument インターフェースのaddDocument メソッドにおけ 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 27

intra-mart IM-ContentsSearch プログラミングガイド る name パラメータを 指 します なお 2.を 用 いる 場 合 xdoc2txt.exeがインストールされ 正 常 に 動 作 す る 環 境 が 整 っている 必 要 があります また xdoc2txt.exeは Microsoft Windowsでしか 動 作 しません 1., 2.のいずれを 用 いる 場 合 であっても パスワードで 保 護 されたWordファイルからテキストを 抽 出 すること はできません Microsoft Office PowerPoint API では 設 定 ファイルの 指 定 に 応 じて 以 下 のいずれかを 用 いて PowerPoint ファイルからテキストを 抽 出 します 1. Apache POI 2. xdoc2txt 1.の Apache POI を 用 いる 場 合 Office Open XML 形 式 のファイル( 拡 張 子 pptx)から テキストを 抽 出 する ことはできません Office 2003 までの PowerPoint ファイル( 拡 張 子 ppt)からテキストを 抽 出 することは 可 能 です 2.の xdoc2txt は Office 2003 までの PowerPoint ファイル Office Open XML 形 式 のファイルのいずれから も テキストを 抽 出 できます ただし Office Open XML 形 式 のファイルからテキストを 抽 出 するためには 添 付 ファイルの 名 前 に 含 まれる 拡 張 子 が pptx でなければいけません 添 付 ファイルの 名 前 とは jp.co.nttdata.intra_mart.solr.model.inputdocument インターフェースの adddocument メソッドにおける name パラメータを 指 します なお 2.を 用 いる 場 合 xdoc2txt.exe がインス トールされ 正 常 に 動 作 する 環 境 が 整 っている 必 要 があります また xdoc2txt.exe は Microsoft Windows でしか 動 作 しません 1., 2.のいずれを 用 いる 場 合 であっても パスワードで 保 護 された PowerPoint ファイルからテキストを 抽 出 す ることはできません Microsoft Office Excel API では 設 定 ファイルの 指 定 に 応 じて 以 下 のいずれかを 用 いて Excel ファイルからテキストを 抽 出 しま す 1. Apache POI 2. xdoc2txt 1.の Apache POI を 用 いる 場 合 Office Open XML 形 式 のファイル( 拡 張 子 xlsx)から テキストを 抽 出 する ことはできません Office 2003 までの Excel ファイル( 拡 張 子 xls)からテキストを 抽 出 することは 可 能 です 2.の xdoc2txt は Office 2003 までの Excel ファイル Office Open XML 形 式 のファイルのいずれからも テキストを 抽 出 できます ただし Office Open XML 形 式 のファイルからテキストを 抽 出 するためには 添 付 ファイルの 名 前 に 含 まれる 拡 張 子 が xlsx でなければいけません 添 付 ファイルの 名 前 とは jp.co.nttdata.intra_mart.solr.model.inputdocument インターフェースの adddocument メソッドにおける name パラメータを 指 します なお 2.を 用 いる 場 合 xdoc2txt.exe がイン ストールされ 正 常 に 動 作 する 環 境 が 整 っている 必 要 があります また xdoc2txt.exe は Microsoft Windows でしか 動 作 しません Page 28 Copyright 2000-2009 株 式 会 社 NTT データ イントラマート All rights Reserved.

6 API 使 用 上 の 注 意 点 1., 2.のいずれを 用 いる 場 合 であっても パスワードで 保 護 された Excel ファイルからテキストを 抽 出 すること はできません Zip アーカイブ nd_solrclient は ZIP アーカイブ 内 に 含 まれる 各 ファイルから テキストを 抽 出 します また 同 時 に 各 ファ イルの 名 前 自 体 も 抽 出 したテキストに 加 えます ZIP アーカイブ 内 のファイルの 名 前 は Windows-31J(いわゆる Shift_JIS)によりエンコードされ ZIP に 記 録 されているものとみなされます 日 本 語 Windows で 作 成 された ZIP ファイルでは この 仮 定 はほぼ 正 しいものです もし ZIP アーカイブ 内 のファイル 名 が Windows-31J でエンコードされていない 場 合 抽 出 されたテキスト に 文 字 化 けが 発 生 します ただし 文 字 化 けが 発 生 するのは ファイル 名 部 分 のみであり ファイルの 内 容 から 抽 出 されたテキストについては 影 響 がありません ZIP ファイルに 暗 号 化 されたファイルが 含 まれている 場 合 APIでは そのファイルの 名 前 のみを テキス トとして 抽 出 します なお 暗 号 化 されているかどうかを 判 別 できるのは ZIP 2.0 互 換 のアーカイブフォー マットのみです Windows が 作 成 する ZIP フォルダは 一 般 にこのフォーマットと 互 換 性 を 持 っています 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 29

intra-mart IM-ContentsSearch プログラミングガイド 7 サンプルプログラム 標 準 で 提 供 している 以 下 のプログラムでは 実 際 に IntramartSolrManager クラスを 使 用 して 文 書 の 登 録 または 検 索 処 理 を 行 っています ソースコードは 弊 社 製 品 最 新 情 報 ダウンロードページ(http://www.intra-mart.jp/download/product/index.html)か ら 入 手 することができます 機 能 名 処 理 内 容 パッケージ ワークフロー クローラ 文 書 の 登 録 % im_solr-src.zip % jp.co.intra_mart.foundation.solr.crawler.bpw.* 全 文 検 索 画 面 文 書 の 検 索 % im_solr-src.zip % jp.co.intra_mart.foundation.solr.search.* ワークフロー テンプレート ワークフロー 文 書 の 業 務 テンプレート doc/imart/solr/search/template/bpw_template.jsp Page 30 Copyright 2000-2009 株 式 会 社 NTT データ イントラマート All rights Reserved.

intra-mart WebPlatform/AppFramework Ver.7.1 IM-ContentsSearch プログラミングガイド 2009/11/30 第 2 版 Copyright 2000-2009 株 式 会 社 NTT データ イントラマート All rights Reserved. TEL: 03-5549-2821 FAX: 03-5549-2816 E-MAIL: info@intra-mart.jp URL: http://www.intra-mart.jp/