Interstage Shunsaku Data Manager アプリケーション開発ガイド - Microsoft(R) Windows(R) 2000/ Microsoft(R) Windows Server(TM) 2003 - - UNIX共通 -
目次 索引 前ページ次ページ

第1部 アプリケーション開発の基本> 第3章 データを検索する方法> 3.2 文字列で検索する> 3.2.1 キーワードを含む文書を検索する

3.2.1.2 キーワードの指定形式と検索方法

キーワードの指定形式には、大きく分けて以下の3つがあります。

◆文字列検

ある文字列を含む文書を検索します。文字列検索では、改行などの検索対象ではない文字は無視して検索することができます。

なお、検索対象外として取り扱う文字は、SkipCharで変更することができます。

SkipCharの詳細については、“導入・運用ガイド”の“システム用動作環境ファイルの実行パラメタ”および“director用動作環境ファイルの実行パラメタ”を参照してください。

◆ワード検

英文のXML文書を対象として検索します。単語の区切り文字を意識して検索することができます。

なお、単語の区切り文字は、SeparateCharで変更することができます。

SeparateCharの詳細については、“導入・運用ガイド”の“システム用動作環境ファイルの実行パラメタ”および“director用動作環境ファイルの実行パラメタ”を参照してください。

◆論理演算検

“文字列検索”および“ワード検索”を複数組み合わせて検索することができます。

キーワードに、より詳細な検索条件を指定する形式のことをパターンと呼びます。パターンを使った検索をパターン検索と呼びます。パターンによる検索の詳細については、“B.3.4 パターン”を参照してください。

キーワードの指定形式と検索方法について以下の表に示します。

[表:キーワードの指定形式と検索方法の一覧]

指定形式

検索方法

文字列検索

文字列一致指定検索

前方一致指定検索

後方一致指定検索

任意文字指定検索

文字間隔指定検索

部分文字指定検索

文字範囲指定検索

数値範囲指定検索

ワード検索

ワード一致指定検索

ワード間隔指定検索

論理演算検索

論理積指定検索

論理和指定検索

否定指定検索

文字列一致指定検

検索したいキーワードを含む文書を検索することができます。

文字列一致指定検索の詳細については、“B.3.4 パターン”の“文字列一致指定”を参照してください。

出張目的(purpose)の中に“V7.0L10”というキーワードを含む文書を検索します。
/doc/detail/purpose = 'V7\.0L10'

結果:文書Bが返却されます。

“\”は“.”を検索するためのエスケープ文です。
エスケープ文字の詳細については、“B.3.1 条件式”を参照してください。

前方一致指定検

検索したいキーワードから始まる文書を検索することができます。

前方一致指定検索の詳細については、“B.3.4 パターン”の“前方一致指定”を参照してください。

出張目的(purpose)が“Interstage”というキーワードから始まる文書を検索します。
/doc/detail/purpose = '^Interstage'

結果:文書Aと文書Cが返却されます。

後方一致指定検

検索したいキーワードで終わる文書を検索することができます。

後方一致指定検索の詳細については、“B.3.4 パターン”の“後方一致指定”を参照してください。

出張先(destination)が“支店”というキーワードで終わる文書を検索します。
/doc/detail/destination = '支店$'

結果:文書Bが返却されます。

“前方一致指定検索”および“後方一致指定検索”を組み合わせることによって、要素ノードの文字列が、指定したキーワードと完全に一致する文書を検索することができます。

例1

出張先(destination)が“大阪支店”というキーワードのみの文書を検索します。
/doc/detail/destination = '^大阪支店$'

結果:文書Bが返却されます。

例2

宿泊費(hotel)が空文字“”の文書を検索します。
/doc/detail/hotel = '^$'

結果:文書Bと文書Cが返却されます。

任意文字指定検

検索したい2つのキーワードが、任意の文字の前後に存在する文書を検索することができます。

任意文字指定検索の詳細については、“B.3.4 パターン”の“任意文字指定”を参照してください。

例1

