REST Resource: indexing.datasources.items

リソース: Item

検索インデックス内のアイテムである単一のオブジェクトを表します(ファイル、フォルダ、データベース レコードなど)。

JSON 表現
{
  "name": string,
  "acl": {
    object (ItemAcl)
  },
  "metadata": {
    object (ItemMetadata)
  },
  "structuredData": {
    object (ItemStructuredData)
  },
  "content": {
    object (ItemContent)
  },
  "version": string,
  "status": {
    object (ItemStatus)
  },
  "queue": string,
  "payload": string,
  "itemType": enum (Item.ItemType)
}
フィールド
name

string

アイテムの名前。形式: datasources/{sourceId}/items/{itemId}

これは必須項目です。最大長は 1,536 文字です。

acl

object (ItemAcl)

このアイテムのアクセス制御リスト。

metadata

object (ItemMetadata)

メタデータ情報。

structuredData

object (ItemStructuredData)

データソースのスキーマに登録されているオブジェクト定義に準拠する必要があるアイテムの構造化データ。

content

object (ItemContent)

インデックスに登録され、テキスト検索が可能なアイテムのコンテンツ。

version

string (bytes format)

必須。インデックス システムは、データソースのバージョンをバイト文字列として保存し、インデックス内のアイテムのバージョンとキューに登録されたアイテムのバージョンを辞書順で比較します。

Cloud Search インデックス登録では、現在インデックスに登録されているアイテムのバージョン以下であるバージョン値を持つキュー内のアイテムは、インデックスに登録または削除されません。このフィールドの最大長は 1,024 バイトです。

アイテムのバージョンが削除プロセスに与える影響については、手動削除後にリビジョンを処理するをご覧ください。

Base64 でエンコードされた文字列。

status

object (ItemStatus)

アイテムのステータス。出力専用フィールド。

queue

string

このアイテムが属するキュー。最大で 100 文字です。

payload

string (bytes format)

このアイテムには、追加の状態コネクタを保存できます。最大長は 10,000 バイトです。

Base64 でエンコードされた文字列。

itemType

enum (Item.ItemType)

このアイテムのタイプ。

ItemAcl

アイテムのアクセス制御リスト情報。詳細については、マップの ACL をご覧ください。

JSON 表現
{
  "inheritAclFrom": string,
  "aclInheritanceType": enum (ItemAcl.AclInheritanceType),
  "readers": [
    {
      object (Principal)
    }
  ],
  "deniedReaders": [
    {
      object (Principal)
    }
  ],
  "owners": [
    {
      object (Principal)
    }
  ]
}
フィールド
inheritAclFrom

string

アクセス権リスト(ACL)を継承するアイテムの名前。注: ACL の継承は、子アイテムへのアクセス権のみを提供するもので、構造的な関係を定義するものではありません。また、大量のアイテム グループを簡単に削除することもできません。インデックスから ACL の親を削除すると、inheritAclFrom フィールドで親を参照する子アイテムのアクセス権のみが変更されます。アイテムは引き続きインデックスに登録されていますが、検索結果に表示されないことがあります。一方、コンテナ アイテムを削除すると、containerName フィールドを介してコンテナを参照するすべてのアイテムも削除されます。このフィールドの最大長は 1,536 文字です。

aclInheritanceType

enum (ItemAcl.AclInheritanceType)

アイテムが親から ACL を継承するときに適用するアクセス ルールのタイプを設定します。これは常に inheritAclFrom フィールドと連動して設定する必要があります。また、inheritAclFrom フィールドが設定されている場合は、このフィールドを有効な AclInheritanceType に設定する必要があります。

readers[]

object (Principal)

検索結果でアイテムを表示できるプリンシパルのリスト。別の項目から権限を継承する場合や、項目を表示しない(virtual containers など)場合は省略可。要素の最大数は 1,000 です。

deniedReaders[]

object (Principal)

検索結果のアイテムへのアクセスが明示的に拒否されているプリンシパルのリスト。プリンシパルはデフォルトでアクセスが拒否されますが、拒否された読み取り元を使用して例外を処理し、許可された読み取り元のリストを上書きします。要素の最大数は 100 です。

owners[]

object (Principal)

省略可。アイテムの所有者のリスト。このフィールドは、ドキュメントへのアクセス権には関係ありません。ただし、クエリを実行したユーザーがオーナーであるアイテムについては、ランキングがわずかに上がります。要素の最大数は 5 です。

