検索の統合
メタデータの検索
コンテンツ管理では、メタデータ検索と全文検索をサポートします。この章では、公開およびバージョン化メタデータの検索について説明しています。公開済みコンテンツは、ライブラリ サービスが無効になっているリポジトリからのコンテンツまたはワークフローを完了し、公開済み状態のコンテンツです。バージョン化コンテンツは、ライブラリ サービスが有効化になっているリポジトリ内のまだ公開されていないコンテンツです。公開済みコンテンツを検索すると、Nodes を返し、非公開コンテンツを検索すると、Versions を返します。ライブラリ サービスの有効化の詳細については、『コンテンツ管理ガイド』の「WLP リポジトリに対するライブラリ サービスの有効化」を参照してください。
| 注意 : |
バージョン化コンテンツの検索および公開済みコンテンツの検索は、これらの検索タイプは異なる API を使用するので、同時に適用できません。公開済みコンテンツを検索するには、ISearchManager.search およびバージョンされるコンテンツを検索するには、IVersionManager.search を使用します。これは、データを返すために、検索クエリが、異なるデータ ソースに送信されることを意味します。 |
この章の内容は以下のとおりです。
はじめに
メタデータ検索機能は、コンテンツ式言語を使用します。公開済みコンテンツおよびバージョン化コンテンツのメタデータを検索するときは、異なるプロパティを使用します。相違点について、関連する節で説明します。サポート対象のプロパティの完全なリストは、WebLogic Portal
Javadoc の com.bea.content.expression にあります。
公開済みコンテンツでのメタデータの検索
この章では、公開されたコンテンツでのメタデータの検索について説明しています。以下の節では、詳しく説明します。
プロパティ
以下の表は、一般的に使用されるプロパティおよび演算子について説明しています。サポート対象のプロパティの完全なリストは、WebLogic Portal
Javadoc の com.bea.content.expression にあります。
表 5-1 システム プロパティ
|
|
|
|
|
コンテンツ項目への仮想コンテンツ リポジトリのパス。 cm_path = 'WLP Repository/books/Ulysses'
|
|
|
コンテンツ項目のユニークな ID。 cm_uid = '0003456'
|
|
|
コンテンツ項目の親の ID。 cm_parent_uid = '87543'
|
|
|
コンテンツ項目の作成者。 cm_createdBy = 'jjoyce'
|
|
|
コンテンツ項目を最終変更した日付。 cm_modifiedDate = '04/01/2008'
|
|
|
コンテンツ項目の名前。 cm_nodeName != 'abc'
|
|
|
|
|
|
|
|
|
コンテンツ項目に関連するコンテンツ タイプ。 cm_objectClass = 'simpleType'
|
|
|
コンテンツ項目のバイナリ値のファイル名。 cm_binaryName = 'foo.gif'
|
|
|
コンテンツ項目のバイナリ値のサイズ。(バイト単位) cm_binarySize = '188'
|
|
|
コンテンツ項目バイナリ プロパティの MIME タイプ。 cm_contentType = 'image/gif'
|
|
|
特定のオブジェクト クラスのすべてのインスタンスとそのすべての子を検索する。 cm_objectClassInstance = 'Product'
|
|
|
特定な値の任意のノードのプロパティ値を検出する。 cm_value = 'red'
|
表 5-2 演算子
|
|
|
|
|
|
|
|
テキスト構文の「like」 (大文字と小文字の区別がない) 演算子。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
テキスト構文の「Greater Than」演算子。
|
|
|
|
|
|
|
|
|
テキスト構文の「contains all」演算子。
|
|
|
テキスト構文の「contains any」演算子。
|
toProperty('<propertyName>')
|
スペース、バックスラッシュなどのプロパティ名の特殊文字で使用します。
|
表 5-3 ワイルドカード
|
|
|
|
|
|
|
cm_NodeName like “ab*” は、「abcde」、「ab」、「ab234」、「abc」などに一致します。
|
|
|
|
cm_nodeName like “ab_” は、「abc」、「abd」、「ab2」などに一致します。
|
Search オブジェクト
com.bea.content.search オブジェクトを使用してコンテンツ リポジトリのメタデータを検索できます。検索オブジェクトは、API がプロセスする式を取得し、com.bea.content.Node オブジェクトとして検索結果を返します。コード リスト 5-1 は、単純な検索の例です。
検索マネージャ API は、idSearch のような検索の他のタイプもサポートします。詳細については、WebLogic Portal
Javadoc を参照してください。
制限
WLP リポジトリを使用する場合、暗黙的なプロパティの検索結果をソートできません。返されるデータをソートするには、ISearchManager API にある postSearchSort を使用する必要があります。このメソッドは、search.setSortCriteria メソッドを使用するネイティブはソートより時間がかかります。
サンプル
検索でサポートされる式言語は、簡単で使いやすい文法に基づきます。さまざまな処理がサポートされ、ネストされた式を使用して複雑なクエリを簡単に構築することができます。式言語でサポート対象の文字列、日付、数値およびブールなどのさまざまなデータ型の詳細については、WebLogic Portal
Javadoc を参照してください。
表 5-4 サンプル
|
|
|
|
|
「hello」に一致する名前のすべてのノードを返します。
|
cm_nodeName = 'hello' || cm_nodeName = 'world'
|
「hello」または「world」という名前があるノード名を検索します。
|
cm_nodeName = 'hello' && city = 'boston'
|
「hello」の名前および「boston」の市名があるノード名を検索します。
|
cm_nodeName = 'hello' && (color = 'red' || color = 'blue')
|
ネストされた式を検索する場合、 ( および ) ブラケットを使用します。ネストでは、評価の左から右への順序を従います。この式は、「hello」という名前および「red」または「blue」カラー プロパティがあるすべてのノードを検索します。
|
|
|
cm_nodeName = 'hello' && ( (city = 'boston' || city = 'boulder' ) && (color = 'red') )
|
「hello」という名前、「red」または「blue」カラー プロパティおよび「boulder」または「boston」市プロパティがある任意のノードを検索します。
|
!(cm_nodeName = 'hello' && city = 'boston')
|
否定の ! 演算子は逆結果を返します。この例では、「hello」という名前および「boston」市名を持たないすべてのノードを返します。
|
バージョン化コンテンツでのメタデータの検索
この章では、バージョン化コンテンツでのメタデータの検索について説明しています。節の内容は以下のとおりです。
バージョンの特定のプロパティ
|
|
|
|
|
コンテンツのバージョン番号。 cm_version = '6'
|
|
|
バージョンへの変更を説明するテキスト。 cm_versionComment = 'Updates from Marketing'
|
|
|
バージョンをチェックアウトしました。 cm_checkedOut = 'false'
|
|
|
ノードが割り当てられているユーザ。 cm_assignedToUser = 'rjordan'
|
|
|
ノードが割り当てられているロール。 cm_role = 'Admin'
|
|
|
コンテンツの最新のバージョン。 cm_latestVersion = 'true'
|
制限
バージョン化データを保存するテーブルは、公開済みデータを保存するデータより異なるデータ ストアにあるので、バージョン化コンテンツの検索にはいくつかの制限があります。SQL クエリで公開済みおよびバージョン化メタデータの両方を検索できないことを意味します。したがって、バージョン化コンテンツを検索する時、プロパティの一部はサポートされません。サポートしないプロパティの一覧は以下のとおりです。
cm_isContent
cm_isHierarchy
cm_objectClass
cm_path
cm_createdBy
cm_objectClassInstance
cm_parent_uid
cm_createdDate
検索オブジェクトをバージョン化システム検索に使用する場合、setSearthPaths を使用して Search オブジェクトで設定したパースは、エラーを送出します。
バージョン化コンテンツの検索および公開済みコンテンツの検索は、これらの検索タイプは異なる API を使用するので、同時に適用できません。
サポート対象の属性
バージョン化コンテンツの検索では、特徴を保存する属性は以下のとおりです。
表 5-5 バージョン化コンテンツの検索のサポート対象の属性
|
|
|
|
|
|
|
|
|
|
|
|
|
|
任意のワークフロー状態でのノードを検索する。たとえば、 cm_lifeCycleStatus = '3' (承認準備完了)。
|
サンプル
表 5-6 に、バージョン化コンテンツ (ワークフローに使用するコンテンツ) の検索例をいくつか示します。
表 5-6 バージョン化コンテンツの検索
|
|
|
name = 'matt' && (age = 33 || age = 13)
|
名前が「matt」および年齢が「13」または「33」に一致するノード バージョンを返します。
|
cm_version = '1' && city = 'calcutta'
|
ノードの最初のバージョンおよび市が「calcutta」であるノードを返します。
|
cm_versionComment = 'DevUpdates' && product = 'portal'
|
「portal」製品の「DevUpdates」に等しいコメントのノード バージョンを返します。
|
cm_modifiedBy = 'weblogic' && product = 'portal'
|
「portal」製品用「weblogic」で変更されるノードバージョンを検索します。
|
cm_lifeCycleStatus > 0 && article = 'development'
|
任意のワークフロー状態にある、「development」アーティクルがあるノード バージョンを返します。
|
cm_nodeName = 'matt_2' && city = 'calcutta'
|
名前は「matt_2」、および市名は「calcutta」に一致するノードバージョンを返します。
|
|
|
チェックアウトしたノード バージョンを検索します。
|
cm_assignedToUser != null
|
ユーザに割り当てられるバージョン化ノードを返します。
|
cm_value > 30 || cm_binaryName = null
|
「30」より大きい値がある、またはバイナリ値のファイル名は不明なまたは未定義である任意のプロパティのノード バージョンを検索します。
|
cm_role in ('weblogic','Admin') && cm_value > 30
|
「weblogic」および「Admin」にロールがあり、「30」より大きい値を持つプロパティがあるノード バージョンを検索します。
|
|
|
バージョン番号が「5」のノードバージョンを返します。
|
age > 10 && (city in ('calcutta','boulder') || cm_role = 'Admin')
|
年齢の値が「10」より大きく、市が「calcutta」および「boulder」である、またはロールが「Admin」に割り当てられたノード バージョンを検索します。
|
cm_uid = '2051' && city = 'boulder'
|
ノード ID が「2051」で、「boulder」市のあるノード バージョンを検索します。
|
cm_nodeName = 'foo' && cm_latestVersion = true
|
「foo」という名前のノードの最新のバージョンを返します。
|