詳細情報(detail)配下のどこかに、“販売”と“会議”の間に0文字以上の文字が存在するキーワードを含む文書を検索します。
/doc/detail/* = '販売.*会議'

結果:文書Aと文書Cが返却されます。

例2

詳細情報(detail)配下のどこかに、“販売”と“会議”の間に2文字の文字が存在するキーワードを含む文書を検索します。
/doc/detail/* = '販売..会議'

結果:文書Aが返却されます。文書Cのコメント(comment)中の“販売会議”はキーワード間の文字数が2文字ではないため、文書Cは返却されません。

文字間隔指定検

検索したい2つのキーワードの間に、指定した文字数以内の文字が存在する文書を検索することができます。

文字間隔指定検索の詳細については、“B.3.4 パターン”の“文字間隔指定”を参照してください。

出張目的(purpose)の中に“Interstage”と“会議”の間の文字数が2文字以内のキーワードを含む文書を検索します。
/doc/detail/purpose = 'Interstage,2C,会議'

結果:文書Cが返却されます。文書Aはキーワード間の文字数が3文字以上であるため返却されません。

部分文字指定検

検索したい2つのキーワードの間に、指定した文字列のいずれかを含む文書を検索することができます。

部分文字指定検索の詳細については、“B.3.4 パターン”の“部分文字指定”を参照してください。

出張エリア(area)に“東京都千代田区”または“東京都港区”というキーワードを含む文書を検索します。
/doc/detail/destination/@area = '東京都(千代田|港)区'

結果:文書Aが返却されます。

文字範囲指定検

検索したいキーワードの一部の文字が、指定した範囲の文字である文字列を含む文書を検索することができます。

文字範囲指定検索の詳細については、“B.3.4 パターン”の“文字範囲指定”を参照してください。

分類(classification)に“Area-A”、“Area-B”または“Area-C”というキーワードを含む文書を検索します。
/doc/basic/classification = 'Area\-[A-C]'

結果:文書A、文書Bおよび文書Cが返却されます。

この例では、“部分文字指定検索”で、“Area\-(A|B|C)”と記述するのと同じです。

数値範囲指定検

検索したいキーワードの一部の文字が、指定した範囲の数値である文字列のいずれかを含む文書を検索することができます。

数値範囲指定検索の詳細については、“B.3.4 パターン”の“数値範囲指定”を参照してください。

出張レポート(report)に“検索レスポンス1秒”、“検索レスポンス2秒”、“検索レスポンス3秒”、…、“検索レスポンス11秒”または“検索レスポンス12秒” というキーワードを含む文書を検索します。
/doc/report = '検索レスポンス[1,12]秒'

結果:文書Aが返却されます。

この例では、“部分文字指定検索”で、“検索レスポンス(1|2|3|…|11|12)秒”と記述するのと同じです。

数値範囲指定検索を行う場合は、数値の前後に文字を指定してください。たとえば、“検索レスポンス[1,12]”で検索すると、文書Bの“検索レスポンス18秒”に1が含まれるため返却されます。

ワード一致指定検

検索したい単語を含む文書を検索することができます。

ワード検索の場合は、空白などの区切り文字で区切られた文字列を、キーワードと識別して、単語単位の検索をします。

ワード一致指定検索の詳細については、“B.3.4 パターン”の“ワード一致指定”を参照してください。

英文レポート(reportE)に“Manager”というキーワードを含む文書を検索します。
/doc/reportE = '\<Manager\>'

結果:文書Aが返却されます。

キーワードを連続して記述することで、連続した単語(フレーズ)を含む文書を検索することができます。

英文レポート(reportE)に“IT Department of Company A”というキーワードを含む文書を検索します。
/doc/reportE = '\<IT\>\<Department\>\<of\>\<Company\>\<A\>'

結果:文書Aが返却されます。

ワード間隔指定検

検索したい2つのキーワードの間に、指定した単語数以内の任意の単語が入ったフレーズを含む文書を検索することができます。

ワード間隔指定検索の詳細については、“B.3.4 パターン”の“ワード間隔指定”を参照してください。

英文レポート(reportE)に“response”という単語で始まり、“seconds”という単語で終わる、途中に5つ以内の単語が入ったフレーズを含む文書を検索します。
/doc/reportE = '\<response\>,5W,\<seconds\>'

結果:文書Aと文書Bが返却されます。

論理積指定検

パス式で指定した要素ノードの文字列が、複数指定したすべての条件と一致する文書を検索することができます。

論理積指定検索の詳細については、“B.3.4 パターン”の“論理積”を参照してください。

例1

コメント(comment)が“販売会議”というキーワードから始まり、かつ、“検証”というキーワードを含む文書を検索します。
/doc/detail/comment = '^販売会議&検証'

結果:文書Cが返却されます。

例2

詳細情報(detail)配下のどこかに、“Interstage”というキーワードを含み、かつ、“販売”と“会議”の間の文字数が2文字以内のキーワードを含む文書を検索します。
/doc/detail// = 'Interstage&販売,2C,会議'

結果:文書Aと文書Cが返却されます。

下記のように“AND”を使用しても例2と同じ検索をすることができます。

/doc/detail// = 'Interstage' AND /doc/detail// = '販売,2C,会議'

結果:文書Aと文書Cが返却されます。

論理和指定検

パス式で指定した要素ノードの文字列が、指定したいずれかの条件と一致する文書を検索することができます。

論理和指定検索の詳細については、“B.3.4 パターン”の“論理和”を参照してください。

出張エリア(area)に“大阪府大阪市”、“大阪府堺市”または“神奈川県”というキーワードを含む文書を検索します。
/doc/detail/destination/@area = '大阪府(大阪|堺)市|神奈川県'

結果:文書Bと文書Cが返却されます。

否定指定検

指定した条件に一致しない文書を検索することができます。

否定指定検索の詳細については、“B.3.4 パターン”の“否定”を参照してください。

例1

出張先(destination)に“本社”を含まない文書を検索します。
/doc/detail/destination = '~(本社)'

結果:文書Aと文書Bが返却されます。

例2

出張エリア(area)に“東京都”を含み、“港区”を含まない文書を検索します。
/doc/detail/destination/@area = '東京都&~(港区)'

結果:文書Aが返却されます。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006