機械翻訳について

コンテンツ検索にREST APIを使用

Oracle Content Management REST APIでは、/itemsリソースに送信された検索問合せに一致するアイテムをフェッチすることで、公開または管理されたコンテンツ(コンテンツ・アイテムおよびデジタル・アセット)を検索できます。

検索問合せ演算子

検索問合せスコープ

  • /content/published/api/v1.1/items

    「コンテンツ配信用のREST API」の検索問合せスコープは、チャネル・トークンで指定される公開ターゲットです。 チャネル・トークンは、問合せパラメータまたはリクエスト・ヘッダーのいずれかとして提供する必要があります。

  • /content/management/api/v1.1/items

    検索問合せスコープは、APIクライアント・ユーザーに付与される編集権限によって制御されます。 検索問合せは、リポジトリ・メンバーシップとその中のアセットに対する詳細な編集権限に基づいて、ユーザーが表示できるアイテムのみをフェッチします。

Content DeliveryのREST APIへのリクエストに対して選択した公開ターゲットがセキュアである場合(つまり、アセットがセキュアな公開チャネルに公開されている場合)、送信する検索リクエストでは認可にOAuthを使用する必要があります。 コンテンツ管理のためのREST APIに送信する検索リクエストには、認可にOAuthを使用する必要があります。

問合せ式の検索

コンテンツ管理のREST APIおよびコンテンツ配信のREST APIでのアイテム検索では、問合せパラメータが共有され、検索問合せ式の作成に同じ構文が使用されます。 したがって、1つの用語として、検索APIは、REST APIのいずれかでアイテム検索を参照するために使用されます。

検索APIを使用すると、/itemsリソースに送信されるリクエストで、検索問合せ式をqパラメータの値として指定できます。 検索問合せ式の構文では、照合条件(eq, ne, coswなど)とANDORおよび()演算子を定義するための様々な演算子がサポートされており、1つのアセット・タイプ内または複数のタイプ間で照合する複雑な問合せ式に照合条件を組み合せることができます。 追加の検索問合せリクエスト・パラメータを使用すると、フェッチする一致アイテムの数、一致するアイテムのページ区切りおよびソート方法、一致するアイテムに対して返されるデータ・フィールドを制御できます。 検索範囲および式に関係なく、APIが一致するアイテムを返すことができる最大ページ・サイズは500に制限されることに注意してください。