ItemAcl.AclInheritanceType

ACL 継承のタイプ。

列挙型
NOT_APPLICABLE この項目が ACL を継承しない場合のデフォルト値。inheritAclFrom が空の場合は NOT_APPLICABLE を使用します。ACL 継承のないアイテムでも、独自の readers フィールドと deniedReaders フィールドで ACL を指定できます。
CHILD_OVERRIDE 承認の競合が発生した場合、子アイテムの ACL によって読み取りアクセス権が決まります。
PARENT_OVERRIDE 認可の競合が発生した場合、inheritAclFrom フィールドで指定された親アイテムの ACL によって読み取りアクセス権が決まります。
BOTH_PERMIT アクセスは、このアイテムと inheritAclFrom フィールドで指定された親アイテムの両方で読み取りアクセスが許可されている場合にのみ許可されます。

プリンシパル

ユーザー、グループ、ドメインへの参照。

JSON 表現
{

  // Union field principal can be only one of the following:
  "gsuitePrincipal": {
    object (GSuitePrincipal)
  },
  "userResourceName": string,
  "groupResourceName": string
  // End of list of possible types for union field principal.
}
フィールド

共用体フィールド principal

principal は次のいずれかになります。

gsuitePrincipal

object (GSuitePrincipal)

このプリンシパルは、Google Workspace のユーザー、グループ、またはドメインです。

userResourceName

string

このプリンシパルは、外部 ID を使用して識別されるユーザーです。name フィールドには、identitysources/{sourceId}/users/{ID} の形式でユーザー リソース名を指定する必要があります。

groupResourceName

string

このプリンシパルは、外部 ID を使用して識別されるグループです。name フィールドには、identitysources/{sourceId}/groups/{ID} の形式でグループ リソース名を指定する必要があります。

ItemMetadata

アイテムで使用可能なメタデータ フィールド。

JSON 表現
{
  "title": string,
  "sourceRepositoryUrl": string,
  "containerName": string,
  "objectType": string,
  "createTime": string,
  "updateTime": string,
  "interactions": [
    {
      object (Interaction)
    }
  ],
  "contentLanguage": string,
  "mimeType": string,
  "searchQualityMetadata": {
    object (SearchQualityMetadata)
  },
  "keywords": [
    string
  ],
  "hash": string,
  "contextAttributes": [
    {
      object (ContextAttribute)
    }
  ]
}
フィールド
title

string

アイテムのタイトル。指定されている場合、query.search の結果のタイトルとして表示されます。最大長は 2,048 文字です。

sourceRepositoryUrl

string

データを提供するソース リポジトリにリンクします。検索結果では、このリンクがタイトルに適用されます。空白文字や特殊文字が含まれていると、Cloud Search の結果リンクでリダイレクト通知がトリガーされることがあります。これを回避するには、URL をエンコードします。最大長は 2,048 文字です。

containerName

string

このアイテムのコンテナの名前。コンテナ アイテムを削除すると、このアイテムは自動的に削除されます。注: ACL はコンテナ アイテムから継承されません。アイテムに ACL 継承を指定するには、inheritAclFrom フィールドを使用します。最大長は 1,536 文字です。

objectType

string

項目のタイプ。これは、データソースに登録されているスキーマ内のオブジェクト定義の名前に対応している必要があります。たとえば、データソースのスキーマに「document」という名前のオブジェクト定義が含まれている場合、そのタイプのオブジェクトのアイテム インデックス登録リクエストでは、objectType を「document」に設定する必要があります。最大長は 256 文字です。

createTime

string (Timestamp format)

ソース リポジトリでアイテムが作成された時刻。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

updateTime

string (Timestamp format)

ソース リポジトリでアイテムが最後に変更された時刻。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

interactions[]

object (Interaction)

アイテムのインタラクションのリスト。インタラクションは query.search の品質向上に使用されますが、エンドユーザーには公開されません。要素の最大数は 1,000 です。

contentLanguage

string

商品の BCP-47 言語コード(「en-US」や「sr-Latn」など)。詳しくは、http://www.unicode.org/reports/tr35/#Unicode_locale_identifier を参照してください。最大 32 文字までです。

mimeType

string

ソース リポジトリの ItemContent.content の元の MIME タイプ。最大長は 256 文字です。

searchQualityMetadata

object (SearchQualityMetadata)

商品アイテムの追加の検索品質メタデータ

