CINXE.COM

Create and register a schema  |  Cloud Search  |  Google for Developers

<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Google for Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#fff"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/developers/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/images/favicon-new.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/images/touchicon-180-new.png"><link rel="canonical" href="https://developers.google.com/cloud-search/docs/guides/schema-guide"><link rel="search" type="application/opensearchdescription+xml" title="Google for Developers" href="https://developers.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://developers.google.com/cloud-search/docs/guides/schema-guide" /><link rel="alternate" hreflang="x-default" href="https://developers.google.com/cloud-search/docs/guides/schema-guide" /><link rel="alternate" hreflang="ar" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=ar" /><link rel="alternate" hreflang="bn" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=fa" /><link rel="alternate" hreflang="fr" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=fr" /><link rel="alternate" hreflang="de" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=de" /><link rel="alternate" hreflang="he" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=he" /><link rel="alternate" hreflang="hi" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=hi" /><link rel="alternate" hreflang="id" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=id" /><link rel="alternate" hreflang="it" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=it" /><link rel="alternate" hreflang="ja" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=ja" /><link rel="alternate" hreflang="ko" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=ko" /><link rel="alternate" hreflang="pl" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=pt-br" /><link rel="alternate" hreflang="ru" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=ru" /><link rel="alternate" hreflang="es-419" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=es-419" /><link rel="alternate" hreflang="th" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=th" /><link rel="alternate" hreflang="tr" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=tr" /><link rel="alternate" hreflang="vi" href="https://developers.google.com/cloud-search/docs/guides/schema-guide?hl=vi" /><title>Create and register a schema &nbsp;|&nbsp; Cloud Search &nbsp;|&nbsp; Google for Developers</title> <meta property="og:title" content="Create and register a schema &nbsp;|&nbsp; Cloud Search &nbsp;|&nbsp; Google for Developers"><meta property="og:url" content="https://developers.google.com/cloud-search/docs/guides/schema-guide"><meta property="og:image" content="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/images/opengraph/white.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Create and register a schema" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Google Workspace", "item": "https://developers.google.com/workspace" },{ "@type": "ListItem", "position": 2, "name": "Cloud Search", "item": "https://developers.google.com/cloud-search" },{ "@type": "ListItem", "position": 3, "name": "Create and register a schema", "item": "https://developers.google.com/cloud-search/docs/guides/schema-guide" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="white" type="article" layout="docs" concierge='closed' display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <a href="#main-content" class="skip-link button"> Skip to main content </a> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner"> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="https://developers.google.com/workspace"> <div class="devsite-product-logo-container" size="medium" > <picture> <img class="devsite-product-logo" alt="Google Workspace" src="https://fonts.gstatic.com/s/i/productlogos/googleg/v6/16px.svg" srcset=" https://fonts.gstatic.com/s/i/productlogos/googleg/v6/16px.svg" sizes="64px" loading="lazy" > </picture> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="https://developers.google.com/workspace" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Workspace" > <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>Workspace </a> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab > <a href="https://developers.google.com/workspace" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/workspace" track-type="nav" track-metadata-position="nav - home" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Home" track-name="home" > Home </a> </tab> <tab class="devsite-active"> <a href="https://developers.google.com/cloud-search" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/cloud-search" track-type="nav" track-metadata-position="nav - cloud search" track-metadata-module="primary nav" aria-label="Cloud Search, selected" data-category="Site-Wide Custom Events" data-label="Tab: Cloud Search" track-name="cloud search" > Cloud Search </a> </tab> <tab class="devsite-dropdown "> <a href="https://developers.google.com/workspace/products-menu" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/workspace/products-menu" track-type="nav" track-metadata-position="nav - all products" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: All products" track-name="all products" > All products </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for All products" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/products-menu" track-metadata-position="nav - all products" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: All products" track-name="all products" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Google Workspace apps</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/admin-sdk" track-type="nav" track-metadata-eventdetail="https://developers.google.com/admin-sdk" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Admin console" > <div class="devsite-nav-item-title"> Admin console </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/cloud-search" track-type="nav" track-metadata-eventdetail="https://developers.google.com/cloud-search" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Cloud Search" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Cloud Search </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/gmail" track-type="nav" track-metadata-eventdetail="https://developers.google.com/gmail" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Gmail" > <div class="devsite-nav-item-title"> Gmail </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/calendar" track-type="nav" track-metadata-eventdetail="https://developers.google.com/calendar" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Google Calendar" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Calendar </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/chat" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/chat" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Google Chat" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Chat </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/classroom" track-type="nav" track-metadata-eventdetail="https://developers.google.com/classroom" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Google Classroom" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Classroom </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/docs" track-type="nav" track-metadata-eventdetail="https://developers.google.com/docs" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Google Docs" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Docs </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/drive" track-type="nav" track-metadata-eventdetail="https://developers.google.com/drive" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Google Drive" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Drive </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/forms" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/forms" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Google Forms" > <div class="devsite-nav-item-title"> Google Forms </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/keep" track-type="nav" track-metadata-eventdetail="https://developers.google.com/keep" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Keep" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Keep </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/meet" track-type="nav" track-metadata-eventdetail="https://developers.google.com/meet" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Meet" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Meet </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/sheets" track-type="nav" track-metadata-eventdetail="https://developers.google.com/sheets" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Google Sheets" > <div class="devsite-nav-item-title"> Google Sheets </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/sites" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/sites" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Sites" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Sites </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/slides" track-type="nav" track-metadata-eventdetail="https://developers.google.com/slides" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Slides" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Slides </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/tasks" track-type="nav" track-metadata-eventdetail="https://developers.google.com/tasks" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Tasks" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Tasks </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/vault" track-type="nav" track-metadata-eventdetail="https://developers.google.com/vault" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Vault" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Vault </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Extend, automate &amp; share</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/add-ons" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/add-ons" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate &amp; share" tooltip data-label="Tab menu: All products - Add-ons" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Add-ons </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/apps-script" track-type="nav" track-metadata-eventdetail="https://developers.google.com/apps-script" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate &amp; share" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Apps Script" > <div class="devsite-nav-item-title"> Apps Script </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/chat/overview" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/chat/overview" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate &amp; share" tooltip data-label="Tab menu: All products - Chat apps" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Chat apps </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/drive/api/guides/about-apps" track-type="nav" track-metadata-eventdetail="https://developers.google.com/drive/api/guides/about-apps" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate &amp; share" tooltip data-label="Tab menu: All products - Drive apps" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Drive apps </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/marketplace" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/marketplace" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate &amp; share" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Marketplace" > <div class="devsite-nav-item-title"> Marketplace </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown "> <a href="https://developers.google.com/workspace/resources-menu" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/workspace/resources-menu" track-type="nav" track-metadata-position="nav - resources" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" > Resources </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Resources" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/resources-menu" track-metadata-position="nav - resources" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Tools</li> <li class="devsite-nav-item"> <a href="https://admin.google.com/" track-type="nav" track-metadata-eventdetail="https://admin.google.com/" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: Resources - Admin console" target="admin-console" > <div class="devsite-nav-item-title"> Admin console </div> </a> </li> <li class="devsite-nav-item"> <a href="https://script.google.com/" track-type="nav" track-metadata-eventdetail="https://script.google.com/" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip target="_blank" data-category="Workspace top menu navigation" data-label="Tab menu: Resources - Apps Script dashboard" > <div class="devsite-nav-item-title"> Apps Script dashboard </div> </a> </li> <li class="devsite-nav-item"> <a href="https://console.cloud.google.com/workspace-api" track-type="nav" track-metadata-eventdetail="https://console.cloud.google.com/workspace-api" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip data-label="Tab menu: Resources - Google Cloud console" data-category="Workspace top menu navigation" target="console" > <div class="devsite-nav-item-title"> Google Cloud console </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/explore" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/explore" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip data-label="Tab menu: Resources - APIs Explorer" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> APIs Explorer </div> </a> </li> <li class="devsite-nav-item"> <a href="https://addons.gsuite.google.com/uikit/builder" track-type="nav" track-metadata-eventdetail="https://addons.gsuite.google.com/uikit/builder" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip data-label="Tab menu: Resources - Card Builder" target="_blank" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Card Builder </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Training &amp; support</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/guides/get-started" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/guides/get-started" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="training &amp; support" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: Resources - How to get started" > <div class="devsite-nav-item-title"> How to get started </div> </a> </li> <li class="devsite-nav-item"> <a href="https://codelabs.developers.google.com/?product=googleworkspace" track-type="nav" track-metadata-eventdetail="https://codelabs.developers.google.com/?product=googleworkspace" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="training &amp; support" tooltip data-label="Tab menu: Resources - Codelabs" target="_blank" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Codelabs </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/support" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/support" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="training &amp; support" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: Resources - Developer support" > <div class="devsite-nav-item-title"> Developer support </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Updates</li> <li class="devsite-nav-item"> <a href="https://developers.googleblog.com/search/?query=Google+Workspace" track-type="nav" track-metadata-eventdetail="https://developers.googleblog.com/search/?query=Google+Workspace" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-label="Tab menu: Resources - Blog" target="_blank" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Blog </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/preview" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/preview" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-label="Tab menu: Resources - Developer previews" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Developer Previews </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/newsletters" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/newsletters" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: Resources - Newsletter" > <div class="devsite-nav-item-title"> Newsletter </div> </a> </li> <li class="devsite-nav-item"> <a href="https://twitter.com/workspacedevs" track-type="nav" track-metadata-eventdetail="https://twitter.com/workspacedevs" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-label="Tab menu: Resources - X (Twitter)" target="_blank" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> X (Twitter) </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" track-type="nav" track-metadata-eventdetail="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip target="_blank" data-category="Workspace top menu navigation" data-label="Tab menu: Resources - YouTube" > <div class="devsite-nav-item-title"> YouTube </div> </a> </li> </ul> </div> </div> </div> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Cloud Search" tenant-name="Google for Developers" project-scope="/cloud-search" url-scoped="https://developers.google.com/s/results/cloud-search" > <form class="devsite-search-form" action="https://developers.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row" > <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/cloud-search" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Cloud Search" > Cloud Search </a> </li> </ul> </div> </div> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://developers.google.com/cloud-search" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/cloud-search" track-type="nav" track-metadata-position="nav - overview" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" > Overview </a> </tab> <tab class="devsite-active"> <a href="https://developers.google.com/cloud-search/docs/guides" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/cloud-search/docs/guides" track-type="nav" track-metadata-position="nav - guides" track-metadata-module="primary nav" aria-label="Guides, selected" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" > Guides </a> </tab> <tab > <a href="https://developers.google.com/cloud-search/docs/reference" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/cloud-search/docs/reference" track-type="nav" track-metadata-position="nav - reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" > Reference </a> </tab> <tab > <a href="https://developers.google.com/cloud-search/support" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/cloud-search/support" track-type="nav" track-metadata-position="nav - support" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" > Support </a> </tab> <tab > <a href="https://developers.google.com/cloud-search/docs/connector-directory" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/cloud-search/docs/connector-directory" track-type="nav" track-metadata-position="nav - connector directory" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Connector Directory" track-name="connector directory" > Connector Directory </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="https://developers.google.com/workspace"> <div class="devsite-product-logo-container" size="medium" > <picture> <img class="devsite-product-logo" alt="Google Workspace" src="https://fonts.gstatic.com/s/i/productlogos/googleg/v6/16px.svg" srcset=" https://fonts.gstatic.com/s/i/productlogos/googleg/v6/16px.svg" sizes="64px" loading="lazy" > </picture> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="https://developers.google.com/workspace" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Workspace" > <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>Workspace </a> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/workspace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Home" track-name="home" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Home" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Home </span> </a> </li> <li class="devsite-nav-item"> <a href="/cloud-search" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Cloud Search" track-name="cloud search" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Search" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cloud Search </span> </a> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/cloud-search" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/cloud-search/docs/guides" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Guides </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/cloud-search/docs/reference" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/cloud-search/support" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Support" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Support </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/cloud-search/docs/connector-directory" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Connector Directory" track-name="connector directory" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Connector Directory" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Connector Directory </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/workspace/products-menu" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: All products" track-name="all products" data-category="Site-Wide Custom Events" data-label="Responsive Tab: All products" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > All products </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: All products" track-name="all products" > <span class="devsite-nav-text" tooltip menu="All products"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="All products"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/workspace/resources-menu" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Resources" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Resources </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" > <span class="devsite-nav-text" tooltip menu="Resources"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Resources"> </span> </span> </li> </ul> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/cloud-search/docs/guides" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides" ><span class="devsite-nav-text" tooltip>Introduction to Google Cloud Search</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Get started</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-external"><a href="/workspace/guides/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/guides/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/guides/get-started" target="_blank"><span class="devsite-nav-text" tooltip>Overview</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="/workspace/guides/configure-oauth-consent" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/guides/configure-oauth-consent" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/guides/configure-oauth-consent" target="_blank"><span class="devsite-nav-text" tooltip>Configure OAuth consent</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/project-setup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/project-setup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/project-setup" ><span class="devsite-nav-text" tooltip>Configure access to the Google Cloud Search REST API</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/delegation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/delegation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/delegation" ><span class="devsite-nav-text" tooltip>Domain-wide delegation of authority</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Get started with Cloud Search</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/cloud-search/docs/tutorials/end-to-end" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/tutorials/end-to-end" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/tutorials/end-to-end" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/tutorials/end-to-end/setup-connector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/tutorials/end-to-end/setup-connector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/tutorials/end-to-end/setup-connector" ><span class="devsite-nav-text" tooltip>Build &amp; deploy the connector</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/tutorials/end-to-end/setup-app" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/tutorials/end-to-end/setup-app" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/tutorials/end-to-end/setup-app" ><span class="devsite-nav-text" tooltip>Set up the UI</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/tutorials/end-to-end/finish" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/tutorials/end-to-end/finish" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/tutorials/end-to-end/finish" ><span class="devsite-nav-text" tooltip>Clean up resources</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item"><a href="/cloud-search/docs/guides/schema-guide" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/schema-guide" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/schema-guide" ><span class="devsite-nav-text" tooltip>Create and register a schema</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create connectors</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/connectors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/connectors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/connectors" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/content-connector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/content-connector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/content-connector" ><span class="devsite-nav-text" tooltip>Create a content connector</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/identity-connector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/identity-connector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/identity-connector" ><span class="devsite-nav-text" tooltip>Create an identity connector</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Deploy connectors</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/csv-connector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/csv-connector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/csv-connector" ><span class="devsite-nav-text" tooltip>CSV connector</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/apache-nutch-connector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/apache-nutch-connector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/apache-nutch-connector" ><span class="devsite-nav-text" tooltip>Apache Nutch indexer plugin</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/database-connector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/database-connector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/database-connector" ><span class="devsite-nav-text" tooltip>Database connector</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/filesystem-connector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/filesystem-connector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/filesystem-connector" ><span class="devsite-nav-text" tooltip>File systems connector</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/norconex-http-connector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/norconex-http-connector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/norconex-http-connector" ><span class="devsite-nav-text" tooltip>Norconex HTTP Collector indexer plugin</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/sharepoint-online-connector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/sharepoint-online-connector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/sharepoint-online-connector" ><span class="devsite-nav-text" tooltip>SharePoint online connector</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/sharepoint-on-prem-connector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/sharepoint-on-prem-connector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/sharepoint-on-prem-connector" ><span class="devsite-nav-text" tooltip>SharePoint on-premises connector</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Additional connector topics</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/tune-connector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/tune-connector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/tune-connector" ><span class="devsite-nav-text" tooltip>Tune connector settings</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/acls" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/acls" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/acls" ><span class="devsite-nav-text" tooltip>Map ACLs</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/queues" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/queues" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/queues" ><span class="devsite-nav-text" tooltip>The Cloud Search Indexing Queues</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/identity-mapping" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/identity-mapping" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/identity-mapping" ><span class="devsite-nav-text" tooltip>Sync different identity systems</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/synonyms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/synonyms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/synonyms" ><span class="devsite-nav-text" tooltip>Define synonyms</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/handle-sensitive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/handle-sensitive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/handle-sensitive" ><span class="devsite-nav-text" tooltip>Obfuscate sensitive configuration file information</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/thumbnails" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/thumbnails" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/thumbnails" ><span class="devsite-nav-text" tooltip>Enable thumbnails</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/operations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/operations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/operations" ><span class="devsite-nav-text" tooltip>Handle revisions after manual deletes</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create search interfaces</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/search-interface" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/search-interface" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/search-interface" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/query-guide" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/query-guide" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/query-guide" ><span class="devsite-nav-text" tooltip>Create a custom interface using the Query API</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/search-widget" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/search-widget" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/search-widget" ><span class="devsite-nav-text" tooltip>Create a search interface with the search widget</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Optimize the search experience</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/default-optimizations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/default-optimizations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/default-optimizations" ><span class="devsite-nav-text" tooltip>Default expansions, optimizations, and interpretations</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/improve-search-quality" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/improve-search-quality" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/improve-search-quality" ><span class="devsite-nav-text" tooltip>Improve search quality</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/query-interpretation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/query-interpretation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/query-interpretation" ><span class="devsite-nav-text" tooltip>Structure a schema for optimal query interpretation</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/autocomplete" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/autocomplete" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/autocomplete" ><span class="devsite-nav-text" tooltip>Implement autocomplete</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Monitoring and security</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/implement-vpc-service-controls" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/implement-vpc-service-controls" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/implement-vpc-service-controls" ><span class="devsite-nav-text" tooltip>Enhance security with VPC Service Controls</span></a></li><li class="devsite-nav-item"><a href="/cloud-search/docs/guides/audit-logging-manual" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/audit-logging-manual" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/audit-logging-manual" ><span class="devsite-nav-text" tooltip>Audit logging</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/cloud-search/docs/guides/known-issues" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/guides/known-issues" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/guides/known-issues" ><span class="devsite-nav-text" tooltip>Known issues</span></a></li> <li class="devsite-nav-item"><a href="/cloud-search/docs/samples" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /cloud-search/docs/samples" track-type="bookNav" track-name="click" track-metadata-eventdetail="/cloud-search/docs/samples" ><span class="devsite-nav-text" tooltip>Samples</span></a></li> </ul> <ul class="devsite-nav-list" menu="All products" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Google Workspace apps </span> </span> </li> <li class="devsite-nav-item"> <a href="/admin-sdk" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Admin console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Admin console </span> </a> </li> <li class="devsite-nav-item"> <a href="/cloud-search" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Search" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cloud Search </span> </a> </li> <li class="devsite-nav-item"> <a href="/gmail" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Gmail" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Gmail </span> </a> </li> <li class="devsite-nav-item"> <a href="/calendar" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Calendar" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Calendar </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/chat" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Chat" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Chat </span> </a> </li> <li class="devsite-nav-item"> <a href="/classroom" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Classroom" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Classroom </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Docs" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Docs </span> </a> </li> <li class="devsite-nav-item"> <a href="/drive" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Drive" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Drive </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip >   </span> </span> </li> <li class="devsite-nav-item"> <a href="/workspace/forms" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Forms" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Forms </span> </a> </li> <li class="devsite-nav-item"> <a href="/keep" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Keep" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Keep </span> </a> </li> <li class="devsite-nav-item"> <a href="/meet" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Meet" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Meet </span> </a> </li> <li class="devsite-nav-item"> <a href="/sheets" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Sheets" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Sheets </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/sites" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Sites" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Sites </span> </a> </li> <li class="devsite-nav-item"> <a href="/slides" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Slides" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Slides </span> </a> </li> <li class="devsite-nav-item"> <a href="/tasks" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Tasks" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Tasks </span> </a> </li> <li class="devsite-nav-item"> <a href="/vault" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Vault" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Vault </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Extend, automate &amp; share </span> </span> </li> <li class="devsite-nav-item"> <a href="/workspace/add-ons" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add-ons" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Add-ons </span> </a> </li> <li class="devsite-nav-item"> <a href="/apps-script" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Apps Script" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Apps Script </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/chat/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Chat apps" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Chat apps </span> </a> </li> <li class="devsite-nav-item"> <a href="/drive/api/guides/about-apps" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Drive apps" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Drive apps </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/marketplace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Marketplace" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Marketplace </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Resources" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Tools </span> </span> </li> <li class="devsite-nav-item"> <a href="https://admin.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Admin console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Admin console </span> </a> </li> <li class="devsite-nav-item"> <a href="https://script.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Apps Script dashboard" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Apps Script dashboard </span> </a> </li> <li class="devsite-nav-item"> <a href="https://console.cloud.google.com/workspace-api" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud console </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/explore" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: APIs Explorer" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > APIs Explorer </span> </a> </li> <li class="devsite-nav-item"> <a href="https://addons.gsuite.google.com/uikit/builder" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Card Builder" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Card Builder </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Training &amp; support </span> </span> </li> <li class="devsite-nav-item"> <a href="/workspace/guides/get-started" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: How to get started" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > How to get started </span> </a> </li> <li class="devsite-nav-item"> <a href="https://codelabs.developers.google.com/?product=googleworkspace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Codelabs" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Codelabs </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/support" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Developer support" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Developer support </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Updates </span> </span> </li> <li class="devsite-nav-item"> <a href="https://developers.googleblog.com/search/?query=Google+Workspace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Blog" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Blog </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/preview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Developer Previews" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Developer Previews </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/newsletters" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Newsletter" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Newsletter </span> </a> </li> <li class="devsite-nav-item"> <a href="https://twitter.com/workspacedevs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: X (Twitter)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > X (Twitter) </span> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: YouTube" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > YouTube </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" id="main-content" class="devsite-main-content" has-book-nav > <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/workspace" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Google Workspace" > Google Workspace </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/cloud-search" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="Cloud Search" > Cloud Search </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/cloud-search/docs/guides" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="4" track-type="globalNav" track-name="breadcrumb" track-metadata-position="4" track-metadata-eventdetail="" > Guides </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Cloud Search" product-id="717201" bucket="cloud-search" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=1134311&amp;template=1640548" project-icon="https://www.gstatic.com/images/branding/product/1x/google_cloud_search_64dp.png" project-support-url="https://developers.google.com/cloud-search/support" > <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title" tabindex="-1"> Create and register a schema </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <devsite-key-takeaways></devsite-key-takeaways> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <p>A Google Cloud Search schema is a JSON structure that defines the objects, properties, and options to be used in indexing and querying your data. Your content connector reads data from your repository and, based on your registered schema, structures and indexes the data.</p> <p>You can create a schema by providing a JSON schema object to the API and then registering it. You must register a schema object for each of your repositories before you can index your data.</p> <aside class="note"><strong>Note:</strong><span> You do not need to create a schema if your data repository has only unstructured data. For example, if you have a basic file sharing system without predetermined file types and structures, you usually will not need a schema. You can also create a schema object using the SDK instead of providing a JSON object to the API.</span></aside> <p>This document covers the basics of schema creation. For information on how to tune your schema to improve the search experience, refer to <a href="/cloud-search/docs/guides/improve-search-quality">Improve search quality</a>.</p> <h2 id="create_a_schema" data-text="Create a schema" tabindex="-1">Create a schema</h2> <p>Following is a list of steps used to create your Cloud Search schema:</p> <ol> <li><a href="#user">Identify expected user behavior</a></li> <li><a href="#initialize">Initialize a data source</a></li> <li><a href="#schema">Create a schema</a></li> <li><a href="#complete">Complete sample schema</a></li> <li><a href="#register">Register your schema</a></li> <li><a href="#index">Index your data</a></li> <li><a href="#test">Test your schema</a></li> <li><a href="#tune">Tune your schema</a></li> </ol> <aside class="note"><strong>Note:</strong><span> This document uses snippets from a schema for a hypothetical movie database. For the complete schema, refer to <a href="https://github.com/googleworkspace/cloud-search-samples/blob/main/indexing/rest/schema/schema.json"><code translate="no" dir="ltr">schema.json</code></a></span></aside> <h2 id="user" data-text="Identify expected user behavior" tabindex="-1">Identify expected user behavior</h2> <p>Anticipating the types of queries your users make helps direct your strategy for creating your schema.</p> <p>For example, when issuing queries against a movie database, you might anticipate user&#39;s making a query such as &quot;Show me all movies starring Robert Redford.&quot; Your schema, therefore, must support queries results based on &quot;all movies with a specific actor.&quot;</p> <p>To define your schema to reflect your user&#39;s behavioral patterns, consider performing these tasks:</p> <ol> <li>Evaluate a diverse set of desired queries from different users.</li> <li>Identify the objects that might be used in queries. <em>Objects</em> are logical sets of related data, such as a movie in a database of movies.</li> <li>Identify the properties and values that compose the object and might be used in queries. <em>Properties</em> are the indexable attributes of the object; they can include primitive values or other objects. For instance, a movie object might have properties such as the movie&#39;s title and release date as primitive values. The movie object might also contain other objects, such as cast members, that have their own properties, such as their name or role.</li> <li>Identify example valid values for properties. <em>Values</em> are the actual data indexed for a property. For example, one movie&#39;s title in your database might be &quot;Raiders of the Lost Ark.&quot;</li> <li>Determine the sorting and ranking options desired by your users. For example, when querying movies, users might want to sort chronologically and rank by audience rating and do not need to sort alphabetically by title.</li> <li>(optional) Consider if one of your properties represents a more specific context in which searches might be executed, such as the users&#39; job role or department, so that autocomplete suggestions can be provided based on the context. For example, for people searching a database of movies, users might only be interested in a certain genre of movies. Users would define what genre they want their searches to return, possibly as part of their user profile. Then, when a user begins to type in a query of movies, only movies in their preferred genre, such as &quot;action movies,&quot; are suggested as part of autocomplete suggestions.</li> <li>Make a list of these objects, properties, and example values that can be used in searches. (For details on how this list is used, see the <a href="#operators">Define operator options</a> section.)</li> </ol> <h2 id="initialize" data-text="Initialize your data source" tabindex="-1">Initialize your data source</h2> <p>A <em>data source</em> represents the data from a repository that has been indexed and stored in Google Cloud. For instructions on initializing a data source, refer to <a href="https://support.google.com/a/answer/7430822">Manage third-party data sources</a>.</p> <p>A user&#39;s search results are returned from the data source. When a user clicks on a search result, Cloud Search directs the user to the actual item using the URL supplied in the indexing request.</p> <h2 id="objects" data-text="Define your objects" tabindex="-1">Define your objects</h2> <p>The fundamental unit of data in a schema is the <em>object</em>, also called a &quot;<em>schema object</em>&quot;, which is a logical structure of data. In a database of movies, one logical structure of data is &quot;movie.&quot; Another object might be &quot;person&quot; to represent the cast and crew involved in the movie.</p> <p>Every object in a schema has a series of <em>properties</em> or attributes that describe the object, such as the title and duration for a movie, or the name and birthdate for a person. Properties of an object can include primitive values or other objects.</p> <p><a href="#schemaGraphic">Figure 1</a> shows the movie and person objects and associated properties.</p> <figure id="schemaGraphic"> <img src="/static/cloud-search/images/schemaExample.png" alt="Drawing of schema connections between entities"> <figcaption><b>Figure 1.</b> A sample schema showing two objects and a sub-object.</figcaption> </figure> <p>A <a href="/cloud-search/docs/reference/rest/v1/Schema">Cloud Search schema</a> is essentially a list of object definition statements defined within the <code translate="no" dir="ltr">objectDefinitions</code> tag. The following schema snippet shows the <code translate="no" dir="ltr">objectDefinitions</code> statements for the movie and person schema objects.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Text only"><code translate="no" dir="ltr">{ "objectDefinitions": [ { "name": "movie", ... }, { "name": "person", ... } ] } </code></pre></devsite-code> <p>When you define a schema object, you provide a <code translate="no" dir="ltr">name</code> for the object that must be unique among all other objects in the schema. Usually you will use a <code translate="no" dir="ltr">name</code> value that describes the object, such as <code translate="no" dir="ltr">movie</code> for a movie object. The schema service uses the <code translate="no" dir="ltr">name</code> field as a key identifier for indexable objects. For further information about the <code translate="no" dir="ltr">name</code> field, refer to the <a href="/cloud-search/docs/reference/rest/v1/Schema#ObjectDefinition">Object Definition</a>.</p> <aside class="note"><strong>Note:</strong><span> A <a href="/cloud-search/docs/reference/rest/v1/Schema">Cloud Search schema</a> actually has two top-level sections: <code translate="no" dir="ltr">objectDefinitions</code> and <code translate="no" dir="ltr">operationIds</code>. When your schema is in use and there are pending Long Running Operations (LROs) for the schema, the <code translate="no" dir="ltr">operationIds</code> of those LROs are returned when you request the registered schema. You cannot set the <code translate="no" dir="ltr">operationIds</code> and can ignore this part of the schema.</span></aside> <h2 id="properties" data-text="Define object properties" tabindex="-1">Define object properties</h2> <p>As specified in the reference for <a href="/cloud-search/docs/reference/rest/v1/Schema#ObjectDefinition">ObjectDefinition</a>, the object name is followed by a set of <a href="/cloud-search/docs/reference/rest/v1/Schema#ObjectOptions"><code translate="no" dir="ltr">options</code></a>, and a list of <a href="/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition"><code translate="no" dir="ltr">propertyDefinitions</code></a>. The <a href="/cloud-search/docs/reference/rest/v1/Schema#ObjectOptions"><code translate="no" dir="ltr">options</code></a> can further consist of <a href="/cloud-search/docs/reference/rest/v1/Schema#FreshnessOptions"><code translate="no" dir="ltr">freshnessOptions</code></a> and <a href="/cloud-search/docs/reference/rest/v1/Schema#ObjectDisplayOptions"><code translate="no" dir="ltr">displayOptions</code></a>. The <a href="/cloud-search/docs/reference/rest/v1/Schema#FreshnessOptions"><code translate="no" dir="ltr">freshnessOptions</code></a> are used to adjust search ranking based on the freshness of an item. The <a href="/cloud-search/docs/reference/rest/v1/Schema#ObjectDisplayOptions"><code translate="no" dir="ltr">displayOptions</code></a> are used to define whether specific labels and properties are displayed in the search results for an object.</p> <aside class="note"><strong>Note:</strong><span> For details on tuning <code translate="no" dir="ltr">freshnessOptions</code> to improve the search experience, refer to <a href="/cloud-search/docs/guides/improve-search-quality#freshness">Influence freshness</a> in <a href="/cloud-search/docs/guides/improve-search-quality">Improve search quality</a>.</span></aside> <p>The <a href="/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition"><code translate="no" dir="ltr">propertyDefinitions</code></a> section is where you define the properties for an object, such as movie title and release date.</p> <p>The following snippet shows the <code translate="no" dir="ltr">movie</code> object with two properties: <code translate="no" dir="ltr">movieTitle</code> and <code translate="no" dir="ltr">releaseDate</code>.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Text only"><code translate="no" dir="ltr">{ "objectDefinitions": [ { "name": "movie", "propertyDefinitions": [ { "name": "movieTitle", "isReturnable": true, "isWildcardSearchable": true, "textPropertyOptions": { "retrievalImportance": { "importance": "HIGHEST" }, "operatorOptions": { "operatorName": "title" } }, "displayOptions": { "displayLabel": "Title" } }, { "name": "releaseDate", "isReturnable": true, "isSortable": true, "datePropertyOptions": { "operatorOptions": { "operatorName": "released", "lessThanOperatorName": "releasedbefore", "greaterThanOperatorName": "releasedafter" } }, "displayOptions": { "displayLabel": "Release date" } ... ] } ] } </code></pre></devsite-code><aside class="note"><strong>Note:</strong><span> When defined within the same object, property names that differ only in case, such as <code translate="no" dir="ltr">movieTitle</code> and <code translate="no" dir="ltr">movietitle</code> are considered the same and will produce an error.</span></aside> <p>The <a href="/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition">PropertyDefinition</a> consists of the following items:</p> <ul> <li>a <code translate="no" dir="ltr">name</code> string.</li> <li>A list of type-agnostic options, such as <code translate="no" dir="ltr">isReturnable</code> in the previous snippet.</li> <li>A type and its associated type-specific options, such as<code translate="no" dir="ltr">textPropertyOptions</code> and <code translate="no" dir="ltr">retrievalImportance</code> in the previous snippet.</li> <li>An <code translate="no" dir="ltr">operatorOptions</code> describing how the property is used as a search operator.</li> <li>One or more <code translate="no" dir="ltr">displayOptions</code>, such as <code translate="no" dir="ltr">displayLabel</code> in the previous snippet.</li> </ul> <p>The <code translate="no" dir="ltr">name</code> of a property must be unique within the containing object, but the same name can be used in other objects and sub-objects. In Figure 1, the movie&#39;s title and release date have been defined twice: once in the <code translate="no" dir="ltr">movie</code> object and again in the <code translate="no" dir="ltr">filmography</code> sub-object of the <code translate="no" dir="ltr">person</code> object. This schema reuses the <code translate="no" dir="ltr">movieTitle</code> field so that the schema can support two types of search behaviors:</p> <ul> <li>Show <em>movie results</em> when users search for the title of a movie.</li> <li>Show <em>people results</em> when users search for the title of a movie that an actor played in.</li> </ul> <p>Similarly, the schema reuses the <code translate="no" dir="ltr">releaseDate</code> field because it has the same meaning for the two <code translate="no" dir="ltr">movieTitle</code> fields.</p> <p>In developing your own schema, consider how your repository might have related fields that contain data that you want to declare more than once in your schema.</p> <aside class="note"><strong>Note:</strong><span> If an indexing request tries to index an item with an unregistered field or property, such as <code translate="no" dir="ltr">date</code> instead of <code translate="no" dir="ltr">releaseDate</code>, the system discards the field. If the indexing request provides an incorrect data type for a property, such as providing an integer for the duration field (which expects text so that it can handle unit abbreviations), the system rejects the entire request.</span></aside> <h4 id="add_type-agnostic_options" data-text="Add type-agnostic options" tabindex="-1">Add type-agnostic options</h4> <p>The <a href="/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition">PropertyDefinition</a> lists general search functionality options common to all properties regardless of data type.</p> <ul> <li><code translate="no" dir="ltr">isReturnable</code> - Indicates if the property identifies data that should be returned in search results via the Query API. All of the example movie properties are returnable. Non-returnable properties could be used for searching or ranking results without being returned to the user.</li> <li><code translate="no" dir="ltr">isRepeatable</code> - Indicates if multiple values are allowed for the property. For example, a movie only has one release date but can have multiple actors.</li> <li><code translate="no" dir="ltr">isSortable</code> - Indicates that the property can be used for sorting. This cannot be true for properties that are repeatable. For example, movie results may be sorted by release date or audience rating.</li> <li><code translate="no" dir="ltr">isFacetable</code> - Indicates that the property can be used for generating <em>facets</em>. A facet is used to refine search results whereby the user sees the initial results and then adds criteria, or facets, to further refine those results. This option cannot be true for properties whose type is object and <code translate="no" dir="ltr">isReturnable</code> must be true to set this option. Finally, this option is only supported for enum, boolean, and text properties. For example, in our sample schema, we might make <code translate="no" dir="ltr">genre</code>, <code translate="no" dir="ltr">actorName</code>, <code translate="no" dir="ltr">userRating</code>, and <code translate="no" dir="ltr">mpaaRating</code> facetable to allow them to be used for interactive refinement of search results.</li> <li><code translate="no" dir="ltr">isWildcardSearchable</code> indicates that users can perform wildcard search for this property. This option is only available on text properties. How wildcard search works on the text field depends on the value set in the <a href="/cloud-search/docs/reference/rest/v1/Schema#TextPropertyOptions.TextOperatorOptions.FIELDS.exact_match_with_operator">exactMatchWithOperator</a> field. If <code translate="no" dir="ltr">exactMatchWithOperator</code> is set to <code translate="no" dir="ltr">true</code>, the text value is tokenized as one atomic value and a wildcard search is performed against it. For example, if the text value is <code translate="no" dir="ltr">science-fiction</code>, a wildcard query <code translate="no" dir="ltr">science-*</code> matches it. If <code translate="no" dir="ltr">exactMatchWithOperator</code> is set to <code translate="no" dir="ltr">false</code>, the text value is tokenized and a wildcard search is performed against each token. For example, if the text value is &quot;science-fiction&quot;, the wildcard queries <code translate="no" dir="ltr">sci*</code> or <code translate="no" dir="ltr">fi*</code> matches the item, but <code translate="no" dir="ltr">science-*</code> doesn&#39;t match it.</li> </ul> <p>These general search functionality parameters are all boolean values; they all have a default value of <code translate="no" dir="ltr">false</code> and must be set to <code translate="no" dir="ltr">true</code> to be used.</p> <p>The following table shows the boolean parameters that are set to <code translate="no" dir="ltr">true</code> for all of the properties of the <code translate="no" dir="ltr">movie</code> object:</p> <table> <thead> <tr> <th>Property</th> <th><code translate="no" dir="ltr">isReturnable</code></th> <th><code translate="no" dir="ltr">isRepeatable</code></th> <th><code translate="no" dir="ltr">isSortable</code></th> <th><code translate="no" dir="ltr">isFacetable</code></th> <th><code translate="no" dir="ltr">isWildcardSearchable</code></th> </tr> </thead> <tbody> <tr> <td><code translate="no" dir="ltr">movieTitle</code></td> <td>true</td> <td></td> <td></td> <td></td> <td>true</td> </tr> <tr> <td><code translate="no" dir="ltr">releaseDate</code></td> <td>true</td> <td></td> <td>true</td> <td></td> <td></td> </tr> <tr> <td><code translate="no" dir="ltr">genre</code></td> <td>true</td> <td>true</td> <td></td> <td>true</td> <td></td> </tr> <tr> <td><code translate="no" dir="ltr">duration</code></td> <td>true</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td><code translate="no" dir="ltr">actorName</code></td> <td>true</td> <td>true</td> <td></td> <td>true</td> <td>true</td> </tr> <tr> <td><code translate="no" dir="ltr">userRating</code></td> <td>true</td> <td></td> <td>true</td> <td></td> <td></td> </tr> <tr> <td><code translate="no" dir="ltr">mpaaRating</code></td> <td>true</td> <td></td> <td></td> <td>true</td> <td></td> </tr> </tbody> </table> <p>Both <code translate="no" dir="ltr">genre</code> and <code translate="no" dir="ltr">actorName</code> have <code translate="no" dir="ltr">isRepeatable</code> set to <code translate="no" dir="ltr">true</code> because a movie may belong in more than one genre and typically has more than one actor. A property cannot be be sortable if it is repeatable or contained in a repeatable sub-object.</p> <h4 id="type" data-text="Define type" tabindex="-1">Define type</h4> <p>The <a href="/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition">PropertyDefinition</a> reference section lists several <code translate="no" dir="ltr">xxPropertyOptions</code> where <code translate="no" dir="ltr">xx</code> is a specific type, such as <code translate="no" dir="ltr">boolean</code>. To set the data type of the property, you must define the appropriate data-type object. Defining a data-type object for a property establishes the data type of that property. For example, defining <code translate="no" dir="ltr">textPropertyOptions</code> for the <code translate="no" dir="ltr">movieTitle</code> property indicates that the movie title is of type text. The following snippet shows the <code translate="no" dir="ltr">movieTitle</code> property with <code translate="no" dir="ltr">textPropertyOptions</code> setting the data type.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Text only"><code translate="no" dir="ltr">{ "name": "movieTitle", "isReturnable": true, "isWildcardSearchable": true, "textPropertyOptions": { ... }, ... }, </code></pre></devsite-code><aside class="note"><strong>Note:</strong><span> If you understand the full set of possible values for a property, use an enum (<code translate="no" dir="ltr">enumPropertyOptions</code>) instead of a string type. If the enum changes in future versions, use introspections to check the schema and update it where needed.</span></aside> <p>A property may have only one associated data type. For example, in our movie schema, <code translate="no" dir="ltr">releaseDate</code> can only be a date (e.g., <code translate="no" dir="ltr">2016-01-13</code>) or a string (e.g., <code translate="no" dir="ltr">January 13, 2016</code>), but not both.</p> <p>Here are the data-type objects used to specify the data types for the properties in the sample movie schema:</p> <table> <thead> <tr> <th>Property</th> <th>Data-type object</th> </tr> </thead> <tbody> <tr> <td><code translate="no" dir="ltr">movieTitle</code></td> <td><code translate="no" dir="ltr">textPropertyOptions</code></td> </tr> <tr> <td><code translate="no" dir="ltr">releaseDate</code></td> <td><code translate="no" dir="ltr">datePropertyOptions</code></td> </tr> <tr> <td><code translate="no" dir="ltr">genre</code></td> <td><code translate="no" dir="ltr">enumPropertyOptions</code></td> </tr> <tr> <td><code translate="no" dir="ltr">duration</code></td> <td><code translate="no" dir="ltr">textPropertyOptions</code></td> </tr> <tr> <td><code translate="no" dir="ltr">actorName</code></td> <td><code translate="no" dir="ltr">textPropertyOptions</code></td> </tr> <tr> <td><code translate="no" dir="ltr">userRating</code></td> <td><code translate="no" dir="ltr">integerPropertyOptions</code></td> </tr> <tr> <td><code translate="no" dir="ltr">mpaaRating</code></td> <td><code translate="no" dir="ltr">textPropertyOptions</code></td> </tr> </tbody> </table> <p>The data type you choose for property depends on your expected use cases. In the imagined scenario of this movie schema, users are expected to want to sort results chronologically, so the <code translate="no" dir="ltr">releaseDate</code> is a date object. If, for instance, there was an expected use case of comparing December releases across the years with January releases, then a string format might be useful.</p> <h4 id="configure_type-specific_options" data-text="Configure type-specific options" tabindex="-1">Configure type-specific options</h4> <p>The <a href="/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition">PropertyDefinition</a> reference section links to options for each type. Most type-specific options are optional, except the list of <code translate="no" dir="ltr">possibleValues</code> in the <code translate="no" dir="ltr">enumPropertyOptions</code>. Additionally, the <code translate="no" dir="ltr">orderedRanking</code> option allows you to rank values relative to each other. The following snippet shows the <code translate="no" dir="ltr">movieTitle</code> property with <code translate="no" dir="ltr">textPropertyOptions</code> setting the data type and with the <code translate="no" dir="ltr">retrievalImportance</code> type-specific option.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Text only"><code translate="no" dir="ltr">{ "name": "movieTitle", "isReturnable": true, "isWildcardSearchable": true, "textPropertyOptions": { "retrievalImportance": { "importance": "HIGHEST" }, ... }, ... } </code></pre></devsite-code> <p>Here are the additional type-specific options used in the sample schema:</p> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Type-specific options</th> </tr> </thead> <tbody> <tr> <td><code translate="no" dir="ltr">movieTitle</code></td> <td><code translate="no" dir="ltr">textPropertyOptions</code></td> <td><code translate="no" dir="ltr">retrievalImportance</code></td> </tr> <tr> <td><code translate="no" dir="ltr">releaseDate</code></td> <td><code translate="no" dir="ltr">datePropertyOptions</code></td> <td></td> </tr> <tr> <td><code translate="no" dir="ltr">genre</code></td> <td><code translate="no" dir="ltr">enumPropertyOptions</code></td> <td></td> </tr> <tr> <td><code translate="no" dir="ltr">duration</code></td> <td><code translate="no" dir="ltr">textPropertyOptions</code></td> <td></td> </tr> <tr> <td><code translate="no" dir="ltr">actorName</code></td> <td><code translate="no" dir="ltr">textPropertyOptions</code></td> <td></td> </tr> <tr> <td><code translate="no" dir="ltr">userRating</code></td> <td><code translate="no" dir="ltr">integerPropertyOptions</code></td> <td><code translate="no" dir="ltr">orderedRanking</code>, <code translate="no" dir="ltr">maximumValue</code></td> </tr> <tr> <td><code translate="no" dir="ltr">mpaaRating</code></td> <td><code translate="no" dir="ltr">textPropertyOptions</code></td> <td></td> </tr> </tbody> </table> <h4 id="operators" data-text="Define operator options" tabindex="-1">Define operator options</h4> <p>In addition to type-specific options, each type has a set of optional <code translate="no" dir="ltr">operatorOptions</code> These options describe how the property is used as a search operator. The following snippet shows the <code translate="no" dir="ltr">movieTitle</code> property with <code translate="no" dir="ltr">textPropertyOptions</code> setting the data type and with the <code translate="no" dir="ltr">retrievalImportance</code> and <code translate="no" dir="ltr">operatorOptions</code> type-specific options.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Text only"><code translate="no" dir="ltr">{ "name": "movieTitle", "isReturnable": true, "isWildcardSearchable": true, "textPropertyOptions": { "retrievalImportance": { "importance": "HIGHEST" }, "operatorOptions": { "operatorName": "title" } }, ... } </code></pre></devsite-code><aside class="warning"><strong>Warning:</strong><span> Unless you are absolutely sure that a property should be ranked higher than others in search results, set <code translate="no" dir="ltr">retrievalImportance</code> to <code translate="no" dir="ltr">DEFAULT</code>. This option cannot be changed after it is set. For example, if a property represents a title, it&#39;s a good idea give it <code translate="no" dir="ltr">HIGHEST</code> importance. However, if a property contains part numbers that are references to other parts, but aren&#39;t the part itself, consider marking the property as LOW importance. If you are unsure about the importance of the property, use <code translate="no" dir="ltr">DEFAULT</code>. If you are sure that the text shouldn&#39;t be used for retrieval, use <code translate="no" dir="ltr">NONE</code>. For further information, refer to <a href="/cloud-search/docs/reference/rest/v1/Schema#Importance">Importance</a>.</span></aside> <p>Every <code translate="no" dir="ltr">operatorOptions</code> has an <code translate="no" dir="ltr">operatorName</code>, such as <code translate="no" dir="ltr">title</code> for a <code translate="no" dir="ltr">movieTitle</code>. The operator name is the <em>search operator</em> for the property. A search operator is the actual parameter you expect users to use when narrowing a search. For example, to search movies based on their title, the user would type <code translate="no" dir="ltr">title:movieName</code>, where <code translate="no" dir="ltr">movieName</code> is the name of a movie.</p> <p>Operator names do not have to be the same as the property&#39;s name. Instead, you should use operator names that reflect the most-common words used by users in your organization. For example, if your users prefer the term &quot;name&quot; instead of &quot;title&quot; for a movie title, then the operator name should be set to &quot;name&quot;.</p> <aside class="note"><strong>Note:</strong><span> It is important to expose your operator names to users, either as options in your search interface or in documentation. Users need to know what operators to use to refine their search queries.</span></aside> <p>You can use the same operator name for multiple properties as long as all properties resolve to the same type. When using a shared operator name during a query, all properties using that operator name are retrieved. For example, suppose the movie object had <code translate="no" dir="ltr">plotSummary</code> and <code translate="no" dir="ltr">plotSynopsis</code> properties and each of these properties had an <code translate="no" dir="ltr">operatorName</code> of <code translate="no" dir="ltr">plot</code>. As long as both of these properties are text (<code translate="no" dir="ltr">textPropertyOptions</code>), a single query using the <code translate="no" dir="ltr">plot</code> search operator retrieves them both.</p> <p>In addition to <code translate="no" dir="ltr">operatorName</code>, properties that are sortable can have <code translate="no" dir="ltr">lessThanOperatorName</code> and <code translate="no" dir="ltr">greaterThanOperatorName</code> fields in <code translate="no" dir="ltr">operatorOptions</code>. Users can use these options to create queries based on comparisons to a submitted value.</p> <p>Finally, the <code translate="no" dir="ltr">textOperatorOptions</code> has an <code translate="no" dir="ltr">exactMatchWithOperator</code> field in <code translate="no" dir="ltr">operatorOptions</code>. If you set <code translate="no" dir="ltr">exactMatchWithOperator</code> to <code translate="no" dir="ltr">true</code>, the query string must match the entire property value, not merely be found within the text. The text value is be treated as one atomic value in operator searches and facet matches.</p> <p>For example, consider indexing Book or Movie objects with genre properties. Genres could include &quot;Science-Fiction&quot;, &quot;Science&quot;, and &quot;Fiction&quot;. With <code translate="no" dir="ltr">exactMatchWithOperator</code> set to <code translate="no" dir="ltr">false</code> or omitted, searching for a genre or selecting either the &quot;Science&quot; or &quot;Fiction&quot; facet would also return results for &quot;Science-Fiction&quot; as the text is tokenized and the &quot;Science&quot; and &quot;Fiction&quot; tokens exist in &quot;Science-Fiction&quot;. When <code translate="no" dir="ltr">exactMatchWithOperator</code> is <code translate="no" dir="ltr">true</code>, the text is treated as a single token, so neither &quot;Science&quot; nor &quot;Fiction&quot; matches &quot;Science-Fiction&quot;.</p> <h3 id="optional_add_the_displayoptions_section" data-text="(Optional) Add the displayOptions section" tabindex="-1">(Optional) Add the <code translate="no" dir="ltr">displayOptions</code> section</h3> <p>There is an optional <code translate="no" dir="ltr">displayOptions</code> section at the end of any <code translate="no" dir="ltr">propertyDefinition</code> section. This section contains one <code translate="no" dir="ltr">displayLabel</code> string. The <code translate="no" dir="ltr">displayLabel</code> is a recommended, user-friendly text label for the property. If the property is configured for display using <a href="/cloud-search/docs/reference/rest/v1/Schema#objectdisplayoptions">ObjectDisplayOptions</a>, this label is displayed in front of the property. If the property is configured for display and <code translate="no" dir="ltr">displayLabel</code> is not defined, only the property value is displayed.</p> <p>The following snippet shows the <code translate="no" dir="ltr">movieTitle</code> property with a <code translate="no" dir="ltr">displayLabel</code> set to &#39;Title&#39;.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Text only"><code translate="no" dir="ltr">{ "name": "movieTitle", "isReturnable": true, "isWildcardSearchable": true, "textPropertyOptions": { "retrievalImportance": { "importance": "HIGHEST" }, "operatorOptions": { "operatorName": "title" } }, "displayOptions": { "displayLabel": "Title" } }, </code></pre></devsite-code> <p>Following are the <code translate="no" dir="ltr">displayLabel</code> values for all of the properties of the <code translate="no" dir="ltr">movie</code> object in the sample schema:</p> <table> <thead> <tr> <th>Property</th> <th><code translate="no" dir="ltr">displayLabel</code></th> </tr> </thead> <tbody> <tr> <td><code translate="no" dir="ltr">movieTitle</code></td> <td><code translate="no" dir="ltr">Title</code></td> </tr> <tr> <td><code translate="no" dir="ltr">releaseDate</code></td> <td><code translate="no" dir="ltr">Release date</code></td> </tr> <tr> <td><code translate="no" dir="ltr">genre</code></td> <td><code translate="no" dir="ltr">Genre</code></td> </tr> <tr> <td><code translate="no" dir="ltr">duration</code></td> <td><code translate="no" dir="ltr">Run length</code></td> </tr> <tr> <td><code translate="no" dir="ltr">actorName</code></td> <td><code translate="no" dir="ltr">Actor</code></td> </tr> <tr> <td><code translate="no" dir="ltr">userRating</code></td> <td><code translate="no" dir="ltr">Audience score</code></td> </tr> <tr> <td><code translate="no" dir="ltr">mpaaRating</code></td> <td><code translate="no" dir="ltr">MPAA rating</code></td> </tr> </tbody> </table> <h3 id="optional_add_suggestionfilteringoperators_section" data-text="(Optional) Add suggestionFilteringOperators[] section" tabindex="-1">(Optional) Add <code translate="no" dir="ltr">suggestionFilteringOperators[]</code> section</h3> <p>There is an optional <a href="/cloud-search/docs/reference/rest/v1/Schema#objectoptions"><code translate="no" dir="ltr">suggestionFilteringOperators[]</code></a> section at the end of any <code translate="no" dir="ltr">propertyDefinition</code> section. Use this section to define a property used to filter autocomplete suggestions. For example, you might define the operator of <code translate="no" dir="ltr">genre</code> to filter suggestions based on the user&#39;s preferred movie genre. Then, when the user types their search query, only those movies matching their preferred genre are displayed as part of autocomplete suggestions.</p> <aside class="note"><strong>Note:</strong><span> Although this field is an array, you can only define one suggestions filter. If you define more than one filter, only the first filter defined is recognized.</span></aside> <h2 id="register" data-text="Register your schema" tabindex="-1">Register your schema</h2> <p>To have structured data returned from Cloud Search queries, you must register your schema with the Cloud Search schema service. Registering a schema requires the data source ID you obtained during the <a href="#initialize">Initialize a data source</a> step.</p> <p>Using the data source ID, issue an <a href="/cloud-search/docs/reference/rest/v1/indexing.datasources/updateSchema">UpdateSchema</a> request to register your schema.</p> <p>As detailed on the <a href="/cloud-search/docs/reference/rest/v1/indexing.datasources/updateSchema">UpdateSchema</a> reference page, issue the following HTTP request to register your schema:</p> <div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded> PUT https://cloudsearch.googleapis.com/v1/indexing/<span style="color:blue">{name=datasources/*}</span>/schema </pre></devsite-code> <p>The body of your request should contain the following:</p> <div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded> { "validateOnly": <span style="color:purple">// true or false</span>, "schema": { <span style="color:purple">// ... Your complete schema object ...</span> } } </pre></devsite-code> <p>Use the <code translate="no" dir="ltr">validateOnly</code> option to test the validity of your schema without actually registering it.</p> <h2 id="index" data-text="Index your data" tabindex="-1">Index your data</h2> <p>Once your schema is registered, populate the data source using <a href="/cloud-search/docs/reference/rest/v1/indexing.datasources.items">Index</a> calls. Indexing is normally done within your <a href="/cloud-search/docs/guides/connectors">content connector</a>.</p> <p>Using the movie schema, a REST API indexing request for a single movie would look like this:</p> <div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded> { "name": "datasource/<span style="color:purple">&lt;data_source_id&gt;</span>/items/titanic", "acl": { "readers": [ { "gsuitePrincipal": { "gsuiteDomain": true } } ] }, "metadata": { "title": "Titanic", "sourceRepositoryUrl": "http://www.imdb.com/title/tt2234155/?ref_=nv_sr_1", "objectType": "movie" }, "structuredData": { "object": { "properties": [ { "name": "movieTitle", "textValues": { "values": [ "Titanic" ] } }, { "name": "releaseDate", "dateValues": { "values": [ { "year": 1997, "month": 12, "day": 19 } ] } }, { "name": "actorName", "textValues": { "values": [ "Leonardo DiCaprio", "Kate Winslet", "Billy Zane" ] } }, { "name": "genre", "enumValues": { "values": [ "Drama", "Action" ] } }, { "name": "userRating", "integerValues": { "values": [ 8 ] } }, { "name": "mpaaRating", "textValues": { "values": [ "PG-13" ] } }, { "name": "duration", "textValues": { "values": [ "3 h 14 min" ] } } ] } }, "content": { "inlineContent": "A seventeen-year-old aristocrat falls in love with a kind but poor artist aboard the luxurious, ill-fated R.M.S. Titanic.", "contentFormat": "TEXT" }, "version": "01", "itemType": "CONTENT_ITEM" } </pre></devsite-code> <p>Note how the value of <code translate="no" dir="ltr">movie</code> in the <code translate="no" dir="ltr">objectType</code> field matches the object definition name in the schema. By matching these two values, Cloud Search knows which schema object to use during indexing.</p> <p>Also note how the indexing of the schema property <code translate="no" dir="ltr">releaseDate</code> uses sub-properties of <code translate="no" dir="ltr">year</code>, <code translate="no" dir="ltr">month</code>, and <code translate="no" dir="ltr">day</code> which it inherits because it is defined as a <code translate="no" dir="ltr">date</code> data type through using <code translate="no" dir="ltr">datePropertyOptions</code> to define it. However, because <code translate="no" dir="ltr">year</code>, <code translate="no" dir="ltr">month</code>, and <code translate="no" dir="ltr">day</code> are not defined in the schema, you cannot query on one of those properties (e.g., <code translate="no" dir="ltr">year</code>) individually.</p> <p>And also note how the repeatable property <code translate="no" dir="ltr">actorName</code> is indexed by using a list of values.</p> <aside class="note"><strong>Note:</strong><span> The property name in an indexing request must match the case of the property in the schema or a portion of the indexing request is dropped as an unregistered property.</span></aside> <h3 id="identifying_potential_indexing_problems" data-text="Identifying potential indexing problems" tabindex="-1">Identifying potential indexing problems</h3> <p>The two most common problems relating to schemas and indexing are:</p> <ul> <li><p>Your indexing request contains an schema object or property name that was not registered with the schema service. This problem causes the property or object to be ignored.</p></li> <li><p>Your indexing request has property with a type value different from the type registered in the schema. This problem causes Cloud Search to return an error at indexing time.</p></li> </ul> <h2 id="test" data-text="Test your schema with several query types" tabindex="-1">Test your schema with several query types</h2> <p>Before you register your schema for a large production data repository, consider testing with a smaller test data repository. Testing with a smaller test repository allows you to quickly make adjustments to your schema, and delete the indexed data, without impacting a larger index or an existing production index. For a test data repository, create an ACL that authorizes only a test user so that other users won&#39;t see this data in Search results.</p> <p>To create a search interface to validate search queries, refer to <a href="/cloud-search/docs/guides/search-interface">The search interface</a></p> <p>This section contains several different example queries you might use to test a movie schema.</p> <h3 id="test_with_a_generic_query" data-text="Test with a generic query" tabindex="-1">Test with a generic query</h3> <p>A generic query returns all items in the data source containing a specific string. Using a search interface, you might run generic query against a movie data source by typing in the word <strong>&quot;titanic&quot;</strong> and pressing <strong>Return</strong>. All movies with the word &quot;titanic&quot; should be returned in the search results.</p> <h3 id="test_with_an_operator" data-text="Test with an operator" tabindex="-1">Test with an operator</h3> <p>Adding an operator to the query limits the results to the items that match that operator value. For example, you might want to use the <code translate="no" dir="ltr">actor</code> operator to find all movies starring a specific actor. Using a search interface, you can perform this operator query simply by typing in a <em>operator=value</em> pair, such as <strong>&quot;actor:Zane&quot;</strong>, and pressing <strong>Return</strong>. All movies with Zane as an actor should be returned in the search results.</p> <h2 id="tune" data-text="Tune your schema" tabindex="-1">Tune your schema</h2> <p>After your schema and your data are in use, continue to monitor what is working and not working for your users. You should consider adjusting your schema for the following situations:</p> <ul> <li>Indexing a field that had not previously been indexed. For example, your users might repeatedly search for movies based on the director name, so you might adjust your schema to support director name as an operator.</li> <li>Changing search operator names based on user feedback. Operator names are meant to be user-friendly. If your users consistently &quot;remember&quot; the wrong operator name, you might consider changing it.</li> </ul> <aside class="note"><strong>Note:</strong><span> When schema is updated or deleted, the search application is also updated. For example, if an schema operator is renamed, then it is also renamed in search application configuration. If the schema update is incompatible with the search application, and it&#39;s not possible to update search application, then the schema update fails and an error is sent in the update response.</span></aside> <h3 id="re-indexing_after_a_schema_change" data-text="Re-indexing after a schema change" tabindex="-1">Re-indexing after a schema change</h3> <p>Changing any of the following values in your schema <em>does not</em> require you to re-index your data. You can simply submit a new <a href="/cloud-search/docs/reference/rest/v1/indexing.datasources/updateSchema">UpdateSchema</a> request and your index will continue to function:</p> <ul> <li>Operator names.</li> <li>Integer minimum and maximum values.</li> <li>Integer and enum ordered ranking.</li> <li>Freshness options.</li> <li>Display options.</li> </ul> <p>For the following changes, previously indexed data will continue to work according to the previously registered schema. However, you must re-index existing entries to see changes based on the updated schema if it has these changes:</p> <ul> <li>Adding or removing a new property or object</li> <li>Changing <code translate="no" dir="ltr">isReturnable</code>, <code translate="no" dir="ltr">isFacetable</code>, or <code translate="no" dir="ltr">isSortable</code> from <code translate="no" dir="ltr">false</code> to <code translate="no" dir="ltr">true</code>.</li> </ul> <p>You should set <code translate="no" dir="ltr">isFacetable</code> or <code translate="no" dir="ltr">isSortable</code> to be <code translate="no" dir="ltr">true</code> <em>only</em> if you have a clear use case and need.</p> <p>Finally, when you update your schema by marking a property <code translate="no" dir="ltr">isSuggestable</code>, you must reindex your data which causes a delay in the use of autocomplete for that property.</p> <h3 id="disallowed" data-text="Disallowed property changes" tabindex="-1">Disallowed property changes</h3> <p>Some schema changes are not allowed, even if you reindex your data, because they will break the index or produce poor or inconsistent search results. These include changes to:</p> <ul> <li>Property data type.</li> <li>Property name.</li> <li><code translate="no" dir="ltr">exactMatchWithOperator</code> setting.</li> <li><code translate="no" dir="ltr">retrievalImportance</code> setting.</li> </ul> <p>However, there is a way around this limitation.</p> <h3 id="complex" data-text="Make a complex schema change" tabindex="-1">Make a complex schema change</h3> <p>To avoid changes that would generate poor search results or a broken search index, Cloud Search prevents certain kinds of changes in <a href="/cloud-search/docs/reference/rest/v1/indexing.datasources/updateSchema">UpdateSchema</a> requests after the repository has been indexed. For example, the data type or name of a property cannot be changed after they have been set. These changes cannot be achieved through a simple <a href="/cloud-search/docs/reference/rest/v1/indexing.datasources/updateSchema">UpdateSchema</a> request, even if you re-index your data.</p> <p>In situations where you must make an otherwise <em>disallowed</em> change to your schema, you can often make a series of <em>allowed</em> changes that achieve the same effect. In general, this involves first migrating indexed properties from an older object definition to a newer one and then sending an indexing request that uses only the newer property.</p> <p>The following steps show how to change the data type or name of a property:</p> <ol> <li>Add a new property to the object definition in your schema. Use a different name from the property you want to change.</li> <li>Issue the <a href="/cloud-search/docs/reference/rest/v1/indexing.datasources/updateSchema">UpdateSchema</a> request with the new definition. Remember to send the entire schema, including both the new and old property, in the request.</li> <li><p>Backfill the index from the data repository. To backfill the index, send all indexing requests using the new property, but <em>not</em> the old property, since this would lead to double counting query matches.</p> <ol> <li>During indexing backfill, check for the new property and default to the old property to avoid inconsistent behavior.</li> <li>After backfill completes, run test queries to verify.</li> </ol></li> <li><p>Delete the old property. Issue another <a href="/cloud-search/docs/reference/rest/v1/indexing.datasources/updateSchema">UpdateSchema</a> request without the old property name and discontinue use of the old property name in future indexing requests.</p></li> <li><p>Migrate any usage of the old property to the new property. For example, if you change the property name from creator to author, you must update your query code to use author where it previously referenced creator.</p></li> </ol> <p>Cloud Search keeps a record of any deleted property or object for 30 days to protect against any re-use that would cause unexpected indexing results. Within that 30 days, you should migrate away from all usage of the deleted object or property, including omitting them from future index requests. This ensures that if you later decide to re-instate that property or object, you can do so in a way that maintains the correctness of your index.</p> <h3 id="know_size_limitations" data-text="Know size limitations" tabindex="-1">Know size limitations</h3> <p>Cloud Search imposes limits on the size of structured data objects and schemas. These limits are:</p> <ul> <li>The maximum number of top-level objects is 10 objects.</li> <li>The maximum depth of a structured data hierarchy is 10 levels.</li> <li>The total number of fields in an object is limited to 1000, which includes the number of primitive fields plus the sum of the number of fields in each nested object.</li> </ul> <h2 id="next_steps" data-text="Next Steps" tabindex="-1">Next Steps</h2> <p>Here are a few next steps you might take:</p> <ol> <li><p>Create a <a href="/cloud-search/docs/guides/search-interface">search interface</a> to test your schema.</p></li> <li><p>Tune your schema to <a href="/cloud-search/docs/guides/improve-search-quality">improve search quality</a>.</p></li> <li><p><a href="/cloud-search/docs/guides/query-interpretation">Structure a schema for optimal query interpretation</a>.</p></li> <li><p>Learn how to leverage the <a href="/cloud-search/docs/reference/schemas"><code translate="no" dir="ltr">_dictionaryEntry</code></a> schema to define synonyms for terms commonly used in your company. To use the <a href="/cloud-search/docs/reference/schemas"><code translate="no" dir="ltr">_dictionaryEntry</code></a> schema, refer to <a href="/cloud-search/docs/guides/synonyms">Define synonyms</a>.</p></li> <li><p>Create a <a href="/cloud-search/docs/guides/connectors">connector</a>.</p></li> </ol> <devsite-hats-survey class="nocontent" hats-id="vuPFkdRyz0eGRuQsCn30VLq5XqxM" listnr-id="717201"></devsite-hats-survey> </div> <devsite-recommendations display="in-page" hidden yield> </devsite-recommendations> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Cloud Search" product-id="717201" bucket="cloud-search" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=1134311&amp;template=1640548" project-icon="https://www.gstatic.com/images/branding/product/1x/google_cloud_search_64dp.png" project-support-url="https://developers.google.com/cloud-search/support" > <button> Send feedback </button> </devsite-feedback> <devsite-recommendations id="recommendations-link" yield></devsite-recommendations> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2024-12-19 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Cloud Search" product-id="717201" bucket="cloud-search" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=1134311&amp;template=1640548" project-icon="https://www.gstatic.com/images/branding/product/1x/google_cloud_search_64dp.png" project-support-url="https://developers.google.com/cloud-search/support" > <button> Need to tell us more? </button> </devsite-feedback> </template> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-12-19 UTC."],[[["Google Cloud Search Schema defines the structure of your data for indexing and querying within Google Cloud Search, enabling features like search operators and facets."],["Schema design involves identifying user search behavior, defining objects and properties with appropriate data types and options, and registering the schema with your data source."],["Before deploying to production, test and tune your schema to ensure optimal search functionality and user experience; monitor and adjust as needed based on user search patterns."],["Understand re-indexing implications: some schema changes require re-indexing your data, while others do not."],["Be aware of schema size limitations and disallowed changes, and employ workarounds when necessary to accommodate complex schema modifications."]]],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> <nav class="devsite-footer-promos nocontent" aria-label="Promotions"> <ul class="devsite-footer-promos-list"> <li class="devsite-footer-promo"> <a href="https://developers.googleblog.com/search/?query=Google+Workspace" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" target="_blank" data-label="Promo - Google Workspace Developers Blog" data-category="Workspace Footer" > <picture> <img class="devsite-footer-promo-icon" src="https://www.gstatic.com/images/branding/product/2x/google_cloud_64dp.png" loading="lazy" alt="Blog"> </picture> <span class="devsite-footer-promo-label"> Blog </span> </a> <div class="devsite-footer-promo-description">Read the Google Workspace Developers blog</div> </li> <li class="devsite-footer-promo"> <a href="https://stackoverflow.com/questions/tagged/google-cloud-search" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" target="_blank" data-category="Workspace Footer" data-label="Promo - Stack Overflow" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-stack-overflow.svg" loading="lazy" alt="Stack Overview"> </picture> <span class="devsite-footer-promo-label"> Stack Overview </span> </a> <div class="devsite-footer-promo-description">Ask questions with the google-cloud-search tag</div> </li> <li class="devsite-footer-promo"> <a href="https://github.com/googleworkspace/cloud-search-samples" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" target="_blank" data-category="Workspace Footer" data-label="Promo - Google Workspace Github" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-github.svg" loading="lazy" alt="Code Samples"> </picture> <span class="devsite-footer-promo-label"> Code Samples </span> </a> <div class="devsite-footer-promo-description">Explore our sample apps or copy them to build your own</div> </li> <li class="devsite-footer-promo"> <a href="/api-client-library" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Promo - Client libraries" data-category="Workspace Footer" target="_blank" > <div class="devsite-footer-promo-icon material-icons" aria-hidden="true">file_download</div> <span class="devsite-footer-promo-label"> Client libraries </span> </a> <div class="devsite-footer-promo-description">Download a client library for your preferred language</div> </li> </ul> </nav> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Google Workspace for Developers</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/workspace" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-category="Workspace Footer"data-label="Linkbox - Platform overview"> Platform overview </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/products" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Developer products"data-category="Workspace Footer"> Developer products </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/support" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Developer support"data-category="Workspace Footer"> Developer support </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/terms" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Terms of Service"data-category="Workspace Footer"> Terms of Service </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Tools</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://admin.google.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Admin console"target="admin-console"data-category="Workspace Footer"> Admin console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://script.google.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" target="_blank"data-category="Workspace Footer"data-label="Linkbox - Apps Script Dashboard"> Apps Script Dashboard </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://console.cloud.google.com/workspace-api" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-category="Workspace Footer"data-label="Linkbox - Google Cloud console"target="console"> Google Cloud console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/explore" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-category="Workspace Footer"data-label="Linkbox - APIs Explorer"> APIs Explorer </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Connect</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://developers.googleblog.com/search/?query=Google+Workspace" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Blog"target="_blank"data-category="Workspace Footer"> Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/newsletters" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Newsletter"data-category="Workspace Footer"> Newsletter </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://twitter.com/workspacedevs" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - X (Twitter)"data-category="Workspace Footer"target="_blank"> X (Twitter) </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - YouTube"target="_blank"data-category="Workspace Footer"> YouTube </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <picture> <img class="devsite-footer-sites-logo" src="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/images/lockup-google-for-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//developer.android.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Android Link" > Android </a> </li> <li class="devsite-footer-sites-item"> <a href="//developer.chrome.com/home" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Chrome Link" > Chrome </a> </li> <li class="devsite-footer-sites-item"> <a href="//firebase.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Firebase Link" > Firebase </a> </li> <li class="devsite-footer-sites-item"> <a href="//cloud.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud Platform Link" > Google Cloud Platform </a> </li> <li class="devsite-footer-sites-item"> <a href="//ai.google.dev/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google AI Link" > Google AI </a> </li> <li class="devsite-footer-sites-item"> <a href="/products" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link" > All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/terms/site-terms" data-category="Site-Wide Custom Events" data-label="Footer Terms link" > Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the Google for Developers newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/newsletter/subscribe" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" > Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> <devsite-concierge data-info-panel data-ai-panel data-api-explorer-panel > </devsite-concierge> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[{&#34;dimensions&#34;: {&#34;dimension6&#34;: &#34;en&#34;, &#34;dimension5&#34;: &#34;en&#34;, &#34;dimension11&#34;: false, &#34;dimension1&#34;: &#34;Signed out&#34;, &#34;dimension3&#34;: false, &#34;dimension4&#34;: &#34;Cloud Search&#34;}, &#34;gaid&#34;: &#34;UA-24532603-1&#34;, &#34;metrics&#34;: {&#34;ratings_value&#34;: &#34;metric1&#34;, &#34;ratings_count&#34;: &#34;metric2&#34;}, &#34;purpose&#34;: 1}]</script> <script type="application/json" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [{&#34;id&#34;: &#34;G-272J68FCRF&#34;, &#34;purpose&#34;: 1}, {&#34;id&#34;: &#34;G-YYP88VSJWR&#34;, &#34;purpose&#34;: 0}], &#34;ga4p&#34;: [{&#34;id&#34;: &#34;G-272J68FCRF&#34;, &#34;purpose&#34;: 1}], &#34;gtm&#34;: [], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;Cloud Search&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;developers&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="KGH/WWu5SnOiTNsgsRcOWPVDEFuIDi"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/js/app_loader.js', '[1,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers","https://developers-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/developers/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/images/favicon-new.png","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","developers.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Cloud__enable_cloudx_experiment_ids","Significatio__enable_by_tenant","Profiles__enable_public_developer_profiles","Profiles__enable_completecodelab_endpoint","DevPro__enable_cloud_innovators_plus","Profiles__enable_profile_collections","CloudShell__cloud_code_overflow_menu","EngEduTelemetry__enable_engedu_telemetry","Search__enable_page_map","Profiles__enable_stripe_subscription_management","Cloud__enable_cloud_facet_chat","MiscFeatureFlags__enable_view_transitions","Search__enable_ai_eligibility_checks","Profiles__enable_developer_profiles_callout","Search__enable_ai_search_summaries_restricted","Profiles__enable_page_saving","Concierge__enable_concierge","Profiles__enable_awarding_url","Profiles__enable_dashboard_curated_recommendations","Profiles__require_profile_eligibility_for_signin","BookNav__enable_tenant_cache_key","Analytics__enable_clearcut_logging","MiscFeatureFlags__developers_footer_dark_image","TpcFeatures__enable_unmirrored_page_left_nav","MiscFeatureFlags__enable_explain_this_code","Cloud__enable_cloud_dlp_service","Cloud__enable_llm_concierge_chat","Experiments__reqs_query_experiments","Concierge__enable_key_takeaways","Cloud__enable_legacy_calculator_redirect","Cloud__enable_cloud_shell_fte_user_flow","CloudShell__cloud_shell_button","MiscFeatureFlags__enable_firebase_utm","DevPro__enable_developer_subscriptions","Concierge__enable_pushui","Profiles__enable_completequiz_endpoint","MiscFeatureFlags__enable_project_variables","MiscFeatureFlags__enable_variable_operator","Cloud__enable_free_trial_server_call","Profiles__enable_release_notes_notifications","Profiles__enable_recognition_badges","Search__enable_dynamic_content_confidential_banner","Cloud__enable_cloud_shell","Profiles__enable_join_program_group_endpoint","Concierge__enable_concierge_restricted","Profiles__enable_complete_playlist_endpoint","Search__enable_suggestions_from_borg","TpcFeatures__enable_mirror_tenant_redirects","Cloud__enable_cloudx_ping","Search__enable_ai_search_summaries","MiscFeatureFlags__emergency_css","MiscFeatureFlags__developers_footer_image"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,null,"https://developerprofiles-pa.clients6.google.com",[1,"developers","Google for Developers","developers.google.com",null,"developers-dot-devsite-v2-prod.appspot.com",null,null,[1,1,[1],null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],[1,null,null,[1,20],"/recommendations/information"],null,null,null,[1,1,1],[1,1,null,1,1]],null,[null,null,null,null,null,null,"/images/lockup-new.svg","/images/touchicon-180-new.png",null,null,null,null,1,null,null,null,null,null,null,null,null,1,null,null,null,"/images/lockup-dark-theme-new.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,20,22,23,29,32,36],null,[[null,null,null,[3,7,10,2,39,17,4,32,24,11,12,13,34,15,25],null,null,[1,[["docType","Choose a content type",[["Tutorial",null,null,null,null,null,null,null,null,"Tutorial"],["Guide",null,null,null,null,null,null,null,null,"Guide"],["Sample",null,null,null,null,null,null,null,null,"Sample"]]],["product","Choose a product",[["Android",null,null,null,null,null,null,null,null,"Android"],["ARCore",null,null,null,null,null,null,null,null,"ARCore"],["ChromeOS",null,null,null,null,null,null,null,null,"ChromeOS"],["Firebase",null,null,null,null,null,null,null,null,"Firebase"],["Flutter",null,null,null,null,null,null,null,null,"Flutter"],["Assistant",null,null,null,null,null,null,null,null,"Google Assistant"],["GoogleCloud",null,null,null,null,null,null,null,null,"Google Cloud"],["GoogleMapsPlatform",null,null,null,null,null,null,null,null,"Google Maps Platform"],["GooglePay",null,null,null,null,null,null,null,null,"Google Pay & Google Wallet"],["GooglePlay",null,null,null,null,null,null,null,null,"Google Play"],["Tensorflow",null,null,null,null,null,null,null,null,"TensorFlow"]]],["category","Choose a topic",[["AiAndMachineLearning",null,null,null,null,null,null,null,null,"AI and Machine Learning"],["Data",null,null,null,null,null,null,null,null,"Data"],["Enterprise",null,null,null,null,null,null,null,null,"Enterprise"],["Gaming",null,null,null,null,null,null,null,null,"Gaming"],["Mobile",null,null,null,null,null,null,null,null,"Mobile"],["Web",null,null,null,null,null,null,null,null,"Web"]]]]]],[1,1],null,1],[[["UA-24532603-1"],["UA-22084204-5"],null,null,["UA-24532603-5"],null,null,[["G-272J68FCRF"],null,null,[["G-272J68FCRF",2]]],[["UA-24532603-1",2]],null,[["UA-24532603-5",2]],null,1],[[13,10],[16,13],[12,9],[3,2],[4,3],[6,5],[11,8],[14,11],[15,12],[5,4],[1,1]],[[2,2],[1,1]]],null,4,null,null,null,null,null,null,null,null,null,null,null,null,null,"developers.devsite.google"],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m",1]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10