「検索APIでは、2つの汎用的な検索問合せ形式がサポートされています」
  • アセット・タイプ内の問合せ: 問合せ式ではアセット・タイプを指定する必要があります。問合せ条件では、このタイプの標準データ・フィールドとユーザー定義データ・フィールドの両方への参照が許可されます。

    例えば: /api/v1.1/items?q=(type eq "Employee" AND fields.role eq "Senior Developer") ここでは、ロールは「従業員」型のフィールドです。

  • アセット・タイプの問合せ : 問合せ式の定式化方法に応じて、Search APIは次の2種類のクロス・タイプ問合せをサポートしています:
    • 標準フィールドに対するグローバル問合せ: 問合せ式では、カッコ()を使用して複数のアセット・タイプを指定することも、タイプを指定することもできません。 このような問合せは、問合せ条件でのみ標準フィールドを参照できるグローバル(未入力)問合せとして処理されます。

      例えば: /api/v1.1/items?q=(name eq "John" or description co "John" and (type eq "t1" or type eq "t2"))

    • 特定のタイプの問合せ: 問合せ式では、中カッコ{}を使用して複数のアセット・タイプを指定できます。 このような問合せは、問合せ条件で標準フィールドとユーザー定義フィールドの両方を参照できるため、指定されたアセット・タイプにわたる汎用問合せとして処理されます。 詳細は、「複数のタイプの検索」を参照してください。

      たとえば: /api/v1.1/items?q=(name eq "John" and {type eq "t1" and fields.ud1 eq "ud1val"} or {type eq "t2" and fields.ud2 eq "ud2val"}

「アセット・タイプでサポートされている標準データ・フィールド」
  • 管理API:

    id, type, name, description, typeCategory, slug, translatable, language, createdBy, createdDate, updatedBy, updatedDate, repositoryId, channels, collections, status, tags, isPublished, languageIsMaster, taxonomies

  • 配信APIの場合:

    id, type, name, description, typeCategory, slug, translatable, language, createdDate, updatedDate, taxonomies

どちらの検索問合せフォームでも標準フィールドを使用して問合せを行う場合、様々なデータ・フィールドは異なる方法で処理されます:
データ・フィールド データ型
name, description, type, typeCategory, slug, language, status textデータ型(単一値)
id, repositoryId reference (単一値)
createdDate, updatedDate datetime (単一値)
translatable,isPublished, languageIsMaster boolean (単一値)
collections, channels, tags, taxonomies, suggestedTaxonomies referenceデータ型(複数値)

いずれかの検索問合せフォームでは、リクエスト時に問合せパラメータdefaultを使用して一致基準を指定することで、任意の場所(つまり、標準またはユーザー定義のデータ・フィールドとの照合)でアイテムを照合して検索できます。 このような条件は、集計テキスト・データとして索引付けされているすべてのフィールドのアイテムの値と一致する汎用問合せとして扱われます。 たとえば:

  • /api/v1.1/items?default="coffee"
  • /api/v1.1/items?q=(type eq "Employee")&default="senior"

次の詳細を参照してください:

「ストップ・ワード(検索で除外される単語)」

次の英語のストップ・ワードは、デフォルト検索および入力されたanyField検索で除外されます:

a, an, and, are, as, at, be, but, by, for, if, in, into, is, it, no, not, of, on, or,such, that, the, their, then, there, these, they, this, to, was, will, with.

検索演算子

REST API for Content ManagementまたはREST API for Content Deliveryの検索では、豊富な演算子セットを使用して検索問合せ式を作成し、フィールド一致条件に加えて、ANDORおよび () 演算子を定義して、単一のアセット・タイプ内または複数のタイプ間でフィールド値を照合できる複雑な問合せ式に組み合せることができます。 次の表に、検索APIで現在サポートされている検索問合せ演算子を示します。
オペレータ サポートされるデータ型 説明
eq
?q=(name eq "John")
?q=(type eq "DigitalAsset")
?q=(type eq "Employee" and fields.DOB eq "1994/09/26T16:23:45.208")
?q=(type eq "File" and fileextension eq "docx")
?q=(taxonomies.categories.id eq "B9F568DC43C54803AC76012783FA5101")
?q=(taxonomies.categories.name eq "cars")?q=(taxonomies.categories.apiName eq "cars-unique")
?q=(taxonomies.categories.nodes.id eq "B9F568DC43C54803AC76012783FA5101")
?q=(taxonomies.categories.nodes.name eq "cars")?q=(taxonomies.categories.nodes.apiName eq "cars")
?q=(suggestedTaxonomies.categories.id eq "B9F568DC43C54803AC76012783FA5101")
テキスト、参照、数値、10進数、ブール、日時 equals演算子eqは、問合せに指定された正確な値と一致します。 この演算子は、複数値のデータ型には適用されません。 この演算子で指定する値は、標準フィールドを除いて大/小文字が区別されません。 この演算子は、値の特殊文字も考慮します。
ne
?q=(name ne "John")
テキスト、参照、数値、10進数、ブール、日時 not equals演算子neは、問合せに指定された値と一致しないアイテムと一致します。 この演算子は、複数値のデータ型には適用されません。 この演算子で指定する値は、標準フィールドを除いて大/小文字が区別されません。 この演算子は、値の特殊文字も考慮します。 ne演算子は、アセット・タイプ内のユーザー定義フィールドに対する問合せで使用できます。 ただし、クロス・タイプ問合せでは、ユーザー定義フィールドに検索語を含めることはできません。
co
?q=(type eq "Employee" AND name co "john alex")
?q=(type eq "Car" AND fields.features co "manual")
?q=(taxonomies.categories.name co "red")
?q=(taxonomies.categories.nodes.name co "car")
text、reference、number、decimal、datetime、largetext contains演算子coは、基準で指定されたすべての単語に一致します。 語は、値を特殊文字で分割した形式になります。 指定した語のうち1つ以上(この例では、johnまたはalex、あるいはその両方)を含む結果を返します。 この演算子は、検索中に値の特殊文字を考慮しません。

この演算子では、「ストップ・ワード」は検索されません。 この演算子は、単一値属性の場合はtext, largetextに適用できますが、複数値属性の場合は適用可能です。text、reference、number、decimal、datetime、largetext 可能な日時書式を理解するには、「サポートされている日時書式」を参照してください。 この演算子とともに指定した値は、大/小文字が区別されません。

nc
?q=(name nc "john alex")
text、reference、number、decimal、datetime、largetext not contains演算子ncは、同じ基準のco 演算子と一致しないアイテムと一致します。
sw
?q=(type eq "Employee" AND name sw "Joh")
?q=(type eq "Employee" AND fields.city sw "Los")
?q=(taxonomies.categories.name sw "cat")
?q=(taxonomies.categories.nodes.name sw "red")
text starts with演算子swは、フィールド条件で指定された初期文字値のみに一致します。 この演算子は、複数値のデータ型には適用されません。 この演算子とともに指定した値は、大/小文字が区別されません。
ge
?q=(type eq "Employee" AND fields.age ge "40")
?q=(type eq "DigitalAsset" AND updatedDate ge "20171026")
数値、小数点、日時 greater than or equal to演算子geは、数値および日時の値のみに一致します。 可能な日時形式を理解するには、「サポートされている日時書式」を参照してください。 この演算子は、複数値のデータ型には適用されません。
le
?q=(type eq "Employee" AND fields.weight le "60.6")
数値、小数点、日時 less than or equal to演算子leは、数値および日時の値のみに一致します。 可能な日時形式を理解するには、「サポートされている日時書式」を参照してください。 この演算子は、複数値のデータ型には適用されません。
gt
?q=(type eq "Employee" AND fields.age gt "20")
数値、小数点、日時 greater than演算子gt は、数値および日時の値のみに一致します。 可能な日時形式を理解するには、「サポートされている日時書式」を参照してください。 この演算子は、複数値のデータ型には適用されません。
次を実行します
?q=(type eq "Employee" AND fields.age lt "20")
?q=(type eq "Employee" AND createdDate lt "1994/09/26T16:23:45.208")
数値、小数点、日時 less than演算子ltは、数値および日時の値のみに一致します。 可能な日時形式を理解するには、「サポートされている日時書式」を参照してください。 この演算子は、複数値のデータ型には適用されません。
mt
?q=(type eq "Car" AND fields.review mt "petrol 20KMPL")
?q=(type eq "Employee" AND name mt "Jo?n")
?q=(type eq "Employee" AND name mt "Jo*")
?q=(type eq "Employee" AND fields.role mt "senior*")
text, largetext フレーズ問合せまたは近接検索matches演算子mtを使用すると、相互の特定の距離内にある単語を検索できます。 結果は一致率の高い値でソートされます。 問合せの"petrol 20kmpl"条件で指定されている値が、"petrolの燃料の走行速度"で20KMPLを含む可能性のあるコンテンツと一致する必要がある場合、コンテンツ・アイテムの検索に役立ちます。

matches演算子では、ワイルドカード(?または*)を使用して、指定された値内の複数の文字を照合できます。 この演算子は、単一値と複数値の両方のデータ型に適用可能です。 この演算子では、「ストップ・ワード」は検索されません。 この演算子とともに指定した値は、大/小文字が区別されません。 フレーズを完全一致させるには、検索語を二重引用符で囲みます。 囲み二重引用符は、他のすべてのコンテキストで検索語の一部として扱われます。

sm
?q=(type eq "Employee" And fields.city sm "Rome")
text, largetext この演算子smでは、指定した条件のように音が聞こえる値を検索できます - また、ファジィ検索とも呼ばれます。ファジィ検索では、デフォルトで、結果に一致するように最大2つの編集が使用されます。 "Rome"は"Dome"に似ています。 この演算子は、単一値と複数値の両方のデータ型に適用可能です。 この演算子とともに指定した値は、大/小文字が区別されません。
AND
?q=(type eq "Employee" AND name eq "John" AND fields.age ge
    "40")
-NA- AND演算子は、複数の問合せ条件の間にAND条件を配置するために使用できます。 これはORより優先されます。
または
type eq "Employee" AND name eq "John" OR fields.age ge "40"
-NA- OR演算子を使用すると、複数の問合せ条件間にOR条件を配置できます。
( )
?q=(type eq "Employee" AND (name eq "John" AND fields.age ge "40"))
?q=(type eq "Employee" AND ( (name eq "John" AND fields.age ge "40") OR fields.weight
      ge 60))
-NA- カッコで囲んだ演算子()を使用して、基準内の条件をグループ化できます。 これは最も優先され、次にAND、次にORが続きます。

検索問合せ

検索問合せ式を作成するときは、特定の検索問合せでの演算子の使用、または次の表に示す特定のデータ型の使用について、次の詳細を考慮してください。

問合せ 説明
特定の問合せを入力 この問合せでは、常にeq演算子のみが使用されます。eqでは、大/小文字が区別される型名を使用します。 ?q=(type eq "Employee" OR type eq "Address")など、マルチティープ問合せがサポートされていますが、型間の問合せになります。

例: 単一タイプの検索のため、?q=(type eq "Employee" OR type eq "DigitalAsset")がサポートされています。

日付問合せ 日付問合せは、様々な日付書式が関連付けられているため、特別なタイプの問合せです。 オフセットがISO 8901フォーマットで追加されないかぎり、問合せのすべての日時値はUTCタイムゾーンのみであるとみなされます。 問合せ結果は、常にすべての日時フィールドのUTCタイムゾーン書式になります。 データ型がdatetimeのフィールドは、レンジ問合せに演算子ge, gt, le, ltを使用し、一致が等しい場合はeqを使用する必要があります。 「サポートされている日時書式」は、日付問合せで受け入れられる日付 / 日時書式を示します。

例: ge演算子を使用して、manufactureDate (datetime)フィールドで製品を問い合せます。https://{cecsdomain}/content/management/api/v1.1/items?q=(type eq "Product" AND fields.manufactureDate ge "1989-03-26") 指定された日付書式はYYYY-MM-DDです

.
小数値の問合せ 小数値の問合せは小数点以下3桁までサポートされ、残りの桁は無視されます。https://{cecsdomain}/content/management/api/v1.1/items?q=(type eq "Product" AND fields.price ge 425.3214)は、価格が425.321以上であるすべての製品を返します。
大型テキスト・データ型問合せ データ型がlargetextのフィールドは格納されません。 したがって、問合せ結果はその値を返せません。 しかし、フィールド値は問合せ条件で使用できます。
一般問合せ 汎用問合せはデフォルトの検索問合せで、ユーザーがフィールド名または演算子を使用せずに値だけで検索できる場合に使用できます。 内部的には、汎用検索ではco演算子が使用されます。 この問合せはワイルドカード文字をサポートしていません。 この問合せでは、「ストップ・ワード」は検索されません。

例: ?q=(type eq "Employee")&fields=all&default=John これにより、値Johnがフィールド名、説明またはユーザー定義フィールドと一致するEmployeeタイプの検索結果が返されます。

例: ?q=(type eq "Article")&default=skating これにより、値skatingがフィールド名、説明またはユーザー定義フィールドと一致するArticleタイプの検索結果が返されます。

ID問合せ

これは、ID属性を使用する検索問合せです。

例: ?q=(type eq "Employee" AND id eq "COREAF29AC6ACA9644F9836E36C7B558F316") IDの値は問合せ対象のアイテムに属しており、ここでは従業員タイプのIDです。 問合せ式に複数のアイテムIDを含めることができます。

例: ?q=(type eq "Employee" AND (id eq "COREAF29AC6ACA9644F9836E36C7B558F316" OR id eq "COREAF29AC6ACA9644F9836E36C7B558F987"))

カテゴリ問合せ

この問合せは、指定されたカテゴリID、カテゴリ名、カテゴリapiName、カテゴリ・ノードID、カテゴリ・ノード名またはカテゴリ・ノードapiName属性で分類されたアイテムを検索します。

例: ?q=(taxonomies.categories.id eq "9E1A79EE600C4C4BB727FE3E39E95489") taxonomies.categories.idの値は、問合せ対象のアイテムに割り当てられたカテゴリに属します。 問合せ式に複数のカテゴリIDまたは名前を含めることができます。

例: ?q=(taxonomies.categories.name co "cars" OR taxonomies.categories.name sw "red")

例: ?q=(taxonomies.categories.apiName eq "All-furnitures") taxonomies.categories.apiNameの値は、問合せ対象のアイテムに割り当てられたカテゴリに属します。 問合せ式には複数のカテゴリのapiName値を含めることができます。

例: ?q=(taxonomies.categories.nodes.id eq "9E1A79EE600C4C4BB727FE3E39E95489") taxonomies.categories.nodes.idの値は、問合せ対象のアイテムに割り当てられたカテゴリの任意のノードに属します。 問合せ式に複数のカテゴリ・ノードIDまたはノード名を含めることができます。

例: ?q=(taxonomies.categories.nodes.name co "cars" OR taxonomies.categories.nodes.name sw "red")

例: ?q=(taxonomies.categories.nodes.apiName eq "All-furnitures" OR taxonomies.categories.nodes.apiName eq "all-accessories") taxonomies.categories.nodes.apiNameの値は、問合せ対象のアイテムに割り当てられたカテゴリの任意のノードに属します。 問合せ式には、複数のカテゴリ・ノードのapiName値を含めることができます。

推奨カテゴリ問合せ この問合せでは、カテゴリID、否認済ステータスおよび言語を持つ特定のカテゴリに分類できるアイテムが検索されます。 一度にフィルタリングに使用できるカテゴリIDは1つのみで、suggestedTaxonomyでフィルタリングする場合はrepositoryIdが必須です。 デフォルト・ステータスは「拒否されていません」です。 言語が指定されていない場合、すべての言語のアイテムが返されます。

例: ?q=(repositoryId eq "86E125F3D78B409EBF61737636599FE1" AND suggestedTaxonomies.categories.id eq "9E1A79EE600C4C4BB727FE3E39E95489")指定されたリポジトリおよび拒否されていませんの特定のカテゴリIDに対して推奨されているすべての言語のすべてのアイテムをリストします。

例: ?q=(repositoryId eq "86E125F3D78B409EBF61737636599FE1" AND suggestedTaxonomies.categories.id eq "9E1A79EE600C4C4BB727FE3E39E95489" AND suggestedTaxonomies.categories.isRejected eq "false")指定されたリポジトリおよび拒否されていませんの特定のカテゴリIDに対して推奨されているすべての言語のすべてのアイテムをリストします。

例: ?q=(repositoryId eq "86E125F3D78B409EBF61737636599FE1" AND suggestedTaxonomies.categories.id eq "9E1A79EE600C4C4BB727FE3E39E95489" AND suggestedTaxonomies.categories.isRejected eq "false" AND language co "en-US")指定されたリポジトリの特定のカテゴリIDに対して推奨される特定の言語のすべてのアイテムをリストします。

例: ?q=(repositoryId eq "86E125F3D78B409EBF61737636599FE1" AND suggestedTaxonomies.categories.id eq "9E1A79EE600C4C4BB727FE3E39E95489" AND suggestedTaxonomies.categories.isRejected eq "true" AND language co "en-US")指定されたリポジトリの特定のカテゴリIDに対して以前に拒否された、指定された言語のすべてのアイテムをリストします。

ステータス問合せのロック

この問合せでは、ロック済ステータスでアイテムを検索します。

例: ?q=lockInfo.status eq "locked"ロック済ステータスのすべてのアイテムをリストします。

例: ?q=lockInfo.status eq "unlocked"ロック解除済ステータスのすべてのアイテムをリストします。

例: ?q=lockInfo.lockedBy eq "userName"&fields=lockInfo指定したユーザーによってロックされているすべてのアイテムをリストし、結果にロック情報を表示します。

参照フィールド問合せ

この検索問合せは参照属性を使用します。

例: ?q=(type eq "Employee" AND fields.department eq "COREAF29AC6ACA9644F9836E36C7B558F412") 部門の値が部門タイプの品目のIDに属しています。

任意のフィールド問合せでテキストを照合

問合せでは、タイプ内または特定のタイプ間でアセットを検索します。 任意のフィールドおよびバイナリ・ファイルのテキストの検索は、アセットに一致する問合せ構文を使用してサポートされます。 この問合せでは、「ストップ・ワード」は検索されません。

例: ?q=(type eq "Employee" AND (anyField co "John Smith" and fields.address.state eq "CA"))

例: ?q=(type eq "cdt1" AND (anyField co "John Smith" and fields.address.state eq "CA"))

例: ?q=(type eq "DigitalAsset" AND anyField co "John Smith")

問合せ構文でサポートされている問合せ演算子の使用: CO (contains), MT (phrase match), NC (not contains).

ノート:

MT演算子は、anyField問合せで使用して数値または小数フィールドの値を検索することはできません。
バイナリ・ファイル問合せ内のテキストの一致

問合せは、デジタル・アセットのバイナリ・ファイルのテキストと一致するように検索を入力しました。 デジタル・アセット内のバイナリ・ファイルのテキストでの検索は、タイプ内の検索問合せでmetadata.extractedTextパラメータを使用するか、特定のタイプ全体でサポートされます。

例: ?q=(type eq "File" AND metadata.extractedText co "Employee")

例: ?q=({type eq "cdt1" AND metadata.extractedText mt "installed"} or {type eq "cdt2" AND metadata.extractedText mt "installed"})

テキスト・データ型の問合せ構文でサポートされている問合せ演算子の使用: CO (contains), MT (phrase match), NC (not contains).

サポートされている日時書式

次の表に、日付データ・フィールドを使用する問合せ条件で使用するために受け入れられるDATEおよびDATETIME形式を示します:
書式
YYYY-MM-DD 1989-03-26
YYYY/MM/DD 1989/03/26
DD-MM-YYYY 26-03-1989
DD/MM/YYYY 26/03/1989
YYYY-MM-DD''T''hh:mm:ss 1989-03-26T18:32:38
YYYY/MM/DD''T''hh:mm:ss 1989/03/26T18:32:38
DD-MM-YYYY''T''hh:mm:ss 26-03-1989T18:32:38
DD/MM/YYYY''T''hh:mm:ss 26/03/1989T18:32:38
YYYY-MM-DD''T''hh:mm:ss.SSS 1989-03-26T18:32:38.840
YYYY/MM/DD''T''hh:mm:ss.SSS 1989/03/26T18:32:38.840
DD-MM-YYYY''T''hh:mm:ss.SSS 26-03-1989T18:32:38.840
DD/MM/YYYY''T''hh:mm:ss.SSS 26/03/1989T18:32:38.840
YYYY年MM月DD日 19890326
YYYYMMDDhhmmss 19890326183238
YYYYMMDDhhmmssSSS 19880326183238840
YYYY-MM-DD''T''hh:mm:ss.SSS+/-HH:mm 1989-03-26T18:32:38.840+05:30
YYYY-MM-DD''T''hh:mm:ss+/-HH:mm 1989-03-26T18:32:38+05:30

Querytextパラメータで検索

REST API for Documentsでフォルダまたはファイルの検索APIのquerytextパラメータを使用して、文字列検索、タグ検索およびカスタム・メタデータ・フィールド検索を同時に利用できます。

querytext検索文字列は、検索フォルダまたはファイル、および検索フォルダまたは特定のフォルダIDのファイルのエンドポイントで使用でき、フォルダまたはファイル名と一致し、タグ検索またはカスタム・メタデータ・フィールド検索も可能です。 querytextを使用すると、自宅(self)ディレクトリ内のディレクトリ・ツリー全体と共有フォルダを検索できます。

querytextをREST APIで検索するように設定するには:

  1. ファイルとフォルダを作成し、文字列検索のためにそれらにタグを追加します。

    現在サポートされているタグはCONTAINSのみです。

    1. タグは親フォルダから継承されるため、各タグを配置する場所を計画します。

    2. 次のAPIを使用して、タグの設定、タグの追加、またはタグの削除: フォルダ・タグの設定、フォルダ・タグの編集、ファイル・タグの設定、ファイル・タグの編集

  2. メタデータ・コレクションを追加します。

    1. 管理者は、グローバル・コレクションを作成します(個人コレクションはインデックス・コレクションとしてサポートされていません)。

    2. 検索をサポートする必要があるフィールドを特定し、これらのフィールドのインデックスを作成するためにメタデータ・リソース内のAPIを呼び出します。

      インデックスを作成するフィールドは100個に制限されています。 インデックスからフィールドを削除することはできません。 検索は、まずお気に入り共有フォルダで行われてから、最大100個の他の共有フォルダで行われます。 検索前に一部のフォルダをお気に入りとして指定し、検索結果を向上させることができます。

    3. 整数型のメタデータ・フィールドは数値として検索できません。

    4. ドキュメントのREST APIから、検索APIの日付タイプのメタデータ・フィールドを検索できます。 これにより、正確に一致する日付または日付の範囲(日付が特定の開始日と特定の終了日の間にあるファイル)を検索できます。

  3. 問合せを作成します。

    1. 検索フォルダまたはファイルのquerytextパラメータで検索文字列を使用し、特定のフォルダIDエンドポイントで検索フォルダまたはファイルを使用して、フォルダおよびファイル名、タグ、および索引メタデータ・フィールドを検索します。

      タグおよびカスタム・メタデータ検索の例については、「ドキュメント用REST API」のエンドポイントの説明を参照してください。

    2. 検索問合せでは、シングル・クォーテーション・マーク文字(')を%60にURLエンコーディングする必要があります。 たとえば、Collection1.field1<CONTAINS>'myValue'Collection1.field1<CONTAINS>%60myValue%60に変わります。

    3. あなたの条件が本当に結果を見つけることを検証する簡単な質問から始めてください。

    4. カッコ、<AND>句、および<OR>句を組み合わせて、より複雑な問合せを作成できます。

メタデータ・フィールドに関する検索の設定

ドキュメントのREST APIのメタデータ・コレクション・リソースで検索可能なメタデータ・フィールドを設定します。 その後、カスタム・フィールドを使用してテキスト検索を実行できます。

メタデータ・フィールドを検索するには:

  1. 管理者としてOracle Content Managementにサインインし、メタデータ・コレクションを作成します。

    「メタデータ収集リソース」を参照してください。

  2. 管理者は、検索可能なMetadataフィールドの取得エンドポイントですでに検索可能なメタデータ・フィールドを確認するため、検索索引に追加できるフィールドの数を確認できます。

    このREST APIコールは、コンテンツの検索に現在使用可能なすべてのメタデータ・フィールドを取得します。結果リストには、テナントに対するそれぞれのグローバル・メタデータ・コレクションのプレフィクスが付いたすべてのメタデータ・フィールドが含まれます。 各テナントの検索可能フィールドは200に制限されています。

  3. 「ドキュメント用REST API」の検索可能なメタデータ・フィールドの設定エンドポイントを使用して、検索可能なメタデータ・フィールドを指定します。

    200個のフィールドに到達した後は、新しいフィールドをインデックス作成して検索可能にすることはできません。 現在、メタデータ・コレクションまたはフィールド(あるいはその両方)がシステムから削除されないかぎり、フィールドは検索索引から削除できません。 コレクションまたはフィールド(あるいはその両方)を削除すると、以前に設定したすべての既存のメタデータ情報が失われます(リカバリできません)。 この後、新しいフィールドは200フィールドの制限まで検索可能になります。

カスタム・メタデータ検索の場合、REST APIであるドキュメントの場合、CONTAINSを使用したテキスト検索のみがサポートされます。 数値または日付の検索はサポートされません。 たとえば、webユーザー・インタフェースを介して作成されたカスタム・メタデータ・フィールドは数値または日付タイプのフィールドであるため、検索できません。

これらのエンドポイントとその使用例の詳細は、「ドキュメント用REST API」の「Metadataコレクション」の「検索可能なMetadataフィールドの設定」および「検索可能なMetadataフィールドの取得」を参照してください。

検索リクエスト・パラメータ

qまたはdefaultパラメータに加えて、/itemsリソースに送信される検索リクエストでは、他のリクエスト・パラメータを使用して、レスポンスで返されるアイテムまたはアイテム・フィールドの数を制御できます。 次の表に、コンテンツ配信用のREST APIおよびコンテンツ管理のREST APIによって受け入れられるリクエストの詳細を示します。

コンテンツ配信用のREST API
問合せのパラメータ タイプ 説明
channelToken 文字列 パブリッシュ・ターゲットのチャネル・トークン。 チャネル・トークンは、問合せパラメータまたはリクエスト・ヘッダーのいずれかとして提供する必要があります。
default 文字列 すべてのフィールドのアイテムの値と一致するデフォルトの検索問合せ式。
fields 文字列

fieldsパラメータは、照会されたアイテムの返されるフィールドと値を制御するために使用されます。 このパラメータは、フィールド名またはすべてをコンマで区切ったリストを受け入れます。 ユーザー定義フィールド名には、フィールド・プレフィクスとピリオド(.)を付ける必要があります。 これらのフィールドは照会された各アイテムごとに返されます。 すべてのフィールド名で大文字と小文字が区別されるため、ユーザーは検索問合せで正しいフィールド名を指定する必要があります。 フィールドがすべて(大/小文字を区別しない)として指定されている場合、タイプ固有の問合せの場合、問合せ対象の各アイテムについて、すべての標準フィールドおよびユーザー定義フィールド(largetext、json、locationデータ型を除く)が返されます。すべてのタイプにわたる問合せの場合、すべての標準フィールドのみが返されます。 標準フィールドIDおよびタイプは常にレスポンスで返されるため、フィルタで除外できません。 このパラメータは問合せではオプションであり、デフォルトの問合せ結果には、ID、名前、説明およびレスポンス内のタイプのみが表示されます。 問合せで指定された不正または無効なフィールド名は無視されます。

ブレス・スタイルのクロス・タイプの問合せのコンテキストでは、name,{typename1:fields.userdefinedfieldname1,fields.userdefinedfieldname2},{typename2:fields.userdefinedfieldname1}構文を使用してタイプ固有のフィールドを指定できます。 前述の例では、typename1タイプのすべてのアイテムにフィールドがあります - 名前、userdefinedfieldname1およびuserdefinedfieldname2。typename2タイプのすべてのアイテムにはフィールドが含まれます - 名前、userdefinedfieldname1。 型付きフィールド句で参照されているタイプにクロス・タイプの問合せが解決されない場合、エラーがスローされます。

: ?q=(type eq "LocationType")&fields=fields.state,fields.country,updatedDate

これにより、状態および国フィールドを含むLocationTypeの検索結果でID、タイプ、状態、国、updatedDateが返されます。

: ?q=(type eq "LocationType")&fields=all

これにより、largetext, json, locationデータ型を除くすべての標準フィールドとすべてのユーザー定義フィールドが返されます

: ?fields=all

検索問合せではタイプ・フィールドが使用されない(グローバル問合せとして動作する)ため、標準フィールド(ID、タイプ、typeCategory、名前、説明、スラグ、言語、createdDate、updatedDate、タクソノミ、レンディション)のみが返されます

: ?fields=name,createdDate

検索問合せではタイプ・フィールドが使用されない(グローバル問合せとして動作)ため、これは標準フィールド(ID、名前、createdDate、タイプなど)のみを返します

デフォルト値: name,description,slug,language,translatable,createdDate,updatedDate

limit integer(int32) 戻す行数 デフォルト値は100です。
links 文字列 結果に必要な関連(相関)リンクのカンマ区切りリストを受け入れます。 デフォルトでは、リソース内のすべての適用可能なリンクがレスポンスに含まれます。 可能な値は次のとおりです: self, canonical, describedby, first, last, prev, next. 例: link=self,canonicalは、relプロパティ、selfまたはcanonicalとのリンクのみを返します。
offset integer(int32) レスポンス行の開始インデックス。 デフォルト値は100です。
orderBy 文字列

orderByパラメータは、問合せアイテムの順序(昇順または降順)を制御するために使用されます。 このパラメータは問合せではオプションであり、デフォルトでは結果はupdatedDateの降順でソートされます。 このパラメータは、featured()またはコロン(:)で区切られたフィールド名を受け入れます。これにより、ユーザーは結果とソート順序をソートします。 複数のソート順序はセミコロン(;)で区切られます。

フォーマット: orderBy={fieldName1}:{asc/desc};{fieldName2}:{asc/desc}

ノート:

昇順と降順を表します。ascとdescは常に小文字です。

タイプ固有の問合せでは、フィールド名は次のようにできます: 名前、createdDate、updatedDate (標準フィールド)、またはユーザー定義フィールド(単一値のデータ型): number, decimal, datetime, text ). すべてのユーザー定義のフィールド名には、プレフィクス・フィールドとピリオド(。)を付ける必要があります。 クロス・タイプ検索のコンテキストでは、このパラメータには型付きセクションを指定でき、{typename1:fields.userdefinedfieldname1:asc|desc};{typename2:fields.userdefinedfieldname1:asc|desc}という形式になります。

orderByパラメータは、一致する中括弧のセットごとに1つのフィールドごとの順序のみをサポートします。 ソート順はオプションで、デフォルトでは昇順です。 問合せで指定された不正または無効なフィールド名は無視されます。 featured()を指定すると、結果は、適用されたフィルタに対するアイテムの関連性でソートされます。

orderByパラメータでは、次のものもサポートされます:

  • 2レベル・フィールドによるソート。 2レベルのソート・フィールドがある場合は、orderByパラメータで唯一のソート・フィールドになります。

    2レベル検索で、ユーザー定義テキスト・フィールドまたはアセットのJSONフィールド(埋込みコンテンツ)に格納されたJSONデータの属性を使用してアセットをソートします。

    ノート:

    2レベルのソートは複数の値フィールドでは機能しないため、複数のテキスト・フィールドでは機能しません。 JSONフィールドは単一の値フィールドのみにできるため、2レベルのソートはJSONフィールドの配列属性に対して機能します。
  • ルート・カテゴリのタクソノミ・ルート・カテゴリおよびサブカテゴリでソートします。 追加のソート・パラメータは次のとおりです:

    taxonomies.shortName["short name of taxonomy"]:{asc/desc}; taxonomies.categories.nodes.name["short name of taxonomy"|"taxonomy name","category1","category2","category3"]

    ここで、category1、category2、category3などは、指定されたタクソノミのタクソノミ名のサブカテゴリです。

  • アセットのJSONフィールドに格納されたJSONデータの属性でソートします。

: orderBy=name:asc

名前の昇順ですべてのアイテムを返します。

: orderBy=updateDate:asc

updateDateの昇順ですべてのアイテムを返します。

: orderBy=fields.age:des

年齢の高い順にすべてのアイテムを返します。

: orderBy=fields.age

年齢の昇順ですべてのアイテムを返します。

: default=apples&orderBy=featured()

リンゴへのアイテムの関連性でソートされたすべてのアイテムを返します。

: orderBy=fields.blogauthor.authorage

参照フィールド「blogauthor」によって参照される作成者の年齢の昇順にすべてのアイテムを返します。

: orderBy=fields.blogauthor.fields.authorage&twolvl_v1_1=true

参照フィールド「blogauthor」によって参照される作成者の年齢の昇順にすべてのアイテムを返します。

: orderBy=taxonomies.shortName["loc"];taxonomies.categories.nodes.name["loc"|"Location","emea","china","industry"];taxonomies.categories.nodes.name["loc"|"Location","americas","brazil","industry"]

ルート・カテゴリ「loc」の昇順でソートされたすべてのアイテム、パスが/Location/emea/china/industryのカテゴリのサブカテゴリ、パスが/Location/americas/brazil/industryのカテゴリのサブカテゴリを返します。

: orderBy=fields.<text_field_name>:asc

ユーザー定義テキスト・フィールドを使用して昇順にソートされたすべてのアイテムを返します。

: orderBy=fields.<json_field_name>.value.<attribute_name>:asc

アセットのJSONフィールド(埋込みコンテンツ)に格納されたJSONデータの属性を使用して、昇順でソートされたすべてのアイテムを返します。

: orderBy=fields.<ref_field_name><text_field_name>:asc

ユーザー定義テキスト・フィールドへの2レベル参照を使用して、すべてのアイテムを昇順でソートして返します。 この例では、2レベル検索の互換性モードを使用します。

: orderBy=fields.<ref_field_name>.fields.<text_field_name>:asc&twolvl_v1_1=true

ユーザー定義テキスト・フィールドへの2レベル参照を使用して、すべてのアイテムを昇順でソートして返します。 この例では、2レベル検索の2レベル・モードを使用します。

q 文字列 このパラメータは、フィールド値に一致する問合せ式条件を受け入れます。 このような問合せ条件の多くは、AND/OR演算子を使用して結合でき、カッコで囲まれています。 問合せ条件の値は、{fieldName} {operator} "{fieldValue}"の形式に従います。

複数のタイプの問合せの場合、フィールド名は標準フィールド(ID、タイプ、名前、説明、typeCategory、スラグ、言語、createdDate、updatedDate、タクソノミ)に制限されます。 ただし、タイプ固有の問合せの場合、フィールド名は標準フィールドとユーザー定義フィールドに制限されます(largeTextデータ型のフィールドを除く)。 演算子で許可される値は、eq (Equals)、co (Contains)、sw (Startswith)、ge (次以上)、le (次以下)、gt (次以下)、lt (次より小さい)、mt (Match)、sm (類似)のみです。

: https://{cecsdomain}/content/published/api/v1.1/items?q=(name eq "John")

: https://{cecsdomain}/content/published/api/v1.1/items?q=(type eq "Employee" AND name eq "John")

: https://{cecsdomain}/content/published/api/v1.1/items?q=(type eq "Employee" AND ((name eq "John" AND field.age ge "40") OR fields.weight gt "70"))

: https://{cecsdomain}/content/published/api/v1.1/items?q=(taxonomies.categories.id eq "9E1A79EE600C4C4BB727FE3E39E95489" OR (taxonomies.categories.name co "cat" AND taxonomies.categories.name co "red"))

: https://{cecsdomain}/content/published/api/v1.1/items?q=(taxonomies.categories.nodes.id eq "9E1A79EE600C4C4BB727FE3E39E95489" OR taxonomies.categories.nodes.name co "cars")

スクロール boolean

このパラメータを指定すると、検索APIからスクロール動作が予想されます。 スクロールは、大きな結果セットを取得するための推奨メソッドです。 returnMasterが有効な場合、スクロールは使用できません。スクロールが有効な場合、hasMoreは常にfalseを返します。 オフセット・パラメータ値が指定されている場合、スクロール・リクエストでは無視されます。 制限パラメータ値はスクロールのコンテキストで解釈され、スクロール・セッションで固定されます。 その後の制限の変更は、スクロール・セッションでは無視されます。 レスポンスが大きくなりすぎると、レスポンス・ステータスが413 (ペイロードが大きすぎます)になります。

デフォルト値: false

scrollId 文字列 このパラメータは、スクロールIDを指定するために使用されます。scrollTTLおよびqパラメータの元の値は、一貫した結果を得るためにscrollIdを使用するリクエストでは常に必要です。 後続のスクロール・リクエストに常にqパラメータを含める要件は、現在のところ以前のリクエストに対して検証されず、同じスクロール・セッション内のパラメータへの変更は無視されます。
scrollTTL integer(int32)

scrollTTL (ミリ秒) - defaultおよびmaximum value 30000 ms)は、現在のスクロール・リクエストと次のスクロール・リクエスト間で許可される非アクティブな期間を指定します。 スクロールを使用して検索するすべてのレスポンスには、scrollIdが含まれます。 後続のスクロール・リクエストには、返されたscrollIdがリクエスト間で変更されることがあるため、前のレスポンスから返されたscrollIdが含まれている必要があります。 すべてのスクロール・リクエストはステートレスであるため、scrollTTLは常に予想されます。 scrollTTLの値は、リクエスト間で同じである必要はありません。 元の検索問合せ(q)も、後続のスクロール・リクエストごとに想定されます。 scrollIdが無効または期限切れの場合、レスポンス・ステータスは400 (Bad Request)になります。