keywords[]

string

商品アイテムに一致する追加のキーワードまたはフレーズ。ユーザー作成コンテンツの内部用。要素の最大数は 100 です。最大長は 8,192 文字です。

hash

string

API 呼び出し元から提供されたハッシュ値。これは、items.push メソッドで使用して、変更された状態を計算できます。最大長は 2,048 文字です。

contextAttributes[]

object (ContextAttribute)

商品アイテムに関連付けられた名前付き属性のセット。これは、リクエストのコンテキストに基づいてアイテムのランキングに影響を与えるために使用できます。要素の最大数は 10 です。

インタラクション

ユーザーとアイテムのインタラクションを表します。

JSON 表現
{
  "type": enum (Interaction.InteractionType),
  "principal": {
    object (Principal)
  },
  "interactionTime": string
}
フィールド
type

enum (Interaction.InteractionType)

principal

object (Principal)

アイテムに対して操作を行ったユーザー。

interactionTime

string (Timestamp format)

ユーザーがアイテムに対してアクションを行った日時。1 人のユーザーに対して同じ種類のアクションが複数ある場合は、最新のアクションのみが記録されます。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

Interaction.InteractionType

ユーザーがアイテムに対して行ったアクティビティのタイプ。

列挙型
UNSPECIFIED 無効な値です。
VIEW このインタラクションにより、ユーザーがアイテムを閲覧したことが示されます。
EDIT このインタラクションにより、ユーザーがアイテムを編集したことが示されます。

SearchQualityMetadata

商品アイテムの追加の検索品質メタデータ。

JSON 表現
{
  "quality": number
}
フィールド
quality

number

検索品質に影響を与えるアイテムの品質を示す値。値は 0.0(品質が低い)~ 1.0(品質が高い)の範囲で指定します。デフォルト値は 0.0 です。

ContextAttribute

アイテムに関連付けられた名前付き属性。リクエストのコンテキストに基づいてアイテムのランキングに影響を与えるために使用できます。

JSON 表現
{
  "name": string,
  "values": [
    string
  ]
}
フィールド
name

string

属性の名前。空にすることはできません。最大 32 文字までです。名前の先頭は英字にする必要があります。英字(A ~ Z、a ~ z)または数字(0 ~ 9)のみを使用できます。名前は、照合される前に正規化(小文字化)されます。

values[]

string

属性のテキスト値。要素の最大数は 10 です。配列内の要素の最大長は 32 文字です。値は、照合される前に正規化(小文字化)されます。

ItemStructuredData

商品アイテムに使用できる構造化データ フィールド。

JSON 表現
{
  "object": {
    object (StructuredDataObject)
  },
  "hash": string
}
フィールド
object

object (StructuredDataObject)

データソースのスキーマに登録されているオブジェクト定義に準拠する構造化データ オブジェクト。

hash

string

API 呼び出し元から提供されたハッシュ値。これは、items.push メソッドで使用して、変更された状態を計算できます。最大長は 2,048 文字です。

StructuredDataObject

名前付きプロパティで構成される構造化データ オブジェクト。

JSON 表現
{
  "properties": [
    {
      object (NamedProperty)
    }
  ]
}
フィールド
properties[]

object (NamedProperty)

オブジェクトのプロパティ。要素の最大数は 1,000 です。

NamedProperty

構造化データの型付きの名前と値のペア。値の型は、objectType のオブジェクト定義で name プロパティに登録されている型と同じにする必要があります。

JSON 表現
{
  "name": string,

  // Union field value can be only one of the following:
  "integerValues": {
    object (NamedProperty.IntegerValues)
  },
  "doubleValues": {
    object (NamedProperty.DoubleValues)
  },
  "timestampValues": {
    object (NamedProperty.TimestampValues)
  },
  "booleanValue": boolean,
  "objectValues": {
    object (NamedProperty.ObjectValues)
  },
  "enumValues": {
    object (NamedProperty.EnumValues)
  },
  "dateValues": {
    object (NamedProperty.DateValues)
  },
  "textValues": {
    object (NamedProperty.TextValues)
  },
  "htmlValues": {
    object (NamedProperty.HtmlValues)
  }
  // End of list of possible types for union field value.
}
フィールド
name

string

プロパティの名前。この名前は、スキーマ内のオブジェクト定義に登録されたプロパティの名前に対応している必要があります。このプロパティの最大長は 256 文字です。

