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)

必須。インデックス システムは、データソースのバージョンをバイト文字列として格納し、語彙の順序付けを使用して、インデックス内の Item のバージョンとキューに格納された Item のバージョンを比較します。

キューに追加されたアイテムのバージョンが、現在インデックスに登録されているアイテムのバージョン以下の値である場合、Cloud Search Indexing は、それらのアイテムをインデックス登録または削除しません。このフィールドの最大長は 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 Seach の検索結果リンクによってリダイレクト通知がトリガーされることがあります。回避するには、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

double 値のリスト。

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)

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

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

contentDataRef

object (UploadItemRef)

以前にアップロードしたコンテンツの参照 ID を write メソッドを使用してアップロードします。

ItemContent.ContentFormat

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

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

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 値のみを入力してください。この値は [Items] で使用します。
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

後でポーリングして更新できるように、アイテムをキューにプッシュします。

unreserve

キューからすべてのアイテムの予約を解除し、すべてのアイテムをポーリングできるようにします。

upload

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