デフォルト値: 30000

totalResults boolean

ブール値を受け入れます。 Trueに設定すると、レスポンスの結果フィールド合計が表示されます。

デフォルト値はfalseです。

twolvl_v1_1 文字列 このパラメータは値を必要とせず、検索APIが参照タイプの名前、説明などのシステム・フィールドを検索するために(i) fields.refname.fieldnameを使用し、(ii) fields.refname.fields.userfieldnameを使用して参照タイプのユーザー定義フィールドを検索します。 このパラメータを使用しない場合、2レベル検索は互換性モードで動作し、fields.reftype.fieldnameのような検索のみをサポートします。 さらに、fieldnameがシステム定義のフィールド名と同じ場合、2レベルの検索はfields.reftype.fields.fieldnameと同じように動作します。

Content Management REST API

次の表に、コンテンツ管理のREST APIで受け入れられる追加の検索リクエスト・パラメータを示します:
問合せのパラメータ タイプ 説明
channelToken 文字列 このパラメータは、チャネルのchannelTokenを受け入れ、返される結果を制御するために使用します。 結果には、指定されたchannelTokenが属するチャネルをターゲットにしたアイテムのみが含まれます。 これは、q問合せパラメータの問合せ条件の1つとしてチャネル(アイテムの標準フィールド)に問合せ条件(channels co "{channelId}")を指定することで実現できます。 これはオプションのパラメータであり、デフォルトではすべての結果が戻されます。
default 文字列 すべてのフィールドのアイテムの値と一致するデフォルトの検索問合せ式。
expand 文字列 このパラメータは、ユーザーが一致する各アイテムに対する権限を取得できるようにするために使用されます。 許可のみを受け入れます。
fields 文字列

このパラメータは、結果内の各アイテムの返されるフィールドを制御するために使用します。 このパラメータは、フィールド名またはすべてをコンマで区切ったリストを受け入れます。 これらのフィールドは、結果内の各アイテムに対して返されます。 フィールド名はすべて大文字小文字が区別され、ユーザーは問合せで正しいフィールド名を指定する必要があります。 すべてのユーザー定義フィールド名には、プレフィクス・フィールドを指定し、その後にピリオド(.)を付加する必要があります。 fieldsをすべて(大/小文字を区別しない)指定すると、すべての標準フィールドが、複数のタイプにわたる問合せの場合およびタイプ固有の問合せの場合、すべての標準フィールドとユーザー・フィールドが返されます。 このパラメータは問合せではオプションであり、デフォルトでは結果には標準フィールド名と説明のみが表示されます。 標準フィールドIDおよびタイプは、尋ねられたフィールドに関係なく常に返されます。 問合せで指定されたフィールド名が正しくないか無効な場合は、エラーがスローされます。 ブレス・スタイルのクロス・タイプの問合せのコンテキストでは、name,{typename1:fields.userdefinedfieldname1,fields.userdefinedfieldname2},{typename2:fields.userdefinedfieldname1}構文を使用してタイプ固有のフィールドを指定できます。 前述の例では、タイプtypename1のすべてのアイテムにフィールドがあります - name、userdefinedfieldname1およびuserdefinedfieldname2。型typename2のすべてのアイテムにはフィールドが含まれます - 名前、userdefinedfieldname1。 型付きフィールド句で参照されているタイプにクロス・タイプの問合せが解決されない場合、エラーがスローされます。

: これにより、検索結果で標準フィールド(名前)、ユーザー・フィールド(状態)およびタイプ住所の国が返されます。

https://{cecsdomain}/content/management/api/v1.1/items?q=type eq "Address"&fields=fields.state,fields.country

: これにより、検索結果で使用される特定のタイプのすべての属性が返されます。

https://{cecsdomain}/content/management/api/v1.1/items?q=type eq "Address"&fields=all

: すべてのタイプのすべてのアイテムについて、検索結果に標準フィールド、名前およびcreatedByを返します。

https://{cecsdomain}/content/management/api/v1.1/items?fields=name,createdBy

: これにより、検索結果のすべての標準フィールドがすべてのタイプのすべてのアイテムに対して返されます。

https://{cecsdomain}/content/management/api/v1.1/items?fields=all

デフォルト値: name、description、repositoryId、slug、language、translatable、createdDate、updatedDate

limit integer(int32) このパラメータは、負でない整数を受け入れ、結果のサイズの制御に使用します。 offset+limit > 10000の場合、制限は10000オフセットとして処理され、結果が得られます。 デフォルト値は100です。
links 文字列 このパラメータは、リンク名のカンマ区切りのリストを受け入れます。 デフォルトでは、このパラメータによって、適用可能なすべてのリンクが指定されます。 可能な値は次のとおりです: self、canonical、describedby、first、last、prev、next
offset integer(int32) このパラメータには、10000未満の負でない整数を指定でき、結果の開始索引を制御するために使用されます。 デフォルト値は0です。
orderBy 文字列

orderByパラメータは、問合せアイテムの順序(昇順/降順)を制御するために使用されます。

このパラメータは問合せではオプションであり、デフォルトでは、defaultパラメータが空の場合、結果はupdatedDateの降順でソートされます。 defaultパラメータに値がある場合、結果はアイテムの関連性でデフォルト値にソートされます。

このパラメータは、ユーザーが結果をソートしてソートするfeatured()またはコロン(:)で区切られたフィールド名を受け入れます。 複数のソート順序はセミコロン(;)で区切られます。

フォーマット: orderBy={fieldName1}:{asc/desc};{fieldName2}:{asc/desc}

ノート:

昇順および降順を表します。昇順および降順は常に小文字です。