共用体フィールド value。名前付きプロパティの値。プロパティに格納できる値の型は 1 つのみです。value は次のいずれかになります。
integerValues

object (NamedProperty.IntegerValues)

doubleValues

object (NamedProperty.DoubleValues)

timestampValues

object (NamedProperty.TimestampValues)

booleanValue

boolean

objectValues

object (NamedProperty.ObjectValues)

enumValues

object (NamedProperty.EnumValues)

dateValues

object (NamedProperty.DateValues)

textValues

object (NamedProperty.TextValues)

htmlValues

object (NamedProperty.HtmlValues)

NamedProperty.IntegerValues

整数値のリスト。

JSON 表現
{
  "values": [
    string
  ]
}
フィールド
values[]

string (int64 format)

NamedProperty.DoubleValues

浮動小数点値のリスト。

JSON 表現
{
  "values": [
    number
  ]
}
フィールド
values[]

number

NamedProperty.TimestampValues

タイムスタンプの値のリスト。

JSON 表現
{
  "values": [
    string
  ]
}
フィールド
values[]

string (Timestamp format)

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

NamedProperty.ObjectValues

オブジェクト値のリスト。

JSON 表現
{
  "values": [
    {
      object (StructuredDataObject)
    }
  ]
}
フィールド
values[]

object (StructuredDataObject)

NamedProperty.EnumValues

列挙型の値のリスト。

JSON 表現
{
  "values": [
    string
  ]
}
フィールド
values[]

string

文字列値の最大長は 32 文字です。

NamedProperty.DateValues

日付値のリスト。

JSON 表現
{
  "values": [
    {
      object (Date)
    }
  ]
}
フィールド
values[]

object (Date)

NamedProperty.TextValues

テキスト値のリスト。

JSON 表現
{
  "values": [
    string
  ]
}
フィールド
values[]

string

テキスト値の最大長は 2,048 文字です。

NamedProperty.HtmlValues

html 値のリスト。

JSON 表現
{
  "values": [
    string
  ]
}
フィールド
values[]

string

html 値の最大長は 2,048 文字です。

ItemContent

Cloud Search によってインデックスに登録され、表示されるアイテムのコンテンツ。inlineContent として指定できるのは UTF-8 でエンコードされた文字列のみです。アップロードするコンテンツがバイナリでない場合、UTF-8 でエンコードする必要があります。

JSON 表現
{
  "contentFormat": enum (ItemContent.ContentFormat),
  "hash": string,

  // Union field content can be only one of the following:
  "inlineContent": string,
  "contentDataRef": {
    object (UploadItemRef)
  }
  // End of list of possible types for union field content.
}
フィールド
contentFormat

enum (ItemContent.ContentFormat)

hash

string

コンテンツの API クライアントによって計算され、提供されるハッシュ情報。items.push メソッドと組み合わせて使用すると、変更後の状態を計算できます。最大長は 2,048 文字です。

共用体フィールド content

content は次のいずれかになります。

inlineContent

string (bytes format)

更新メソッド内でインラインで指定されるコンテンツ。最大長は 102,400 バイト(100 KiB)です。

Base64 でエンコードされた文字列。

contentDataRef

object (UploadItemRef)

書き込みメソッドで、以前にアップロードしたコンテンツの参照 ID をアップロードします。

ItemContent.ContentFormat

コンテンツの形式。形式が RAW の場合は、コンテンツは mimeType で指定された形式である必要があります。

列挙型
UNSPECIFIED 無効な値です。
HTML contentFormat は HTML です。
TEXT contentFormat は自由形式のテキストです。
RAW contentFormat は未加工のバイトです。

UploadItemRef

アップロード セッション リファレンスを表します。この参照は upload method を介して作成されます。この参照は、作成後 30 日間有効です。アイテム コンテンツの更新では、contentDataRef を介してこのアップロードされたコンテンツを参照する場合があります。

JSON 表現
{
  "name": string
}
フィールド
name

string

コンテンツ参照の名前。最大長は 2,048 文字です。

ItemStatus

これには、アイテムのステータスとエラーが含まれます。

JSON 表現
{
  "code": enum (ItemStatus.Code),
  "processingErrors": [
    {
      object (ProcessingError)
    }
  ],
  "repositoryErrors": [
    {
      object (RepositoryError)
    }
  ]
}
フィールド
code

enum (ItemStatus.Code)