タイプ固有の問合せでは、フィールド名は、標準フィールド(name, createdDate, updatedDate)またはユーザー定義フィールド(単一値データ型(number, decimal, datetime, text)のいずれかになります。 すべてのユーザー定義のフィールド名には、プレフィクス・フィールドとピリオド(。)を付ける必要があります。

クロス・タイプ検索のコンテキストでは、このパラメータには型付きセクションを指定でき、{typename1:fields.userdefinedfieldname1:asc|desc};{typename2:fields.userdefinedfieldname1:asc|desc}という形式になります。 orderByパラメータは、一致する中括弧のセットごとに1つのフィールドごとの順序のみをサポートします。 suggestedTaxonomiesでフィルタリングする場合、デフォルトのソート順は、アイテムに対する提案の関連性によって決まります。

orderByパラメータでは、次のものもサポートされます:

  • 2レベル・フィールドによるソート。 2レベルのソート・フィールドがある場合は、orderByパラメータで唯一のソート・フィールドになります。

    2レベル検索で、ユーザー定義テキスト・フィールドまたはアセットのJSONフィールド(埋込みコンテンツ)に格納されたJSONデータの属性を使用してアセットをソートします。

    ノート:

    2レベルのソートは複数の値フィールドでは機能しないため、複数のテキスト・フィールドでは機能しません。 JSONフィールドは単一の値フィールドのみにできるため、2レベルのソートはJSONフィールドの配列属性に対して機能します。
  • ルート・カテゴリのタクソノミ・ルート・カテゴリおよびサブカテゴリでソートします。 追加のソート・パラメータは次のとおりです:

    taxonomies.shortName["short name of taxonomy"]:{asc/desc}; taxonomies.categories.nodes.name["short name of taxonomy"|"taxonomy name","category1","category2","category3"]

    ここで、category1、category2、category3などは、指定されたタクソノミのサブカテゴリであり、"タクソノミ名"です。

    ソート順はオプションで、デフォルトでは降順に設定されています。 問合せで指定された不正または無効なフィールド名は無視されます。 featured()が指定され、defaultパラメータに値がある場合、結果はアイテムのタグの関連性でデフォルト値にソートされます。

  • アセットのJSONフィールドに格納されたJSONデータの属性でソートします。

: orderBy=name:asc

名前の昇順ですべてのアイテムを返します。

: orderBy=updateDate:asc

updateDateの昇順ですべてのアイテムを返します。

: orderBy=fields.age:desc

年齢の高い順にすべてのアイテムを返します。

: orderBy=fields.age

年齢の昇順ですべてのアイテムを返します。

: default=apples&orderBy=featured()

リンゴへのアイテムの関連性でソートされたすべてのアイテムを返します

: orderBy=fields.blogauthor.authorage

参照フィールド「blogauthor」によって参照される作成者の年齢の昇順ですべてのアイテムを返します。

: orderBy=fields.blogauthor.fields.authorage&twolvl_v1_1=true

参照フィールド「blogauthor」によって参照される作成者の年齢の昇順ですべてのアイテムを返します。

: orderBy=taxonomies.shortName["loc"];taxonomies.categories.nodes.name["loc"|"Location","emea","china","industry"];taxonomies.categories.nodes.name["loc"|"Location","americas","brazil","industry"]

パスが/Location/emea/china/industryのカテゴリのサブカテゴリである"loc"のルート・カテゴリの昇順のすべてのアイテム、パスが/Location/americas/brazil/industryのカテゴリのサブカテゴリを返します。

: orderBy=fields.<text_field_name>:asc

ユーザー定義テキスト・フィールドを使用して昇順にソートされたすべてのアイテムを返します。

: orderBy=fields.<json_field_name>.value.<attribute_name>:asc

アセットのJSONフィールド(埋込みコンテンツ)に格納されたJSONデータの属性を使用して、昇順でソートされたすべてのアイテムを返します。

: orderBy=fields.<ref_field_name><text_field_name>:asc

ユーザー定義テキスト・フィールドへの2レベル参照を使用して、すべてのアイテムを昇順でソートして返します。 この例では、2レベル検索の互換性モードを使用します。

: orderBy=fields.<ref_field_name>.fields.<text_field_name>:asc&twolvl_v1_1=true

ユーザー定義テキスト・フィールドへの2レベル参照を使用して、すべてのアイテムを昇順でソートして返します。 この例では、2レベル検索の2レベル・モードを使用します。

q 文字列 このパラメータは、フィールド値に一致する問合せ式条件を受け入れます。 このような問合せ条件の多くは、AND/OR演算子を使用して結合でき、カッコで囲まれています。 問合せ条件の値は、{fieldName} {operator} "{fieldValue}"の形式に従います。 タイプ固有の問合せの場合、フィールド名は標準フィールドとユーザー定義フィールドに制限されます(largeTextデータ型のフィールドを除く)。 演算子で許可される値は、eq (Equals)、co (Contains)、sw (Startswith)、ge (Greater than or equals to)、le (Less than or equals to)、gt (Greater than)、lt (Less than)、mt (Matches)、sm (Similar)のみです。

: https://{cecsdomain}/content/management/api/v1.1/items?q=(name eq "John")

: https://{cecsdomain}/content/management/api/v1.1/items?q=(type eq "Employee" AND name eq "John")

: https://{cecsdomain}/content/management/api/v1.1/items?q=(type eq "Employee" AND ((name eq "John" AND field.age ge "40") OR fields.weight gt "70"))

: https://{cecsdomain}/content/management/api/v1.1/items?q=(taxonomies.categories.id eq "9E1A79EE600C4C4BB727FE3E39E95489" OR (taxonomies.categories.name co "cat" AND taxonomies.categories.name co "red"))

: https://{cecsdomain}/content/management/api/v1.1/items?q=(taxonomies.categories.nodes.id eq "9E1A79EE600C4C4BB727FE3E39E95489" OR taxonomies.categories.nodes.name co "cars")

repositoryId 文字列 このパラメータはリポジトリのIDを受け入れ、返される結果を制御するために使用されます。 結果には、指定したリポジトリに属するアイテムのみが含まれます。 これは、q問合せパラメータの問合せ条件の1つとしてrepositoryId (アイテムの標準フィールド)と等しい問合せ条件(repositoryId eq "{repositoryId}")を指定することで実現できます。 これはオプションのパラメータであり、デフォルトではすべてのリポジトリから結果が戻されます。
スクロール boolean

このパラメータを指定すると、検索APIからスクロール動作が予想されます。 スクロールは、大きな結果セットを取得するための推奨メソッドです。 returnMasterが有効な場合、スクロールは使用できません。 スクロールが有効な場合、hasMoreパラメータは常にfalseを返します。 offsetパラメータ値が指定されている場合、スクロール・リクエストでは無視されます。 limitパラメータ値はスクロールのコンテキストで解釈され、スクロール・セッションで修正されます。 その後の制限の変更は、スクロール・セッションでは無視されます。 レスポンスが大きくなりすぎると、レスポンス・ステータスが413 (ペイロードが大きすぎます)になります。

デフォルト値はfalseです。

scrollId 文字列 このパラメータは、スクロールIDを指定するために使用されます。scrollTTLおよびqパラメータの元の値は、一貫した結果を得るためにscrollIdを使用するリクエストでは常に必要です。 後続のスクロール・リクエストに常にqパラメータを含める要件は、現在のところ以前のリクエストに対して検証されず、同じスクロール・セッション内のパラメータへの変更は無視されます。
scrollTTL  

scrollTTL (ミリ秒) - defaultおよびmaximum value 30000 ms)は、現在のスクロール・リクエストと次のスクロール・リクエスト間で許可される非アクティブな期間を指定します。 スクロールを使用して検索するすべてのレスポンスには、scrollIdが含まれます。 後続のスクロール・リクエストには、返されたscrollIdがリクエスト間で変更されることがあるため、前のレスポンスから返されたscrollIdが含まれている必要があります。 すべてのスクロール・リクエストはステートレスであるため、scrollTTLは常に予想されます。 scrollTTLの値は、リクエスト間で同じである必要はありません。 元の検索問合せ(q)も、後続のスクロール・リクエストごとに想定されます。 scrollIdが無効または期限切れの場合、レスポンス・ステータスは400 (Bad Request)になります。

デフォルト値は30000です。

totalResults boolean

このパラメータは、ブール・フラグを受け入れます。 trueとして指定した場合、返される結果には合計結果数が含まれている必要があります。

デフォルト値はfalseです。

twolvl_v1_1 文字列 このパラメータには値は必要ありません。 これを使用すると、検索APIが参照タイプの名前、説明などのシステム・フィールドを検索するために(i) fields.refname.fieldnameを使用する2つのレベルを示し、(ii) fields.refname.fields.userfieldnameを使用して参照タイプのユーザー定義フィールドを検索します。 このパラメータを使用しない場合、2レベル検索は互換性モードで動作し、fields.reftype.fieldnameのような検索のみをサポートします。 さらに、fieldnameがシステム定義のフィールド名と同じ場合、2レベルの検索はfields.reftype.fields.fieldnameと同じように動作します。

2レベル・ディープ検索

デフォルトでは、検索問合せは、アイテム自体の標準またはユーザー定義のデータ・フィールドと一致します。 参照アイテムのデータ・フィールドは、直接参照であるかぎり検索することもできます。 これにより、品目のデータ・フィールド階層の2レベルを深める検索問合せを効果的に構成できるため、アセット標準またはユーザー定義のデータ・フィールドと一致する2レベルのディープ検索を実行できます。 2レベル検索では、アイテムのフィールドの検索時に提供されるものと同じ問合せ式のセマンティクスが提供されます。 たとえば:

参照上のユーザー定義フィールドと一致する検索問合せ: /.../api/v1.1/items?q=(type eq "Employee" AND fields.address.street eq "Main St") ここで、住所はタイプ従業員の参照タイプ・フィールドの名前で、名前番地のフィールドがあります。

ノート:

第1レベル参照を通過した品目参照階層の再帰的な検索はサポートされていません。 第2レベルのフィールドによるソートもサポートされていません。

2レベルのディープ検索では、参照アイテムの標準フィールドとユーザー定義フィールドに対する検索問合せを構成する2つの方法がサポートされています:
  • 「互換性モード」

    これはデフォルト・モードです。 互換性モードでは、問合せ式はfields.ref-field.field-nameなどのフィールド表記をサポートします。ref-fieldは参照またはメディア・フィールドの名前、field-nameは参照アセット・タイプのフィールドの名前です。 さらに、field-nameが標準フィールドの名前(ID、名前、説明など)と同じ場合、2レベルのディープ検索はfields.ref-field.fields.field-nameと同じ動作になります。つまり、field-nameはユーザー定義フィールドの名前として扱われます。 たとえば:
    • 問合せ(type eq "parent-type" AND fields.ref-field.field-name eq "blah")は、値blahが子アイテムのユーザー定義フィールドfield-nameに割り当てられているparent-type(親アイテム)のアイテムと一致します。これは、フィールドref-fieldの参照として設定されています。
    • 問合せ(type eq "parent-type" AND fields.ref-field.name eq "blah")は、値blahが子アイテムの標準フィールドnameに割り当てられているparent-type(親アイテム)の項目と一致します。これは、フィールドref-fieldで参照として設定されています。
  • 「2レベル・モード」

    このモードは、問合せパラメータtwolvl_v1_1 modeをtrueに設定することでアクティブ化されます。 このモードでは、2レベルの検索問合せ式は、fields.ref-field.field-nameを使用してID、名前または説明などの標準フィールドを検索し、fields.ref-field.fields.field-nameを使用して参照されるアセット・タイプのユーザー定義フィールドを検索します。 たとえば:
    • 問合せ(type eq "parent-type" AND fields.ref-field.field-name eq "blah")は、値blahが子アイテムの標準フィールドfield-nameに割り当てられたタイプparent-type(親アイテム)の項目に一致します。これは、フィールドref-fieldの参照として設定されます。
    • 問合せ(type eq "parent-type" AND fields.ref-field.fields.field-name eq "blah")は、値blahがユーザー定義フィールドfield-name(フィールドref-fieldの参照として設定)に割り当てられたparent-type(親アイテム)の項目に一致します。

JSONフィールドでのJSONデータの検索

検索APIを使用すると、アイテム上のJSONフィールドに格納されているJSONデータの属性に割り当てられた検索条件に一致する値に基づいて、コンテンツ・アイテムまたはカスタム・デジタル・アセット・タイプのデジタル・アセットを返すことができます。 Oracle Content Mangement webインタフェースでは、JSON形式のデータをアセット・タイプに格納するためのデータ・フィールドが埋込みコンテンツと呼ばれます。 APIでは、オブジェクトの配列を含む、JSONオブジェクトのベース属性、配列要素または属性に一致する検索語がサポートされています。 現在、JSONデータ索引付けでは、索引付きJSONフィールド(< 2.5 MB)、JSONフィールド・キー長(< 512B)および深さに対する次の制限が、JSONオブジェクト(10レベル)のフィールドと一致するように設定されています。

問合せ構文では、フィールド名のドット表記法を使用して、任意のJSONコンテンツ内の任意のキーを参照します。つまり、 fields.<json_field_name>.value を使用してカスタム・テキスト・フィールドを問い合せたり、 fields.<json_field_name>.value.key1.subkey1.subsubkey3などを使用できます。検索条件では、検索APIでサポートされている既存のすべての演算子を通常のカスタム・フィールドに使用できます。次に例を示します:

q=(type eq "Employee" AND fields.<json_field_name>.value.street eq "Main St¿)
q=(type eq "Employee" AND fields.<json_field_name>.value.age gt ¿20")
q=(type eq "Employee" AND fields.<json_field_name>.value.proper`es eq ¿office=HQ¿ AND fields.<json_field_name>.value.proper`es eq ¿building=100¿)

同様に、2レベルのディープ検索の場合:

q=(type eq "Employee" AND fields.<ref_field_name>.fields.<json_field_name>.value.street eq "Main St¿)
q=(type eq "Employee" AND fields.<ref_field_name>.fields.<json_field_name>.value.age gt ¿20")
q=(type eq "Employee" AND fields.<ref_field_name>.fields.<json_field_name>.value.proper`es eq ¿office=HQ¿ AND fields.<ref_field_name>.fields.<json_field_name>.value.proper`es eq ¿building=100¿)

fields.<json_field_name>.value.*.subsubkey3などの検索条件でのワイルドカードの使用は、パフォーマンス上の理由ではサポートされていません。

検索APIでは、返された検索結果をJSONキー/サブキーでソートすることもできます。次に例を示します:

orderBy= fields.<json_field_name>.value.name:asc
orderBy= fields.<json_field_name>.value.name:desc
orderBy= fields.<ref_field_name>.fields.<json_field_name>.value.name:asc orderBy= fields.<ref_field_name>.fields.<json_field_name>.value.name:desc

複数のタイプの検索

Oracle Content Managementの21.6.1リリース(2021年6月)より前では、検索問合せで複数のアセット・タイプを指定することで、問合せ条件およびorderBy仕様でアセット・タイプの標準フィールドのみを参照できるグローバル(未入力)問合せになりました。 fields.custom-filed-nameのようなアセット・タイプ固有の述語。型指定されていない問合せ条件、フィールド指定またはorderBy指定で使用できませんでした。 新しいタイプの検索APIとそれに関連付けられた検索問合せ構文によって、これらの制限が削除されます。

複数のアセット・タイプのカスタム・データ・フィールドに対する検索問合せでは、検索問合せ式を作成するために新しい構文を使用する必要があります。 複数のタイプ間の問合せは、中カッコ {}でアセット・タイプの述語を囲むことによって形成されます。 検索問合せは、次の制限に従って検証されます:
  • 中カッコの一致するペア内で指定できるアセット・タイプは1つのみです。 {} ペアはタイプ・スコープを定義します。
  • ネストされたアセット・タイプ・スコープ・デリミタは許可されません。たとえば、{...{...}..}式は検証に失敗します。
  • fieldsまたはorderByパラメータの型式を定義するときに、中カッコ {} を大カッコ[]と組み合せることができます。
  • 型スコープの外部で指定された述語は、大カッコ(非マルチ・タイプの検索問合せパラメータなど)を使用して指定されたように動作します。
  • 問合せでは、様々なユーザー定義型にわたるnot equal (ne) 演算子はサポートされていません。

複数のアセット・タイプのカスタム・データ・フィールドに対する検索問合せの例:

  • {type eq "t1" AND fields.ud1 eq "ud1"}

    ud1は、t1型のフィールドである必要があります。 問合せが検証に失敗します(そうでない場合)。

  • {type eq "t1" AND fields.ud1 eq "ud1"} AND name eq "John"

    タイプ・デリミタ外の標準フィールドの場合と同じ。

  • {type eq "t1" AND fields.ud1 eq "ud1"} OR {type eq "t2" AND fields.ud2 eq "ud2"}

    ud1は、型のフィールド、t1およびud2は、t2型のフィールドである必要があります。

  • {type eq "t1" AND and fields.ud1 eq "ud1"} AND {type eq "t2" AND fields.ud2 eq "ud2"}

    前の問合せと同様に有効ですが、AND演算子によりゼロの結果が返されます。

  • {type eq "t1" OR type eq "t2"}

    タイプ・デリミタ内に2つのタイプが指定されているため、問合せが無効です。

  • type eq “t1” OR type eq “t2”

    未タイプの問合せに解決されるスコープ指定されていないスタイル検索。

  • type eq “t1” OR type eq “t2” AND fields.ud1 eq “ud1”

    未入力に解決され、検証エラーがスローされる、スコープ指定されていないスタイル検索。

  • type eq “t1” AND fields.ud1 eq “ud1”

    タイプt1に解決されるスコープ指定されていないスタイル検索。 ud1がt1のフィールドであるかぎり有効です。

  • {type eq “t2” AND fields.ud2 eq “ud2”} OR type eq “t1” AND fields.ud1 eq “ud1”

    t2に解決される型、t1およびスコープ指定検索に解決されるスコープ指定されていないスタイル検索。 問合せは、ud1がt1のフィールド、ud2がt2のフィールドである場合に有効です。

フィールド・パラメータ

単一タイプの標準およびユーザー定義のデータ・フィールドを返すようにリクエストでfieldsパラメータを未入力に構成する方法は、Id, name, type, updatedDate, fields.ud1,fields.ud2という形式を使用します。 fieldsパラメータも入力でき、{<typename1>:fields.<userdefinedfieldname>,[fields.<userdefinedfieldname>]},{<typename2>:fields.<userdefinedfieldname>,[fields.<userdefinedfieldname>]}という形式になります。

型指定されていない式をfieldsパラメータ値として型付き問合せと組み合せて使用する場合、qパラメータは、スコープ指定されていない単一のアセット・タイプ( {} デリミタの外部で指定されたタイプ述語)に解決する必要があります。そうしないと、例外がスローされます。

fieldsパラメータ値として設定された型式の例を次に示します:
  • fields=id,name,type,updatedDate,{t1:fields.ud1},{t2:fields.ud2,fields.ud3}

    システム定義フィールド(ID、名前、タイプ、updatedDate)およびユーザー定義フィールドud1(タイプt1、タイプud2およびタイプt2)をリクエストする型指定方法。 タイプとユーザー定義フィールドが一致しない場合、検証中に例外がスローされます。

  • fields=id,name,type,updatedDate,{t1:fields.ud1},{t2:fields.ud2},fields.ud3

    システム定義フィールド(id、name、type、updatedDate)およびユーザー定義フィールドud1をタイプt1にリクエストし、t2にud2をリクエストする型付きの方法。 ユーザー定義フィールドud3は、スコープ指定されていない型に解決する必要があります。そうしないと、検証中に例外がスローされます。

orderByパラメータ

orderByパラメータには型付きセクションも指定でき、{<typename1>:fields.<userdefinedfieldname>[:asc|desc]};{<typename2>:fields.<userdefinedfieldname>[:asc|desc]}という形式になります。 orderByパラメータは、型スコープごとに1つの順序のみフィールドでサポートされます。

タクソノミ・カテゴリごとのアセットの動的数

カテゴリ・カテゴリ当たりの動的アセット数は名前付き集計で、検索問合せに一致するアイテムがさらに分析されて質問に回答されます: 結果セット内のアイテムの数が特定のカテゴリに割り当てられていますか。 アナライザは、直接および間接のカテゴリ割当てを反映する必要があることに注意してください。 たとえば、品目がリーフ・レベル・カテゴリに割り当てられている場合、品目数はすべての親レベル・カテゴリに伝播する必要があります。 同じ品目が複数のリーフ・レベル・カテゴリに割り当てられている場合は、共通親カテゴリ(およびそのすべての親カテゴリ)で1つの品目としてカウントする必要があります。 つまり、重複割当はカウントされません。 次に例を示します。
タクソノミに次のカテゴリ・ツリーがあるとします: カテゴリ当たりのアイテム数は、DSLRとNikonの両方に割り当てられた製品アイテムD500を次のように考慮する必要があります:
Cameras
  Type
    DSLR
  Brand
    Nikon
Cameras (1)
  Type (1)
    DSLR (1)
  Brand (1)
    Nikon (1)

アイテムD500もカメラ・カテゴリに直接割り当てられている場合は、同じ結果が予想されます。

タクソノミを使用して、webサイトまたはアプリケーションのエンドユーザーが(たとえば、Webサイトの製品カタログで)カテゴリ化されたアイテムを参照できるようにする場合は、アイテム数を使用できますアイテムが割り当てられていないカテゴリを動的にフィルタ・アウトおよび非表示にするカテゴリごとに、アイテムが割り当てられているカテゴリに加えて、各カテゴリのアセットの実際の数を表示できます。 APIクライアントは、次の繰返しサイクルを進めてカテゴリ・リストを絞り込むことで、その方法を説明します:
  • 初期フィルタ問合せから開始
  • エンドユーザーがフィルタ条件を追加するか、カテゴリを選択
  • 変更されたフィルタ問合せと、必要に応じて集計問合せを実行
  • 返された集計数に基づいてカテゴリ・リストを絞り込みます
  • エンド・ユーザーがアイテムのフィルタリングを続行すると#2からサイクルが繰り返されます

AGGS問合せパラメータ

カテゴリ当たりの集計アイテム数を返す検索問合せを実行するには、JSON配列を値として使用するaggs問合せパラメータを使用する必要があります。 この配列の各要素は、次の表に示す必須属性およびオプション属性によって定義された集計を表します。 /itemsリソースは、コンテンツ配信用のREST APIとコンテンツ管理用のREST APIの両方でaggsパラメータをサポートしています。
問合せのパラメータ タイプ 集計属性
aggs JSON配列
  • name (required): item_count_per_category
  • field (optional): カテゴリのIDまたはapiNameが返されるかどうかを指定するには、IDまたはapinameを使用します。 デフォルトでは、カテゴリIDが返されます。
  • size (optional): [ 1...1000 ]の範囲内の数値を取ります。 デフォルトでは1000が使用されます。
集計を使用した検索問合せの例を次に示します:
  • 単一の集計を含む問合せ

    .../api/v1.1/items?fields=name&aggs={"name":"item_count_per_category"}&q=(type eq "ContentType1" AND fields.simple_text_value mt “brown")

  • 単一の集計と問合せパラメータlimit=0を持つ問合せでは、検索結果は返されません。 集計されたカウントは、Elasticsearch集計キャッシュから返されます

    .../api/v1.1/items?fields=name&aggs={"name":"item_count_per_category"}&q=(type eq "ContentType1" AND fields.simple_text_value mt “brown")&limit=0

  • 2つの集計を含む問合せ

    .../api/v1.1/items?fields=name&aggs=[{"name":"item_count_per_category"}, {"name":"item_count_per_category","field":"apiname"}]&q=(type eq "ContentType1" AND fields.simple_text_value mt "brown")

2つの集計を含む前述のサンプル問合せの検索リクエストに対するレスポンスの集計セクションを次に示します:
"aggregationResults": [
{
  "itemCountPerCategory": [
    {
      "categoryId": "65EAC164681C47D68851583237381001",
      "itemCount": 3
    },
    {
      "categoryId": "C1E24A8BA3754F5AB17AEED3F020A898",
      "itemCount": 3
    },
    {
      "categoryId": "AF8D57438E3645ABBB137812FE830C34",
      "itemCount": 2
    }
  ],
  "name": "item_count_per_category"
},
{
  "itemCountPerCategory": [
    {
      "categoryApiName": "tax-cat1",
      "itemCount": 3
    },
    {
      "categoryApiName": "tax-cat2",
      "itemCount": 3
    },
    {
      "categoryApiName": "tax-cat3",
      "itemCount": 2
     }
  ],
  "name": "item_count_per_category"
}
]

集計キャッシュ

カテゴリAPIごとに集計されたアセット数は、基礎となるElasticsearchリクエスト・キャッシュに依存します。これは、Oracle Content Management検索でデフォルトで有効になっています。 デフォルトでは、リクエスト・キャッシュは、問合せパラメータlimit=0の場合に検索リクエストの結果のみをキャッシュし、一致するアイテムをキャッシュしませんが、hits.totalaggregationsおよびsuggestionsをキャッシュします。 これにより、頻繁に使用される(場合によっては重い)検索リクエストで、ほぼ瞬時に結果が返されます。 リクエスト・キャッシュは、キャッシュされていない検索と同じほぼリアルタイムの約束を保持します。 Elasticsearchは、シャードがリフレッシュされるたびにキャッシュされた結果を自動的に無効化しますが、シャード内のデータが実際に変更された場合のみです。 つまり、Elasticsearchは常にキャッシュから同じ結果を取得します。キャッシュされていない検索リクエストの場合と同じです。

カテゴリAPIごとの動的アセット・カウントの使用

カテゴリごとの動的アイテム集計APIを使用して、共通のeコマース製品セレクタ / 製品カタログで必要な数を表示できます。 この項では、一般的なeコマース・ユース・ケースとより一般的なユース・ケースのアプローチについて説明します。 次の用語は、カテゴリごとの総アセット数を計算するためのルールの説明に使用されます:
  • ユーザー問合せ: Oracle Content Management Search API問合せ構文要件に準拠する任意の複雑度のユーザー指定の検索問合せ式。 これは、(name eq "car"など)入力でエンドユーザーが入力したすべてのものに対するフリー・フォーム検索問合せです。
  • カテゴリ・ノード問合せ: ‘(taxonomies.categories.nodes.id eq “<id_1>" OR taxonomies.categories.nodes.id eq “<id_2>” OR ... OR taxonomies.categories.nodes.id eq “<id_N>”)’として表されるOracle Content Management検索API問合せの形式。id_Xは、特定のタクソノミでユーザーが選択したカテゴリの1つのIDです。
  • 検索問合せ: エンドユーザーに表示する結果をフェッチするための1つ以上の検索問合せ。 ユーザー問合せ、1つ以上のカテゴリ・ノード問合せ、またはそれらの組合せです。
  • 集計問合せ: 特定の検索ファセットについて集計アイテム数をコンピュートするために生成される、ユーザー問合せのバリアント。
総アセット数の計算
ユーザーが選択されたカテゴリはありません: ユーザーが選択されたカテゴリがない場合は、ユーザー問合せを使用して一致するアイテムを取得し、集計されたカウントをコンピュートできます:
  • 検索問合せ: q=<user_query>
  • 集計問合せ (すべてのタクソノミ): q=<user_query>

ユーザーは1つのタクソノミから1つ以上のカテゴリを選択 - taxonomy-1:

  • 検索問合せ: q=<user_query> AND <category_node_query_1>
  • 集計問合せ (taxonomy-1): q=<user_query>
  • 集計問合せ (その他のすべてのタクソノミ): q=<search_query>
ユーザーは2つのタクソノミからカテゴリを選択 - taxonomy-1およびtaxonomy-2:
  • 検索問合せ: q=<user_query> AND <category_node_query_1> AND <category_node_query_2>
  • 集計問合せ (taxonomy-1): q=<user_query> AND <category_node_query_2>
  • 集計問合せ (taxonomy-2): q=<user_query> AND <category_node_query_1>
  • 集計問合せ(他のすべてのタクソノミ): q=<search_query>
ユーザーは3つのタクソノミからカテゴリを選択 - taxonomy-1、taxonomy-2およびtaxonomy-3:
  • 検索問合せ: q=<user_query> AND <category_node_query_1> AND <category_node_query_2> AND <category_node_query_3>
  • 集計問合せ (taxonomy-1): q=<user_query> AND <category_node_query_2> AND <category_node_query_3>
  • 集計問合せ (taxonomy-2): q=<user_query> AND <category_node_query_1> AND <category_node_query_3>
  • 集計問合せ (taxonomy-3): q=<user_query> AND <category_node_query_1> AND <category_node_query_2>
一般ルール。ユーザーがNタクソノミからカテゴリを選択します:
  • 検索問合せ: q=<user_query> AND <category_node_query_1> AND <category_node_query_2> ... AND <category_node_query_N>
  • 集計問合せ (taxonomy-1): q=<user_query> AND <category_node_query_2> ... AND <category_node_query_N>
  • 集計問合せ (taxonomy-2): q=<user_query> AND <category_node_query_1> AND <category_node_query_3> ... AND <category_node_query_N>
  • 集計問合せ (taxonomy-N): q=<user_query> AND <category_node_query_1> AND <category_node_query_2> ... AND <category_node_query_N-1>
  • 集計問合せ(他のすべてのタクソノミ): q=<search_query>
合計検索コスト
検索結果を取得するためのスコア/ランク付けされた1つの問合せと、ユーザーが選択したカテゴリがないタクソノミでのカテゴリの集計数。 選択したカテゴリのNタクソノミの集計数をコンピュートする問合せをNフィルタします。

eコマースのユース・ケース

次の表に、この例で使用されている3つのタクソノミを示します。 これには、リポジトリ内のアイテムのリストと、この例で参照できるタクソノミによるアイテム分類も含まれます:
タクソノミ アイテムとアイテムの分類 カテゴリ当たりのアイテム数
Electronics (ELE)
  ELE-laptops
  ELE-keyboards

Manufacturer (MAN)
  MAN-hp
  MAN-razer

Location (LOC)
  LOC-sheraton-mall
  LOC-stoneridge-mall
次のすべてのアイテムに同じコンテンツ・タイプContentType2があります:
  • HP Elite Dragonfly (追加先: ELE-laptops, MAN-hp, LOC-sheraton-mall, LOC-stoneridge-mall)
  • HP Elite Folio (追加先: ELE-laptops, MAN-hp, LOC-sheraton-mall, LOC-stoneridge-mall)
  • HP Elite X2 (追加先: ELE-laptops, MAN-hp, LOC-sheraton-mall, LOC-stoneridge-mall)
  • HP Pavillion Keyboard (追加先: ELE-keyboards, MAN-hp, LOC-sheraton-mall, LOC-stoneridge-mall)
  • HP Omen Keyboard (追加先: ELE-keyboards, MAN-hp, LOC-sheraton-mall, LOC-stoneridge-mall)
  • Razer Blade Stealth (追加先: ELE-laptops, MAN-razer, LOC-sheraton-mall)
  • Razer Blade Pro (追加先: ELE-laptops, MAN-razer, LOC-sheraton-mall)
  • Razer BlackWidow Keyboard (追加先: ELE-laptops, MAN-razer, LOC-sheraton-mall)
  • Razer Huntsman Keyboard (追加先: ELE-laptops, MAN-razer, LOC-sheraton-mall)
Electronics (ELE)
  ELE-laptops (5)
  ELE-keyboards (4)

Manufacturer (MAN)
  MAN-hp (5)
  MAN-razer (4)

Location (LOC)
  LOC-sheraton-mall (9)
  LOC-stoneridge-mall (5)

単純検索問合せを使用して、カテゴリなしのすべてのアセットを照合し、特定のリポジトリ内のタイプ・コンテンツType2のすべてのアセットに一致させます。 検索問合せリクエストに対する問合せおよびAPIレスポンスを読みやすくするために、サンプル・タクソノミのすべてのカテゴリがカテゴリ名と同じAPI名(apiName)を持ちます。 したがって、次の検索問合せ式および集計はすべてapiNameを使用します。 かわりにカテゴリIDを使用できます。

カテゴリが選択されていません

エンドユーザーがまだカテゴリを選択しなかった場合は、検索問合せのみを使用してカテゴリごとに集計されたアセット数を取得できます。
  • 検索問合せ:

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType2")&fields=name&links=none&aggs=[{"name":"item_count_per_category","field":"apiname"}]¿

  • 集計問合せ(すべてのタクソノミ):

    q=<search_query>

検索問合せレスポンス:
{
  "hasMore": false,
  "offset": 0,
  "count": 9
  "limit": 9,
  "items": [
    {
      "name": "HP Omen Keyboard",
      "links": [],
      "id": "COREFE86EA24BAE84D4E87B8A1F992163D6B",
      "type": "ContentType2"
    },
    {
      "name": "Razer BlackWidow Keyboard",
      "links": [],
      "id": "COREF8CEBA1264C04A1A87954C2A4A33D2DB",
      "type": "ContentType2"
    },
    {
      "name": "Razer Huntsman Keyboard",
      "links": [],
      "id": "CORE07C7E1108BFB4A5EAF1761F46251FECD",
      "type": "ContentType2"
    },
    {
      "name": "HP Pavillion Keyboard",
      "links": [],
      "id": "COREAB4987C5FB664007B3B6B4D93CFAC90F",
      "type": "ContentType2"
    },
    {
      "name": "HP Elite X2",
      "links": [],
      "id": "COREF911737800FE406C92183E182C7228CC",
      "type": "ContentType2"
    },
    {
      "name": "HP Elite Folio",
      "links": [],
      "id": "CORE18B3AFABE2814E75AB54CBBF80B3A509",
      "type": "ContentType2"
    },
    {
      "name": "HP Elite Dragonfly",
      "links": [],
      "id": "COREAED2F7C50B404D6FB6547CCE69DD3492",
      "type": "ContentType2"
    },
    {
      "name": "Razer Blade Pro",
      "links": [],
      "id": "CORE66D9CFFF1C2945A7857C6C0B5E4B21BB",
      "type": "ContentType2"
    },
    {
      "name": "Razer Blade Stealth",
      "links": [],
      "id": "CORED009A429B9D04080AE19FF42CE8CC758",
      "type": "ContentType2"  
    }
  ],
  "links": [],
  "aggregationResults": [
    {
      "itemCountPerCategory": [
        {
          "categoryApiName": "loc-sheraton-mall",
          "itemCount": 9
        }, {
          "categoryApiName": "ele-laptops",
          "itemCount": 5 },
        {
          "categoryApiName": "loc-stoneridge-mall",
          "itemCount": 5
        }, {
          "categoryApiName": "man-hp",
          "itemCount": 5 },
        {
          "categoryApiName": "ele-keyboards",
          "itemCount": 4
        }, {
          "categoryApiName": "man-razer",
          "itemCount": 4 }
      ],
      "name": "item_count_per_category"
    }
  ]
}

エンドユーザーが「ELE-laptops」を選択

1つのカテゴリが選択された状態で、検索問合せを使用して結果を取得し、カテゴリが選択されていないタクソノミの集計カウントを取得します。 次に、個別の集計問合せを使用して、タクソノミElectronicsの集計数をコンピュートします。 集計問合せはパラメータlimit=0を使用してアイテムを返せません。これは、集計数のみに興味があるためです。

  • 検索問合せ:

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType2" AND (taxonomies.categories.nodes.apiName eq “ele-laptops”))&fields=name&links=none&aggs=[{"name":"item_count_per_category","field":"apiname"}]

    検索問合せレスポンス:
    {
      "hasMore": false,
      "offset": 0,
      "count": 5,
      "limit": 5,
      "items": [
         {
            "name": "HP Elite X2",
            "links": [],
            "id": "COREF911737800FE406C92183E182C7228CC",
            "type": "ContentType2"
         },
         {
            "name": "HP Elite Folio",
            "links": [],
            "id": "CORE18B3AFABE2814E75AB54CBBF80B3A509",
            "type": "ContentType2"
         },
         {
            "name": "HP Elite Dragonfly",
            "links": [],
            "id": "COREAED2F7C50B404D6FB6547CCE69DD3492",
            "type": "ContentType2"
         },
         {
            "name": "Razer Blade Pro",
            "links": [],
            "id": "CORE66D9CFFF1C2945A7857C6C0B5E4B21BB",
            "type": "ContentType2"
         },
         {
            "name": "Razer Blade Stealth",
            "links": [],
            "id": "CORED009A429B9D04080AE19FF42CE8CC758",
            "type": "ContentType2"
         }
       ],
       "links": [],
       "aggregationResults": [
         {
           "itemCountPerCategory": [
             {
               "categoryApiName": "ele-laptops",
               "itemCount": 5
             },
             {
               "categoryApiName": "loc-sheraton-mall",
               "itemCount": 5
             },
             {
               "categoryApiName": "loc-stoneridge-mall",
               "itemCount": 3
             },
             {
               "categoryApiName": "man-hp",
               "itemCount": 3
             },
             {
               "categoryApiName": "man-razer",
               "itemCount": 2
             }
           ],
           "name": "item_count_per_category"
         }
       ]
    }
  • 集計問合せ(電子機器用):

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType2")&fields=name&limit=0&links=none &aggs[{"name":"item_count_per_category","field":"apiname"}]

    集計問合せレスポンス:
    {
      "hasMore": false,
      "offset": 0,
      "count": 0,
      "limit": 0,
      "items": [],
      "links": [],
      "aggregationResults": [
        {
          "itemCountPerCategory": [
            {
              "categoryApiName": "loc-sheraton-mall",
              "itemCount": 9
            },
            {
              "categoryApiName": "ele-laptops",
              "itemCount": 5
            },
            {
              "categoryApiName": "loc-stoneridge-mall",
              "itemCount": 5
            },
            {
              "categoryApiName": "man-hp",
              "itemCount": 5
            },
            {
              "categoryApiName": "ele-keyboards",
              "itemCount": 4
            },
            {
              "categoryApiName": "man-razer",
              "itemCount": 4
            }
          ],
          "name": "item_count_per_category"
        }
      ]
    }

エンドユーザーが「ELE-laptops」と「MAN-hp」を選択

  • 検索問合せ:

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType2" AND (taxonomies.categories.nodes.apiName eq "ele-laptops") AND (taxonomies.categories.nodes.apiName eq "man-hp"))&fields=name&links=none&aggs=[{"name":"item_count_per_category","field":"apiname"}]

    問合せレスポンスの検索
    {
      "hasMore": false,
      "offset": 0,
      "count": 3,
      "limit": 3,
      "items": [
        {
          "name": "HP Elite Dragonfly",
          "links": [],
          "id": "CORE02B5199C0C154F9AB29C42F829A47F21",
          "type": "ContentType2"
        },
        {
          "name": "HP Elite Folio",
          "links": [],
          "id": "COREAAC11256104F4D73AAF599230621A789",
          "type": "ContentType2"
        },
        {
          "name": "HP Elite X2",
          "links": [],
          "id": "COREDCF70DB8B3CA4479876D759A3B7A39AC",
          "type": "ContentType2"
        }
      ],
      "links": [],
      "aggregationResults": [
        {
          "itemCountPerCategory": [
            {
              "categoryApiName": "ele-laptops",
              "itemCount": 3
            },
            {
              "categoryApiName": "loc-sheraton-mall",
              "itemCount": 3
            },
            {
              "categoryApiName": "loc-stoneridge-mall",
              "itemCount": 3
            },
            {
              "categoryApiName": "man-hp",
              "itemCount": 3
            }
          ],
          "name": "item_count_per_category"
        }
      ]
    }
  • 集計問合せ(電子機器用):

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType2" AND (taxonomies.categories.nodes.apiName eq "man-hp"))&fields=name&links=none&limit=0&aggs=[{"name":"item_count_per_category","field":"apiname"}]

    集計問合せレスポンス
    {
      "hasMore": false,
      "offset": 0,
      "count": 5,
      "limit": 5,
      "items": [
        {
          "name": "HP Elite Dragonfly",
          "links": [],
          "id": "CORE02B5199C0C154F9AB29C42F829A47F21",
          "type": "ContentType2"
        },
        {
          "name": "HP Elite Folio",
          "links": [],
          "id": "COREAAC11256104F4D73AAF599230621A789",
          "type": "ContentType2"
        },
        {
          "name": "HP Elite X2",
          "links": [],
          "id": "COREDCF70DB8B3CA4479876D759A3B7A39AC",
          "type": "ContentType2"
        },
        {
          "name": "HP Pavillion Keyboard",
          "links": [],
          "id": "COREF0AED9516AED4DC6A0692A696170FD57",
          "type": "ContentType2"
        },
        {
          "name": "HP Omen Keyboard",
          "links": [],
          "id": "CORE816259C0386D4704AB006B9F40D9F457",
          "type": "ContentType2"
        }
      ],
      "links": [],
      "aggregationResults": [
        {
          "itemCountPerCategory": [
            {
              "categoryApiName": "loc-sheraton-mall",
              "itemCount": 5
            },
            {
              "categoryApiName": "loc-stoneridge-mall",
              "itemCount": 5
            },
            {
              "categoryApiName": "man-hp",
              "itemCount": 5
            },
            {
              "categoryApiName": "ele-laptops",
              "itemCount": 3
            },
            {
              "categoryApiName": "ele-keyboards",
              "itemCount": 2
            }
          ],
          "name": "item_count_per_category"
        }
      ]
    }
  • 集計問合せ(製造元の場合):

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType2" AND (taxonomies.categories.nodes.apiName eq "ele-laptops"))&fields=name&links=none&limit=0&aggs=[{"name":"item_count_per_category","field":"apiname"}]

    集計問合せレスポンス
    {
      "hasMore": false,
      "offset": 0,
      "count": 5,
      "limit": 5,
      "items": [
        {
          "name": "HP Elite Dragonfly",
          "links": [],
          "id": "CORE02B5199C0C154F9AB29C42F829A47F21",
          "type": "ContentType2"
        },
        {
          "name": "HP Elite Folio",
          "links": [],
          "id": "COREAAC11256104F4D73AAF599230621A789",
          "type": "ContentType2"
        },
        {
          "name": "HP Elite X2",
          "links": [],
          "id": "COREDCF70DB8B3CA4479876D759A3B7A39AC",
          "type": "ContentType2"
        },
        {
          "name": "Razer Blade Stealth",
          "links": [],
          "id": "COREF49CB87945574CC59B2ACAE38A46D529",
          "type": "ContentType2"
        },
        {
          "name": "Razer Blade Pro",
          "links": [],
          "id": "CORE51A676D1B2FF4DB5B975806AFAF69284",
          "type": "ContentType2"
        }
      ],
      "links": [],
      "aggregationResults": [
        {
          "itemCountPerCategory": [
            {
              "categoryApiName": "ele-laptops",
              "itemCount": 5
            },
            {
              "categoryApiName": "loc-sheraton-mall",
              "itemCount": 5
            },
            {
              "categoryApiName": "loc-stoneridge-mall",
              "itemCount": 3
            },
            {
              "categoryApiName": "man-hp",
              "itemCount": 3
            },
            {
              "categoryApiName": "man-razer",
              "itemCount": 2
            }
          ],
          "name": "item_count_per_category"
        }
      ]
    }
エンドユーザーが選択した「ELE-laptops」と「MAN-hp」と「LOC-stonebrifge-mall」
  • 検索問合せ:

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType2" AND (taxonomies.categories.nodes.apiName eq "ele-laptops") AND (taxonomies.categories.nodes.apiName eq "man-hp") AND (taxonomies.categories.nodes.apiName eq "loc-stoneridge-mall"))&fields=name&links=none&aggs=[{"name":"item_count_per_category","field":"apiname"}]

    問合せレスポンスの検索
    {
      "hasMore": false,
      "offset": 0,
      "count": 3,
      "limit": 3,
      "items": [
        {
          "name": "HP Elite Dragonfly",
          "links": [],
          "id": "CORE02B5199C0C154F9AB29C42F829A47F21",
          "type": "ContentType2"
        },
        {
          "name": "HP Elite Folio",
          "links": [],
          "id": "COREAAC11256104F4D73AAF599230621A789",
          "type": "ContentType2"
        },
        {
          "name": "HP Elite X2",
          "links": [],
          "id": "COREDCF70DB8B3CA4479876D759A3B7A39AC",
          "type": "ContentType2"
        }
      ],
      "links": [],
      "aggregationResults": [
        {
          "itemCountPerCategory": [
            {
              "categoryApiName": "ele-laptops",
              "itemCount": 3
            },
            {
              "categoryApiName": "loc-sheraton-mall",
              "itemCount": 3
            },
            {
              "categoryApiName": "loc-stoneridge-mall",
              "itemCount": 3
            },
            {
              "categoryApiName": "man-hp",
              "itemCount": 3
            }
          ],
          "name": "item_count_per_category"
        }
      ]
    }
  • 集計問合せ(電子機器用):

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType2" AND (taxonomies.categories.nodes.apiName eq "man-hp") AND (taxonomies.categories.nodes.apiName eq "loc-stoneridge-mall"))&fields=name&links=none&limit=0&aggs=[{"name":"item_count_per_category","field":"apiname"}]

    集計問合せレスポンス
    {
      "hasMore": false,
      "offset": 0,
      "count": 5,
      "limit": 5,
      "items": [
        {
          "name": "HP Elite Dragonfly",
          "links": [],
          "id": "CORE02B5199C0C154F9AB29C42F829A47F21",
          "type": "ContentType2"
        },
        {
          "name": "HP Elite Folio",
          "links": [],
          "id": "COREAAC11256104F4D73AAF599230621A789",
          "type": "ContentType2"
        },
        {
          "name": "HP Elite X2",
          "links": [],
          "id": "COREDCF70DB8B3CA4479876D759A3B7A39AC",
          "type": "ContentType2"
        },
        {
          "name": "HP Pavillion Keyboard",
          "links": [],
          "id": "COREF0AED9516AED4DC6A0692A696170FD57",
          "type": "ContentType2"
        },
        {
          "name": "HP Omen Keyboard",
          "links": [],
          "id": "CORE816259C0386D4704AB006B9F40D9F457",
          "type": "ContentType2"
        }
      ],
      "links": [],
      "aggregationResults": [
        {
          "itemCountPerCategory": [
            {
              "categoryApiName": "loc-sheraton-mall",
              "itemCount": 5
            },
            {
              "categoryApiName": "loc-stoneridge-mall",
              "itemCount": 5
            },
            {
              "categoryApiName": "man-hp",
              "itemCount": 5
            },
            {
              "categoryApiName": "ele-laptops",
              "itemCount": 3
            },
            {
              "categoryApiName": "ele-keyboards",
              "itemCount": 2
            }
          ],
          "name": "item_count_per_category"
        }
      ]
    }
  • 集計問合せ(製造元の場合):

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType2" AND (taxonomies.categories.nodes.apiName eq "ele-laptops") AND (taxonomies.categories.nodes.apiName eq "loc-stoneridge-mall"))&fields=name&links=none&limit=0&aggs=[{"name":"item_count_per_category","field":"apiname"}]

    集計問合せレスポンス
    {
      "hasMore": false,
      "offset": 0,
      "count": 3,
      "limit": 3,
      "items": [
        {
          "name": "HP Elite Dragonfly",
          "links": [],
          "id": "CORE02B5199C0C154F9AB29C42F829A47F21",
          "type": "ContentType2"
        },
        {
          "name": "HP Elite Folio",
          "links": [],
          "id": "COREAAC11256104F4D73AAF599230621A789",
          "type": "ContentType2"
        },
        {
          "name": "HP Elite X2",
          "links": [],
          "id": "COREDCF70DB8B3CA4479876D759A3B7A39AC",
          "type": "ContentType2"
        }
      ],
      "links": [],
      "aggregationResults": [
        {
          "itemCountPerCategory": [
            {
              "categoryApiName": "ele-laptops",
              "itemCount": 3
            },
            {
              "categoryApiName": "loc-sheraton-mall",
              "itemCount": 3
            },
            {
              "categoryApiName": "loc-stoneridge-mall",
              "itemCount": 3
            },
            {
              "categoryApiName": "man-hp",
              "itemCount": 3
            }
          ],
          "name": "item_count_per_category"
        }
      ]
    }
  • 集計問合せ(ロケーションの場合):

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType2" AND (taxonomies.categories.nodes.apiName eq "ele-laptops") AND (taxonomies.categories.nodes.apiName eq "man-hp"))&fields=name&links=none&limit=0&aggs=[{"name":"item_count_per_category","field":"apiname"}]

    集計問合せレスポンス
    {
      "hasMore": false,
      "offset": 0,
      "count": 3,
      "limit": 3,
      "items": [
        {
          "name": "HP Elite Dragonfly",
          "links": [],
          "id": "CORE02B5199C0C154F9AB29C42F829A47F21",
          "type": "ContentType2"
        },
        {
          "name": "HP Elite Folio",
          "links": [],
          "id": "COREAAC11256104F4D73AAF599230621A789",
          "type": "ContentType2"
        },
        {
          "name": "HP Elite X2",
          "links": [],
          "id": "COREDCF70DB8B3CA4479876D759A3B7A39AC",
          "type": "ContentType2"
        }
      ],
      "links": [],
      "aggregationResults": [
        {
          "itemCountPerCategory": [
            {
              "categoryApiName": "ele-laptops",
              "itemCount": 3
            },
            {
              "categoryApiName": "loc-sheraton-mall",
              "itemCount": 3
            },
            {
              "categoryApiName": "loc-stoneridge-mall",
              "itemCount": 3
            },
            {
              "categoryApiName": "man-hp",
              "itemCount": 3
            }
          ],
          "name": "item_count_per_category"
        }
      ]
    }

一般的なユースケース

次の表に、例で使用されている3つのタクソノミを示します。 また、リポジトリ内のアイテムのリストと、参照可能なタクソノミを含むアイテム分類も含まれます:
タクソノミ アイテムとアイテムの分類 カテゴリ当たりのアイテム数
TA1
  TA1-cat_0
    TA1-cat_0_1
      TA1-cat_0_1_1
        TA1-cat_0_1_1_1
    TA1-cat_0_2
      TA1-cat_0_2_1
        TA1-cat_0_2_1_1  
 
TA2
  TA2-cat_0
    TA2-cat_0_1
      TA2-cat_0_1_1
        TA2-cat_0_1_1_1
 
TA3
  TA3-cat_0
    TA3-cat_0_1
      TA3-cat_0_1_1
        TA3-cat_0_1_1_1

次のすべてのアイテムに同じコンテンツ・タイプContentType1があります:

  • Item1 (追加先: TA1-cat_0_1_1_1)
  • Item2 (追加先: TA1-cat_0_1_1, TA1-cat_0_2_1, TA2-cat_0_1_1, TA3-cat_0_1_1)
  • Item3 (追加先: TA3-cat_0_1_1_1)
  • Item4 (追加先: TA2-cat_0_1, TA3-cat_0_1)
  • Item5 (追加先: TA3-cat_0_1)
TA1
  TA1-cat_0 (2)
    TA1-cat_0_1 (2)
      TA1-cat_0_1_1 (2)
        TA1-cat_0_1_1_1 (1)
    TA1-cat_0_2 (1)
      TA1-cat_0_2_1 (1)
        TA1-cat_0_2_1_1 (0)  
 
TA2
  TA2-cat_0 (2)
    TA2-cat_0_1 (2)
      TA2-cat_0_1_1 (1)
        TA2-cat_0_1_1_1 (0)
 
TA3
  TA3-cat_0 (4)
    TA3-cat_0_1 (4)
      TA3-cat_0_1_1 (2)
        TA3-cat_0_1_1_1 (1)

「eコマースのユース・ケース」と同様に、単純検索問合せを使用して、カテゴリなしのすべてのアセットを照合し、特定のリポジトリ内のタイプ・コンテンツType1のすべてのアセットに一致させます。 検索問合せリクエストに対する問合せおよびAPIレスポンスを読みやすくするために、サンプル・タクソノミのすべてのカテゴリがカテゴリ名と同じAPI名(apiName)を持ちます。 したがって、次の検索問合せ式および集計はすべてapiNameを使用します。 かわりにカテゴリIDを使用できます。

カテゴリが選択されていません

エンド・ユーザーを選択せずに、検索問合せのみを使用してカテゴリ当たりの集約アセット数を取得できます。
  • 検索問合せ:

    q=(repositoryId eq "<repo_ID>" AND type eq “ContentType1”)&fields=name&links=none&aggs=[{"name":"item_count_per_category","field":"apiname"}

  • 集計問合せ:

    q=<search_query>

エンド・ユーザーがTA1-cat_0_1_1とTA1-cat_0_2_1を選択解除しました
  • 検索問合せ:

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType1" AND (taxonomies.categories.nodes.apiName eq "ta1-cat_0_1_1" OR taxonomies.categories.nodes.apiName eq “ta1-cat_0_2_1"))&fields=name&links=none&aggs=[{"name":"item_count_per_category","field":"apiname"}]

  • 集計問合せ(TA1の場合):

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType1"&fields=name&links=none&limit=0&aggs=[{"name":"item_count_per_category","field":"apiname"}

  • 集計問合せ(カテゴリが選択されていないタクソノミ):

    q=<search_query>

エンドユーザーが選択したTA2-cat_0_1_1
  • 検索問合せ:

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType1" AND (taxonomies.categories.nodes.apiName eq "ta2-cat_0_1_1"))&fields=name&links=none&aggs=[{"name":"item_count_per_category","field":"apiname"}]

  • 集計問合せ(TA2の場合):

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType1"&fields=name&links=none&limit=0&aggs=[{"name":"item_count_per_category","field":"apiname"}

  • 集計問合せ(カテゴリが選択されていないタクソノミ):

    q=<search_query>

エンドユーザーが選択したTA3-cat_0_1_1
  • 検索問合せ:

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType1" AND (taxonomies.categories.nodes.apiName eq "ta3-cat_0_1_1"))&fields=name&links=none&aggs=[{"name":"item_count_per_category","field":"apiname"}]

  • 集計問合せ(TA3の場合):

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType1"&fields=name&links=none&limit=0&aggs=[{"name":"item_count_per_category","field":"apiname"}

  • 集計問合せ(カテゴリが選択されていないタクソノミ):

    q=<search_query>

エンドユーザーが選択したTA1-cat_0_1_1、TA1-cat_0_2_1およびTA2-cat_0_1_1
  • 検索問合せ:

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType1" AND (taxonomies.categories.nodes.apiName eq "ta1-cat_0_1_1" OR taxonomies.categories.nodes.apiName eq "ta1-cat_0_2_1") AND (taxonomies.categories.nodes.apiName eq “ta2-cat_0_1_1”))&fields=name&links=none&aggs=[{"name":"item_count_per_category","field":"apiname"}]

  • 集計問合せ(TA1の場合):

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType1" AND(taxonomies.categories.nodes.apiName eq "ta2-cat_0_1_1"))&fields=name&links=none&limit=0&aggs=[{"name":"item_count_per_category","field":"apiname"}]

  • 集計問合せ(TA2の場合):

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType1" AND(taxonomies.categories.nodes.apiName eq "ta1-cat_0_1_1" OR taxonomies.categories.nodes.apiName eq "ta1-cat_0_2_1"))&fields=name&links=none&limit=0&aggs=[{"name":"item_count_per_category","field":"apiname"}]

  • 集計問合せ(カテゴリが選択されていないタクソノミ):

    q=<search_query>

エンドユーザーが選択したTA2-cat_0_1とTA3-cat_0_1
  • 検索問合せ:

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType1" AND (taxonomies.categories.nodes.apiName eq "ta2-cat_0_1") AND (taxonomies.categories.nodes.apiName eq “ta3-cat_0_1”))&fields=name&links=none&aggs=[{"name":"item_count_per_category","field":"apiname"}]

  • 集計問合せ(TA2の場合):

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType1" AND (taxonomies.categories.nodes.apiName eq "ta3-cat_0_1"))&fields=name&links=none&limit=0&aggs=[{"name":"item_count_per_category","field":"apiname"}]

  • 集計問合せ(TA3の場合):

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType1" AND (taxonomies.categories.nodes.apiName eq "ta2-cat_0_1"))&fields=name&links=none&limit=0&aggs=[{"name":"item_count_per_category","field":"apiname"}]

  • 集計問合せ(カテゴリが選択されていないタクソノミ):

    q=<search_query>

エンドユーザーが選択したTA1-cat_0_1_1、TA1-cat_0_2_1、TA2-cat_0_1_1およびTA3-cat_0_1_1
  • 検索問合せ:

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType1" AND (taxonomies.categories.nodes.apiName eq "ta1-cat_0_1_1" OR taxonomies.categories.nodes.apiName eq "ta1-cat_0_2_1") AND (taxonomies.categories.nodes.apiName eq "ta2-cat_0_1_1") AND (taxonomies.categories.nodes.apiName eq “ta3-cat_0_1_1”))&fields=name&links=none&aggs=[{"name":"item_count_per_category","field":"apiname"}]

  • 集計問合せ(TA1の場合):

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType1" AND (taxonomies.categories.nodes.apiName eq "ta2-cat_0_1_1") AND (taxonomies.categories.nodes.apiName eq "ta3-cat_0_1_1"))&fields=name&links=none&limit=0&aggs=[{"name":"item_count_per_category","field":"apiname"}]

  • 集計問合せ(TA2の場合):

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType1" AND (taxonomies.categories.nodes.apiName eq "ta1-cat_0_1_1" OR taxonomies.categories.nodes.apiName eq "ta1-cat_0_2_1") AND (taxonomies.categories.nodes.apiName eq "ta3-cat_0_1_1"))&fields=name&links=none&limit=0&aggs=[{"name":"item_count_per_category","field":"apiname"}]

  • 集計問合せ(TA3の場合):

    q=(repositoryId eq "<repo_ID>" AND type eq "ContentType1" AND (taxonomies.categories.nodes.apiName eq "ta1-cat_0_1_1" OR taxonomies.categories.nodes.apiName eq "ta1-cat_0_2_1") AND (taxonomies.categories.nodes.apiName eq "ta2-cat_0_1_1"))&fields=name&links=none&limit=0&aggs=[{"name":"item_count_per_category","field":"apiname"}]

  • 集計問合せ(カテゴリが選択されていないタクソノミ):

    q=<search_query>

スクロールAPI

スクロールまたはスクロール・リクエストは、膨大な検索結果セットを取得するための推奨方法です。 ブール・パラメータscroll=trueを検索リクエストに追加して起動されます。 最初のスクロール検索リクエストの結果(成功した場合)は、レスポンスでscrollIdを返します。 最初のスクロール・リクエストの後続のすべてのスクロール・リクエストは、戻されるscrollIdをパラメータscrollId=<scrollId value>として指定する必要があります。 scrollIdは後続のスクロール・リクエスト間で変更される可能性があるため、クライアントは、セッション内の前のスクロール・レスポンスによって返されたscrollIdを常に送信する必要があります。 最初のスクロール・リクエストで指定されたqパラメータも、後続の各スクロール・リクエストで指定する必要があります。 スクロール・リクエストが結果0を返すか、レスポンスにscrollIdが設定されていないと、スクロール検索で一致したすべての結果が取得されます。

スクロール検索リクエストのページごとに返される結果の数は、limitパラメータによって決まります。 最初のスクロール・リクエストに指定されたlimitパラメータは、スクロール・セッションの存続期間中有効です。 その他の場合と同様に、検索レスポンスが大きすぎると、HTTPステータス・コード413になります。

スクロールは検索サーバーのコストがかかるため、スクロール・セッションは積極的にクリーンアップされます。 後続のスクロール・リクエスト間でscrollTTLミリ秒を超える経過時間が経過すると、スクロール・セッションがクリーンアップされ、セッションscrollIdをさらに使用するとエラーが発生します。 scrollTTLの最大値(およびデフォルト)は30000ミリ秒(30秒)です。 可能な場合は、scrollTTL値を短くすることをお薦めします。

ノート:

hasMoreパラメータは、スクロール検索に対して常にfalseを返します。 returnMasterパラメータがtrueに設定されている場合、スクロールは使用できません。

スクロールAPIセッションの例
最初のスクロール・リクエスト: /api/v1.1/items?q=(type eq "Employee" AND fields.role eq "Senior Developer")&scroll=true&scrollTTL=5000
  • scrollIdで最初のスクロール・レスポンスが切り捨てられました: scrollId=abcdefghij
後続のスクロール・リクエスト: /api/v1.1/items?q=(type eq "Employee" AND fields.role eq "Senior Developer")&scrollId=abcdefghij&scrollTTL=3000 (note scrollTTL can change)
  • 後続のスクロール・レスポンスをscrollIdで切り捨てました: scrollId=pqrstuvw
後続のスクロール・リクエスト: /api/v1.1/items?q=(type eq "Employee" AND fields.role eq "Senior Developer")&scrollId=pqrstuvw&scrollTTL=3000
  • 最終スクロール・レスポンスの切捨て: count=0

カスタム・ランキング・ポリシー

コンテンツ配信用のREST APIは、デフォルトで、次に説明する組込みのランキング・ポリシーを適用し、検索問合せに一致するアイテムの関連性スコアを計算します。 Oracle Content Managementでは、組込みポリシーをオーバーライドし、次に関連する構成可能なプロパティを持つランキング・メソッドのコレクションを含むカスタム・ランキング・ポリシーを定義することで、コンテンツ配信用のREST APIの検索問合せに一致するアイテムの関連性スコアを制御できます:
  • デジタル・アセットのコンテンツ・アイテムまたは属性に関する検索可能な標準フィールドとカスタム・フィールド
  • ランキング・メソッド一致条件への索引付きアイテム
  • アイテム関連性スコアへの影響: スコア増減。
  • 減衰関数
コンテンツ管理のREST APIの検索は、デフォルトで、組込みのランキング・ポリシーを適用して、検索問合せに一致するアイテムの関連性スコアを計算します。 管理検索でのカスタム・ランキング・ポリシーの使用はサポートされていません。
コンテンツ配信用のREST APIの検索では、次のようにカスタム・ランキング・ポリシーを使用できます:
  • グローバル・デフォルト: グローバル・デフォルトとして設定されているランキング・ポリシーは、組込みのランキング・ポリシーをオーバーライドし、検索問合せに一致するアイテムの関連性スコアを計算するためにデフォルトで適用されます。
  • チャネル・デフォルト: チャネル・デフォルトとして設定されているランキング・ポリシーは、組込みのランキング・ポリシーまたはグローバル・デフォルトをオーバーライドし、このチャネルの検索問合せに一致するアイテムの関連性スコアを計算するためにデフォルトで適用されます。
  • rankByパラメータ値: 検索問合せリクエストのrankByパラメータの値として設定されたランキング・ポリシーは、デフォルト・ポリシーをオーバーライドし、レスポンスで返されるアイテムの関連性スコアを計算するために適用されます。

組込みランキング・ポリシー

組込みのランキング・ポリシーでは、次の類似性ランキングを使用して、一致したアイテムの関連性スコアを計算します:
  • Elasticsearch関連性スコア: 検索問合せに一致するデフォルトでは、Elasticsearch類似性関連スコア(Okapi BM25アルゴリズム)でランク付けされます。
  • 複数条件問合せでの期間頻度: 複数期間検索問合せの場合、Elasticsearch関連性スコア・アルゴリズムでは、タイプ固有検索またはデフォルト(タイプ指定なし)検索に一致するアイテムのスコアを計算するときに、用語頻度(tf)が考慮されます。
  • 語幹一致: スコアリング・アルゴリズムは、同じランクを非定型一致および語幹一致に適用します(たとえば、OCIコンピュート・トポロジとOCIコンピュート・トポロジは同等です)。 同じ茎を持つ一致のグループ内で、非ステージ一致のランクは、語幹一致のランクより高くなります。

カスタム・ランキング・ポリシー

Oracle Content Managementのカスタム・ランキング・ポリシーを使用すると、送信された検索問合せの構造とは関係なく、ポリシーで指定された設定を使用して検索問合せに一致するアイテムの関連性スコアを変更できます。 これを実現するには、ランキング・ポリシーで次のことを制御するメソッドを定義します:
  • 一致ルール: アセット・タイプの標準またはユーザー定義フィールドで、照合が必要なもの(厳密な用語 - EQまたはフレーズ一致 - MT) 適用するランキング・メソッドの指定された値。
  • スコア変更: 一致するデータ・フィールドがアイテムの関連性スコアに与える影響(元のスコアを増やすか、時間の経過とともに減らします)。

使用可能なランキング・メソッドには、ブーストとピン・メソッドの2タイプがあります。 これらの方法では、アイテムの関連性スコアを増やすことができますが、減衰メソッドでは一定期間のスコアが減少します。

ランキング・ポリシーの仕組みを理解するには、コンテンツ・タイプ自動車のアイテムを使用するシンプルな例を考えてみます:
  • アイテム1: (name: Ferrari, description: Ferrari)
  • アイテム2: (name: Bugatti, description: Bugatti)
次の検索問合せは両方のアイテムと一致して戻されますが、組込みのランキング・ポリシーで計算された関連性スコアは異なります。 したがって、アイテムは別の順序で返され、問合せ2で一番上に返されない可能性があります。
  • 問合せ1: q=type eq “Automotive” and (description eq “Ferrari” or name eq “Bugatti”)
  • 問合せ2: q=type eq “Automotive”
検索問合せが常に上位(固定)のBugatti車に関するアイテムを返し、上位一致アイテムの中にFerrari車に関するアイテムを返すようにする場合は、2つのルールを使用してカスタム・ランキング・ポリシーを定義できます: boost - description (weight: 10, value: Ferrari)とpin - name (value: Bugatti). このポリシーを使用すると、どちらの問合せでも、常に最上位のアイテム2が返され、問合せの構造からアイテム1の関連性スコアが上がります:
  • 問合せ1の結果: アイテム1 (Ferrari)が10に押し上げられ、アイテム2 (Bugatti)が固定されます
  • 問合せ2の結果: アイテム1 (Ferrari)が10に押し上げられ、アイテム2 (Bugatti)が固定されます

カスタム・ランキング・ポリシーのライフサイクル

新しいランキング・ポリシーはドラフト・バージョンとして作成され、昇格できます。 ランキング・ポリシーのドラフト・バージョンを昇格すると、プロモートされたバージョンが作成されます。 コンテンツ管理者ロールを持つユーザーは、プロモートされたランキング・ポリシーをグローバル・デフォルトとして設定できます。 公開チャネルのマネージャは、プロモート済バージョンをチャネル・デフォルト・ポリシーとして割り当てることができます。 ローカリゼーション・ポリシーと同様に、チャネルには一度に1つのランキング・ポリシーのみを割り当てることができます。

コンテンツ配信のREST APIでランキング・ポリシーを使用可能にするには、公開済バージョンを作成するために公開する必要があります。 コンテンツ管理者は、ランキング・ポリシー・ページでランキング・ポリシーを公開できます。

次の表に、ランキング・ポリシーで許可されるアクションと、ポリシーの使用可能なバージョンに応じてコンテンツ・プレビューまたは配信検索APIのポリシー・ステータスの概要を示します:
使用可能なバージョン 昇格 チャネル・デフォルトとして設定 グローバル・デフォルトとして設定 パブリッシュ 非公開 配信API
Draft はい いいえ いいえ いいえ 該当なし いいえ
昇格済 該当なし はい はい はい 該当なし いいえ
Published 該当なし はい はい 該当なし はい active

ノート:

  • ドラフト、昇格および公開されたバージョンには、ランキング・ポリシーを一意に識別するポリシー記述子が同じです。
  • アクティブ・ステータスは、コンテンツ配信のREST APIの検索問合せに一致する結果が、ランキング・ポリシーで定義されたルールに基づいて関連性でランク付けされることを意味します(グローバル・デフォルトとして設定されている場合、チャネル・デフォルトとして割り当てられている場合、またはリクエストURLのrankByパラメータで指定されている場合)。

サポートされているランキング・メソッド

Oracle Content Managementのカスタム・ランキング・ポリシーはランキング・メソッドのコレクションで、それぞれがアセット・タイプの標準またはユーザー定義のデータ・フィールドと一致するように定義され、一致するアイテムの関連スコアを増減します。 ランキング・ポリシーが適用されると、発行した検索問合せに一致するアイテムが、1つのメソッド、複数のメソッドまたはなしの一致ルールを満たすことができます。 アイテムがどのメソッドとも一致しなかった場合、その関連性スコアは、組込みのランキング・ポリシー(Elasticsearch)によって計算されたものと同じままになります。 アイテムが1つのメソッドに一致する場合、元のスコアには、このメソッドで設定されたパラメータ加重値が乗算されます。 アイテムが複数のランキング・メソッドに一致する場合、その関連性スコア=元のスコア* weight1 * weight2 * ...

カスタム・ランキング・ポリシーを定義するために、Oracle Content Managementでは現在次のランキング・メソッドがサポートされています:

ランキング方法 メソッド・パラメータ データ・フィールド・タイプの互換性 コメント
ブースト - 同等

アセット・タイプ - フィールド {1-n}

値 {1-m}

weight

テキスト、日付、数値

選択したデータ・フィールドに複数の値が設定されている場合、または式でブーストするアイテムを照合するために使用されます。

日付タイプの値は、指定された時間間隔内で照合されます。

ブースト - フレーズ一致

アセット・タイプ - フィールド {1-n}

値 {1-m}

weight

テキスト

選択したデータ・フィールドに複数の値が設定されている場合、または式でブーストするアイテムを照合するために使用されます。

フレーズ値は、フィールド・データのどこでも一致します。

たとえば、メソッドで設定された値がイタリアの場合、「イタリアは欧州の国」または「ローマはイタリアの首都」の両方のフレーズと一致します。

ピン - 同等

アセット・タイプ - フィールド {1-n}

値 {1-m}

テキスト、日付、数値

重みはサーバー制御の値で、固定されたアイテムが上部にバブルするように十分な大きさです。

選択したフィールドに複数の値が設定されている場合、ピン留め対象のアイテムを照合するために式でORが使用されます。

ピン - フレーズ一致

アセット・タイプ - フィールド {1-n}

値 {1-m}

テキスト

重みはサーバー制御の値で、固定されたアイテムが上部にバブルするように十分な大きさです。

選択したフィールドに複数の値が設定されている場合、ピン留め対象のアイテムを照合するために式でORが使用されます。

減衰 - 日付

アセット・タイプ - フィールド {1-n}

origin

offset

scale

日付

Standardフィールド: publishedDateフィールドまたはユーザー定義フィールドのみ: 日付タイプの任意のフィールド。

メソッドは、アイテムの既存の関連性スコアを減らします。

減衰 - 数値

アセット・タイプ - フィールド(1-n)

origin

offset

scale

数値

ユーザー定義フィールド: 数値タイプの任意のフィールド。

メソッドは、アイテムの既存の関連性スコアを減らします。

ノート:

  • 「入力された検索」では、検索問合せ式でアセット・タイプを明示的に指定する検索リクエストの場合、ブースト、ピンまたは減衰のランキング・メソッドは、アセット・タイプで「標準とユーザー定義の両方のデータ・フィールド」を使用して、関連性スコアの強化、固定または減少のアイテムに一致します。
  • 「未入力またはデフォルト検索」では、検索問合せ式でアセット・タイプを指定しない検索リクエストの場合、ブースト、ピンまたは減衰のランキング・メソッドは、アセット・タイプで「標準データ・フィールドのみ」を使用して、関連性スコアの強化、固定または減少のアイテムに一致します。
  • 複数の一致フィールド: ランキング・メソッドがアセット・タイプの複数のフィールドに一致するように構成されている場合、複数のフィールドまたはすべてのフィールドに一致するアイテムの関連性スコアは、メソッドに設定された重みの倍数になります。 たとえば、重み20のランキング・メソッドの2つのフィールドが一致した場合、アイテム・スコアは20 x 20 = 400になります。

ブースト- 同等メソッド

「ブースト - 同等」メソッドを使用すると、送信された検索リクエストに一致するアイテムの関連性スコアを増やすことができます。アイテムにメソッドで設定されたアセット・タイプがあり、そのフィールドがメソッドで設定された正確な値と一致している(フィールド値の照合にはEQオペレータが適用されます)。 アイテムの元の関連性スコアに、メソッドで定義された重みが乗算されます。

アイテムが「ブースト - 同等」または「ブースト - フレーズ一致」メソッドで定義された複数のフィールドと一致する場合、その関連性スコアは次のように計算されます:
  • アイテムは単一フィールドと一致: アイテム・スコア=オリジナル・スコア*重さ
  • アイテムが複数のフィールドに一致: アイテム・スコア=オリジナル・スコア*重さ*重さ* ...

ノート:

アセットの日付タイプのフィールド値がブーストに設定された値と一致 - 値から値+オフセットまでの時間間隔内の等しいメソッド。
サンプル・リクエスト
PUT /content/management/api/v1.1/search/rankingPolicies/5A487437500042849B54FE3BA4EC80C2?q=(status%20eq%20%22draft%22)&fields=all
 
{
  "name": "rp1",
  "description": "",
  "apiName": "rp1",
  "entries": [
    {
      "key": {
        "name": "myBoostEquals",
        "methodType": "equal",
        "weight": 10,
        "values": [
          {
            "type": "text",
            "entries": [
              "cat"
            ]
          },
          {
            "type": "numeric",
            "entries": []
          },
          {
            "type": "datetime",
            "entries": [
              {
                "origin": "2022-05-10T00:00:00.000-07:00",
                "originTimeZone": "America/Los_Angeles",
                "offset": "10d"
              }
            ]
          }
        ],
        "type": "boostMethod"
      },
      "value": [
        {
          "name": "name",
          "contentType": "myType1",
          "weightMultiplier": 2,
          "type": "standardAssetField"
        },
        {
          "name": "published date",
          "contentType": "myType1",
          "weightMultiplier": 1,
          "type": "standardAssetField"
        }
      ]
    }
  ],
  "policyId": "B025517B9D47454A9311EDD3D4D92BD6"
}

ブースト - フレーズ一致メソッド

「ブースト - フレーズ一致」メソッドを使用すると、送信された検索リクエストに一致するアイテムの関連性スコアを上げることができます。アイテムにメソッドで設定されたアセット・タイプがあり、そのフィールドがメソッドで設定されたフレーズ値と一致している場合(フィールド値の照合にMT演算子が適用されます)。 アイテムの元の関連性スコアに、メソッドで定義された重みが乗算されます。

サンプル・リクエスト
PUT /content/management/api/v1.1/search/rankingPolicies/5A487437500042849B54FE3BA4EC80C2?q=(status%20eq%20%22draft%22)&fields=all
 
{
  "name": "rp1",
  "description": "",
  "apiName": "rp1",
  "entries": [
    {
      "key": {
        "name": "myBoostMethod1",
        "methodType": "phraseMatch",
        "weight": 10,
        "values": [
          {
            "type": "text",
            "entries": [
              "cat"
            ]
          }
        ],
        "type": "boostMethod"
      },
      "value": [
        {
          "name": "name",
          "contentType": "myType1",
          "weightMultiplier": 2,
          "type": "standardAssetField"
        },
        {
          "weightMultiplier": 10,
          "contentType": "myType1",
          "name": "myField1",
          "type": "customAssetField",
          "id": "2332EA112CD140F7A4D6847451B1355F"
        }
      ]
    }
  ],
  "policyId": "B025517B9D47454A9311EDD3D4D92BD6"
}

ピン - 同等メソッド

「ピン - 同等」メソッドを使用すると、送信された検索リクエストに一致するアイテムに最上位の関連性を設定できます。ただし、そのアイテムにメソッドで設定されたアセット・タイプがあり、そのフィールドがメソッドで設定された正確な値と一致している場合(フィールド値の照合には、EQオペレータが適用されます)。

アイテムが「ピン - 同等」または「ピン - フレーズ一致」メソッドに定義されている複数のフィールドと一致する場合、その関連性スコアは次のように計算されます:

  • アイテムは単一フィールドと一致: アイテム・スコア=オリジナル・スコア* 5000
  • アイテムが複数のフィールドに一致: アイテム・スコア=オリジナル・スコア* 5000 * 5000 * ...

ノート:

アセットの日付タイプのフィールド値は、値から値+オフセットまでの時間間隔内の「ピン - 同等」メソッドの値セットに一致します。

サンプル・リクエスト
PUT /content/management/api/v1.1/search/rankingPolicies/5A487437500042849B54FE3BA4EC80C2?q=(status%20eq%20%22draft%22)&fields=all
 
{
  "name": "rp1",
  "description": "",
  "apiName": "rp1",
  "entries": [
    {
      "key": {
        "values": [
          {
            "type": "text"
          },
          {
            "type": "numeric"
          },
          {
            "type": "datetime",
            "entries": [
              {
                "origin": "2022-05-10T00:00:00.000-07:00",
                "originTimeZone": "America/Los_Angeles",
                "offset": "12h"
              }
            ]
          }
        ],
        "name": "myPinEquals1",
        "type": "pinMethod",
        "methodType": "equal"
      },
      "value": [
        {
          "contentType": "myType1",
          "name": "name",
          "type": "standardAssetField"
        },
        {
          "contentType": "myType1",
          "name": "published date",
          "type": "standardAssetField"
        }
      ]
    }
  ],
  "policyId": "B025517B9D47454A9311EDD3D4D92BD6"
}

ピン - フレーズ一致メソッド

「ピン - フレーズ一致」メソッドでは、アイテムにメソッドで設定されたアセット・タイプがあり、そのフィールドがメソッドで設定されたフレーズ値と一致しているかぎり、送信済検索リクエストに一致するアイテムの最上位の関連性を設定できます(フィールド値の照合にはMT演算子が適用されます)。

サンプル・リクエスト
PUT /content/management/api/v1.1/search/rankingPolicies/5A487437500042849B54FE3BA4EC80C2?q=(status%20eq%20%22draft%22)&fields=all
 
{
  "name": "rp1",
  "description": "",
  "apiName": "rp1",
  "entries": [
    {
      "key": {
        "values": [
          {
            "type": "text",
            "entries": [
              "cat",
              "black"
            ]
          }
        ],
        "name": "myPinPhraseMatch1",
        "type": "pinMethod",
        "methodType": "phraseMatch"
      },
      "value": [
        {
          "contentType": "myType1",
          "name": "description",
          "type": "standardAssetField"
        },
        {
          "contentType": "myType1",
          "name": "name",
          "type": "standardAssetField"
        },
        {
          "contentType": "myType1",
          "name": "myfield1",
          "type": "customAssetField",
          "id": "8921A6FDFD1C4C2AB966DE0BA1FDFF3D"
        }
      ]
    }
  ],
  "policyId": "B025517B9D47454A9311EDD3D4D92BD6"
}

減衰 - 日付メソッド

「減衰 - 日付」メソッドでは、アイテムにメソッドで設定されたアセット・タイプがあるかぎり、送信済検索リクエストに一致するアイテムの関連性を減らすことができます。 このアイテムが基準日に持つ関連性スコアは、アセット・タイプで選択した日付フィールドの値が基準から離れるようになります。

現在の減衰 - 日付または衰退 - Oracle Content Managementの数値メソッドは、Elasticsearchでサポートされているガウス関数、指数関数または線形減衰関数をサポートしていません。 かわりに、Oracle Content Managementを使用してステップ・ダウン減衰関数を定義し、同様の効果を実現できます: ステップ・ダウン減衰関数

フィールド値の一致オリジン+/-オフセットを持つアイテムの計算された関連性スコアには、減衰メソッドで計算される重みが掛けられます。 一致するアイテムの関連性スコアは、ブースト・ランキング・メソッドによって増加できます。 スケール= 0の場合、フィールド値がオリジン+オフセットを上回る、またはオリジン-オフセットを下回る場合、重みが0に減ります。 それ以外の場合は、スケール値の期間中、減衰値の半分に減少し、0に減ります。

サンプル・リクエスト
PUT /content/management/api/v1.1/search/rankingPolicies/5A487437500042849B54FE3BA4EC80C2?q=(status%20eq%20%22draft%22)&fields=all
 
{
  "name": "rp1",
  "description": "",
  "apiName": "rp1",
  "entries": [
    {
      "key": {
        "name": "myDecayDate",
        "type": "decayMethod",
        "origin": "2022-05-10T00:00:00.000-07:00",
        "originTimeZone": "America/Los_Angeles",
        "offset": "6h",
        "scale": "12h",
        "decay": "0.1",
        "methodType": "date"
      },
      "value": [
        {
          "contentType": "myType1",
          "name": "published date",
          "type": "standardAssetField"
        }
      ]
    }
  ],
  "policyId": "B025517B9D47454A9311EDD3D4D92BD6"
}

減衰 - 数値メソッド

「減衰 - 数値」メソッドでは、このアイテムにメソッドで設定されたアセット・タイプがあるかぎり、送信済検索リクエストに一致するアイテムの関連性を減らすことができます。 このアイテムが最初に持つ関連性スコアによって、アセット・タイプで選択した数値フィールドの値が元の値から除外されます。

「減衰 - 数値」メソッドは、「減衰 - 日付」メソッドと同じステップ・ダウン減衰関数を使用します

サンプル・リクエスト
PUT /content/management/api/v1.1/search/rankingPolicies/5A487437500042849B54FE3BA4EC80C2?q=(status%20eq%20%22draft%22)&fields=all
 
{
  "name": "rp1",
  "description": "",
  "apiName": "rp1",
  "entries": [
    {
      "key": {
        "name": "myDecayNumeric",
        "type": "decayMethod",
        "origin": "10",
        "offset": "2",
        "scale": "5",
        "decay": "0.1",
        "methodType": "numeric"
      },
      "value": [
        {
          "contentType": "myType1",
          "name": "mynumberfield1",
          "type": "customAssetField",
          "id": "F0C4FA257D5B4C6C81656837D867B29E"
        }
      ]
    }
  ],
  "policyId": "B025517B9D47454A9311EDD3D4D92BD6"
}