ステータス コード。

processingErrors[]

object (ProcessingError)

アイテムが ERROR 状態の場合のエラーの詳細。

repositoryErrors[]

object (RepositoryError)

コネクタから報告されたリポジトリ エラー。

ProcessingError

JSON 表現
{
  "code": enum (ProcessingErrorCode),
  "errorMessage": string,
  "fieldViolations": [
    {
      object (FieldViolation)
    }
  ]
}
フィールド
code

enum (ProcessingErrorCode)

エラーの性質を示すエラーコード。

errorMessage

string

エラーの説明。

fieldViolations[]

object (FieldViolation)

アイテム フィールドが無効な場合、このフィールドには検証エラーの詳細が含まれます。

ProcessingErrorCode

Cloud Search サーバーがアイテムを処理する際に発生したエラーを示すコード。1 つのアイテムに複数の処理エラーが含まれている場合があります。

列挙型
PROCESSING_ERROR_CODE_UNSPECIFIED 入力専用の値。この値は [アイテム] で使用します。
MALFORMED_REQUEST アイテムの ACL、メタデータ、またはコンテンツの形式が正しくないか、無効な状態です。FieldViolations には、問題の場所に関する詳細情報が含まれています。
UNSUPPORTED_CONTENT_FORMAT コンテンツの形式がサポートされていません。
INDIRECT_BROKEN_ACL ACL が破損している他のアイテムを継承しているため、またはマッピングされていない子孫を持つグループがあるため、ACL 情報が不完全なアイテム。
ACL_CYCLE ACL 継承グラフがループを形成していた。

FieldViolation

JSON 表現
{
  "field": string,
  "description": string
}
フィールド
field

string

違反のあるフィールドのパス。

description

string

エラーの説明。

RepositoryError

コネクタがソース リポジトリと通信しているときに発生するエラー。

JSON 表現
{
  "type": enum (RepositoryError.Type),
  "httpStatusCode": integer,
  "errorMessage": string
}
フィールド
type

enum (RepositoryError.Type)

エラーの種類。

httpStatusCode

integer

エラーコード。HTTP ステータス コードの定義と一致する。

errorMessage

string

エラーを説明するメッセージ。メッセージの最大長は 8,192 文字です。

RepositoryError.Type

リポジトリとの通信に関するエラーコードのリスト。

列挙型
UNKNOWN 不明なエラーです。
NETWORK_ERROR 不明なホストまたは到達不能なホスト。
DNS_ERROR DNS の問題(DNS サーバーが応答しないなど)。
CONNECTION_ERROR リポジトリ サーバーに接続できません。
AUTHENTICATION_ERROR 認証情報が正しくないため、認証に失敗しました。
AUTHORIZATION_ERROR サービス アカウントがリポジトリに対して承認されていません。
SERVER_ERROR リポジトリ サーバーエラー。
QUOTA_EXCEEDED 割り当てを超えています。
SERVICE_UNAVAILABLE サーバーが一時的に利用できない状態です。
CLIENT_ERROR クライアント関連のエラー(コネクタからリポジトリ サーバーに送信された無効なリクエストなど)。

Item.ItemType

列挙型
UNSPECIFIED
CONTENT_ITEM 情報の提供のみを目的としてインデックスに登録されたアイテム。これらのアイテムは、containerName フィールドまたは inheritAclFrom フィールドで参照できません。
CONTAINER_ITEM インデックスに登録されるアイテム。他のアイテムに ACL を提供する、または他のアイテムを含むことを目的としています。
VIRTUAL_CONTAINER_ITEM インデックスに登録されないアイテム。ただし、目的は CONTAINER_ITEM と同じです。

メソッド

delete

指定されたリソース名の Item resource を削除します。

deleteQueueItems

キュー内のすべてのアイテムを削除します。

get

アイテム名で Item resource を取得します。

index

Item ACL、メタデータ、コンテンツを更新します。

list

Item resources のすべてまたはサブセットを一覧表示します。

poll

インデックス キューから予約されていないアイテムをポーリングし、優先度が最も高い ItemStatus から最も古いタイムスタンプを持つアイテムから順に、セットを予約済みとしてマークします。

push

アイテムをキューに push して、後でポーリングして更新します。

unreserve

キュー内のすべてのアイテムの予約を解除し、すべてポーリングの対象にします。

upload

アイテム コンテンツをアップロードするためのアップロード セッションを作成します。