Schema

The schema definition for a data source.

JSON representation
{
  "objectDefinitions": [
    {
      object (ObjectDefinition)
    }
  ],
  "operationIds": [
    string
  ]
}
Fields
objectDefinitions[]

object (ObjectDefinition)

The list of top-level objects for the data source. The maximum number of elements is 10.

operationIds[]

string

IDs of the Long Running Operations (LROs) currently running for this schema. After modifying the schema, wait for operations to complete before indexing additional content.

ObjectDefinition

The definition for an object within a data source.

JSON representation
{
  "name": string,
  "options": {
    object (ObjectOptions)
  },
  "propertyDefinitions": [
    {
      object (PropertyDefinition)
    }
  ]
}
Fields
name

string

Name for the object, which then defines its type. Item indexing requests should set the objectType field equal to this value. For example, if name is Document, then indexing requests for items of type Document should set objectType equal to Document. Each object definition must be uniquely named within a schema. The name must start with a letter and can only contain letters (A-Z, a-z) or numbers (0-9). The maximum length is 256 characters.

options

object (ObjectOptions)

The optional object-specific options.

propertyDefinitions[]

object (PropertyDefinition)

The property definitions for the object. The maximum number of elements is 1000.

ObjectOptions

The options for an object.

JSON representation
{
  "freshnessOptions": {
    object (FreshnessOptions)
  },
  "displayOptions": {
    object (ObjectDisplayOptions)
  }
}
Fields
freshnessOptions

object (FreshnessOptions)

The freshness options for an object.

displayOptions

object (ObjectDisplayOptions)

Options that determine how the object is displayed in the Cloud query.search results page.

FreshnessOptions

Indicates which freshness property to use when adjusting search ranking for an item. Fresher, more recent dates indicate higher quality. Use the freshness option property that best works with your data. For fileshare documents, last modified time is most relevant. For calendar event data, the time when the event occurs is a more relevant freshness indicator. In this way, calendar events that occur closer to the time of the search query are considered higher quality and ranked accordingly.

JSON representation
{
  "freshnessProperty": string,
  "freshnessDuration": string
}
Fields
freshnessProperty

string

This property indicates the freshness level of the object in the index. If set, this property must be a top-level property within the property definitions and it must be a timestamp type or date type. Otherwise, the Indexing API uses updateTime as the freshness indicator. The maximum length is 256 characters.

When a property is used to calculate fresheness, the value defaults to 2 years from the current time.

freshnessDuration

string (Duration format)

The duration after which an object should be considered stale. The default value is 180 days (in seconds).

A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".

ObjectDisplayOptions

The display options for an object.

JSON representation
{
  "objectDisplayLabel": string,
  "metalines": [
    {
      object (Metaline)
    }
  ]
}
Fields
objectDisplayLabel

string

The user friendly label to display in the search result to inidicate the type of the item. This is OPTIONAL; if not given, an object label will not be displayed on the context line of the search results. The maximum length is 32 characters.

metalines[]

object (Metaline)

Defines the properties that will be displayed in the metalines of the search results. The property values will be displayed in the order given here. If a property holds multiple values, all of the values will be diplayed before the next properties. For this reason, it is a good practice to specify singular properties before repeated properties in this list. All of the properties must set isReturnable to true. The maximum number of metalines is 3.

Metaline

A metaline is a list of properties that are displayed along with the search result to provide context.

JSON representation
{
  "properties": [
    {
      object (DisplayedProperty)
    }
  ]
}
Fields
properties[]

object (DisplayedProperty)

The list of displayed properties for the metaline. The maxiumum number of properties is 5.

DisplayedProperty

A reference to a top-level property within the object that should be displayed in search results. The values of the chosen properties will be displayed in the search results along with the dislpay label for that property if one is specified. If a display label is not specified, only the values will be shown.

JSON representation
{
  "propertyName": string
}
Fields
propertyName

string

The name of the top-level property as defined in a property definition for the object. If the name is not a defined property in the schema, an error will be given when attempting to update the schema.

PropertyDefinition

The definition of a property within an object.

JSON representation
{
  "name": string,
  "isReturnable": boolean,
  "isRepeatable": boolean,
  "isSortable": boolean,
  "isFacetable": boolean,
  "isSuggestable": boolean,
  "isWildcardSearchable": boolean,
  "displayOptions": {
    object (PropertyDisplayOptions)
  },

  // Union field property_options can be only one of the following:
  "integerPropertyOptions": {
    object (IntegerPropertyOptions)
  },
  "doublePropertyOptions": {
    object (DoublePropertyOptions)
  },
  "timestampPropertyOptions": {
    object (TimestampPropertyOptions)
  },
  "booleanPropertyOptions": {
    object (BooleanPropertyOptions)
  },
  "objectPropertyOptions": {
    object (ObjectPropertyOptions)
  },
  "enumPropertyOptions": {
    object (EnumPropertyOptions)
  },
  "datePropertyOptions": {
    object (DatePropertyOptions)
  },
  "textPropertyOptions": {
    object (TextPropertyOptions)
  },
  "htmlPropertyOptions": {
    object (HtmlPropertyOptions)
  }
  // End of list of possible types for union field property_options.
}
Fields
name

string

The name of the property. Item indexing requests sent to the Indexing API should set the property name equal to this value. For example, if name is subject_line, then indexing requests for document items with subject fields should set the name for that field equal to subject_line. Use the name as the identifier for the object property. Once registered as a property for an object, you cannot re-use this name for another property within that object. The name must start with a letter and can only contain letters (A-Z, a-z) or numbers (0-9). The maximum length is 256 characters.

isReturnable

boolean

Indicates that the property identifies data that should be returned in search results via the Query API. If set to true, indicates that Query API users can use matching property fields in results. However, storing fields requires more space allocation and uses more bandwidth for search queries, which impacts performance over large datasets. Set to true here only if the field is needed for search results. Cannot be true for properties whose type is an object.

isRepeatable

boolean

Indicates that multiple values are allowed for the property. For example, a document only has one description but can have multiple comments. Cannot be true for properties whose type is a boolean. If set to false, properties that contain more than one value will cause the indexing request for that item to be rejected.

isSortable

boolean

Indicates that the property can be used for sorting. Cannot be true for properties that are repeatable. Cannot be true for properties whose type is object or user identifier. IsReturnable must be true to set this option. Only supported for Boolean, Date, Double, Integer, and Timestamp properties.

isFacetable

boolean

Indicates that the property can be used for generating facets. Cannot be true for properties whose type is object. IsReturnable must be true to set this option. Only supported for Boolean, Enum, and Text properties.

isSuggestable

boolean

Indicates that the property can be used for generating query suggestions.

isWildcardSearchable

boolean

Indicates that users can perform wildcard search for this property. Only supported for Text properties. IsReturnable must be true to set this option. In a given datasource maximum of 5 properties can be marked as isWildcardSearchable.

Note: This is an alpha feature and is enabled for whitelisted users only.

displayOptions

object (PropertyDisplayOptions)

Options that determine how the property is displayed in the Cloud query.search results page if it is specified to be displayed in the object's display options .

Union field property_options. The type-specific options that determine how the property is indexed and used. In the case where the options should be the default options for a type, this field must still be set to one of the types. If this field is not set, schema updates will be rejected. property_options can be only one of the following:
integerPropertyOptions

object (IntegerPropertyOptions)

doublePropertyOptions

object (DoublePropertyOptions)

timestampPropertyOptions

object (TimestampPropertyOptions)

booleanPropertyOptions

object (BooleanPropertyOptions)

objectPropertyOptions

object (ObjectPropertyOptions)

enumPropertyOptions

object (EnumPropertyOptions)

datePropertyOptions

object (DatePropertyOptions)

textPropertyOptions

object (TextPropertyOptions)

htmlPropertyOptions

object (HtmlPropertyOptions)

IntegerPropertyOptions

Options for integer properties.

JSON representation
{
  "orderedRanking": enum (OrderedRanking),
  "minimumValue": string,
  "maximumValue": string,
  "operatorOptions": {
    object (IntegerOperatorOptions)
  }
}
Fields
orderedRanking

enum (OrderedRanking)

Used to specify the ordered ranking for the integer. Can only be used if isRepeatable is false.

minimumValue

string (Int64Value format)

The minimum value of the property. The minimum and maximum values for the property are used to rank results according to the ordered ranking. Indexing requests with values less than the minimum are accepted and ranked with the same weight as items indexed with the minimum value.

maximumValue

string (Int64Value format)

The maximum value of the property. The minimum and maximum values for the property are used to rank results according to the ordered ranking. Indexing requests with values greater than the maximum are accepted and ranked with the same weight as items indexed with the maximum value.

operatorOptions

object (IntegerOperatorOptions)

If set, describes how the integer should be used as a search operator.

OrderedRanking

Used to specify how an integer value should be ranked relative to other values. An integer with a higher ordered ranking will suggest greater imporance. For example, in some data sources lower priority indicates higher importance while in others a higher priority indicates higher importance.

Enums
NO_ORDER There is no ranking order for the property. Results will not be adjusted by this property's value.
ASCENDING This property is ranked in ascending order. Lower values indicate lower ranking.
DESCENDING This property is ranked in descending order. Lower values indicate higher ranking.

IntegerOperatorOptions

Used to provide a search operator for integer properties. This is optional. query.search operators let users restrict the query to specific fields relevant to the type of item being searched.

JSON representation
{
  "operatorName": string,
  "lessThanOperatorName": string,
  "greaterThanOperatorName": string
}
Fields
operatorName

string

Indicates the operator name required in the query in order to isolate the integer property. For example, if operatorName is priority and the property's name is priorityVal, then queries like priority:<value> will show results only where the value of the property named priorityVal matches <value>. By contrast, a search that uses the same <value> without an operator will return all items where <value> matches the value of any String properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.

lessThanOperatorName

string

Indicates the operator name required in the query in order to isolate the integer property using the less-than operator. For example, if lessThanOperatorName is prioritybelow and the property's name is priorityVal, then queries like prioritybelow:<value> will show results only where the value of the property named priorityVal is less than <value>. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.

greaterThanOperatorName

string

Indicates the operator name required in the query in order to isolate the integer property using the greater-than operator. For example, if greaterThanOperatorName is priorityabove and the property's name is priorityVal, then queries like priorityabove:<value> will show results only where the value of the property named priorityVal is greater than <value>. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.

DoublePropertyOptions

Options for double properties.

JSON representation
{
  "operatorOptions": {
    object (DoubleOperatorOptions)
  }
}
Fields
operatorOptions

object (DoubleOperatorOptions)

If set, describes how the double should be used as a search operator.

DoubleOperatorOptions

Used to provide a search operator for double properties. This is optional. query.search operators let users restrict the query to specific fields relevant to the type of item being searched.

JSON representation
{
  "operatorName": string
}
Fields
operatorName

string

Indicates the operator name required in the query in order to use the double property in sorting or as a facet. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.

TimestampPropertyOptions

Options for timestamp properties.

JSON representation
{
  "operatorOptions": {
    object (TimestampOperatorOptions)
  }
}
Fields
operatorOptions

object (TimestampOperatorOptions)

If set, describes how the timestamp should be used as a search operator.

TimestampOperatorOptions

Used to provide a search operator for timestamp properties. This is optional. query.search operators let users restrict the query to specific fields relevant to the type of item being searched.

JSON representation
{
  "operatorName": string,
  "lessThanOperatorName": string,
  "greaterThanOperatorName": string
}
Fields
operatorName

string

Indicates the operator name required in the query in order to isolate the timestamp property. For example, if operatorName is closedon and the property's name is closeDate, then queries like closedon:<value> will show results only where the value of the property named closeDate matches <value>. By contrast, a search that uses the same <value> without an operator will return all items where <value> matches the value of any String properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.

lessThanOperatorName

string

Indicates the operator name required in the query in order to isolate the timestamp property using the less-than operator. For example, if lessThanOperatorName is closedbefore and the property's name is closeDate, then queries like closedbefore:<value> will show results only where the value of the property named closeDate is earlier than <value>. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.

greaterThanOperatorName

string

Indicates the operator name required in the query in order to isolate the timestamp property using the greater-than operator. For example, if greaterThanOperatorName is closedafter and the property's name is closeDate, then queries like closedafter:<value> will show results only where the value of the property named closeDate is later than <value>. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.

BooleanPropertyOptions

Options for boolean properties.

JSON representation
{
  "operatorOptions": {
    object (BooleanOperatorOptions)
  }
}
Fields
operatorOptions

object (BooleanOperatorOptions)

If set, describes how the boolean should be used as a search operator.

BooleanOperatorOptions

Used to provide a search operator for boolean properties. This is optional. query.search operators let users restrict the query to specific fields relevant to the type of item being searched.

JSON representation
{
  "operatorName": string
}
Fields
operatorName

string

Indicates the operator name required in the query in order to isolate the boolean property. For example, if operatorName is closed and the property's name is isClosed, then queries like closed:<value> will show results only where the value of the property named isClosed matches <value>. By contrast, a search that uses the same <value> without an operator will return all items where <value> matches the value of any String properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.

ObjectPropertyOptions

Options for object properties.

JSON representation
{
  "subobjectProperties": [
    {
      object (PropertyDefinition)
    }
  ]
}
Fields
subobjectProperties[]

object (PropertyDefinition)

The properties of the sub-object. These properties represent a nested object. For example, if this property represents a postal address, the subobjectProperties might be named street, city, and state. The maximum number of elements is 1000.

EnumPropertyOptions

Options for enum properties, which allow you to define a restricted set of strings to match user queries, set rankings for those string values, and define an operator name to be paired with those strings so that users can narrow results to only items with a specific value. For example, for items in a request tracking system with priority information, you could define p0 as an allowable enum value and tie this enum to the operator name priority so that search users could add priority:p0 to their query to restrict the set of results to only those items indexed with the value p0.

JSON representation
{
  "possibleValues": [
    {
      object (EnumValuePair)
    }
  ],
  "orderedRanking": enum (OrderedRanking),
  "operatorOptions": {
    object (EnumOperatorOptions)
  }
}
Fields
possibleValues[]

object (EnumValuePair)

The list of possible values for the enumeration property. All EnumValuePairs must provide a string value. If you specify an integer value for one EnumValuePair, then all possible EnumValuePairs must provide an integer value. Both the string value and integer value must be unique over all possible values. Once set, possible values cannot be removed or modified. If you supply an ordered ranking and think you might insert additional enum values in the future, leave gaps in the initial integer values to allow adding a value in between previously registered values. The maximum number of elements is 100.

orderedRanking

enum (OrderedRanking)

Used to specify the ordered ranking for the enumeration that determines how the integer values provided in the possible EnumValuePairs are used to rank results. If specified, integer values must be provided for all possible EnumValuePair values given for this property. Can only be used if isRepeatable is false.

operatorOptions

object (EnumOperatorOptions)

If set, describes how the enum should be used as a search operator.

EnumValuePair

The enumeration value pair defines two things: a required string value and an optional integer value. The string value defines the necessary query term required to retrieve that item, such as p0 for a priority item. The integer value determines the ranking of that string value relative to other enumerated values for the same property. For example, you might associate p0 with 0 and define another enum pair such as p1 and 1. You must use the integer value in combination with ordered ranking to set the ranking of a given value relative to other enumerated values for the same property name. Here, a ranking order of DESCENDING for priority properties results in a ranking boost for items indexed with a value of p0 compared to items indexed with a value of p1. Without a specified ranking order, the integer value has no effect on item ranking.

JSON representation
{
  "stringValue": string,
  "integerValue": number
}
Fields
stringValue

string

The string value of the EnumValuePair. The maximum length is 32 characters.

integerValue

number

The integer value of the EnumValuePair which must be non-negative. Optional.

OrderedRanking

Used to specify the ranking direction for an EnumValuePair integer relative to other EnumValuePair integer values. For some properties, lower integer values indicate higher importance, while in others a higher integer indicates higher importance.

Enums
NO_ORDER There is no ranking order for the property. Results will not be adjusted by this property's value.
ASCENDING This property is ranked in ascending order. Lower values indicate lower ranking.
DESCENDING This property is ranked in descending order. Lower values indicate higher ranking.

EnumOperatorOptions

Used to provide a search operator for enum properties. This is optional. query.search operators let users restrict the query to specific fields relevant to the type of item being searched. For example, if you provide no operator for a priority enum property with possible values p0 and p1, a query that contains the term p0 will return items that have p0 as the value of the priority property, as well as any items that contain the string p0 in other fields. If you provide an operator name for the enum, such as priority, then search users can use that operator to refine results to only items that have p0 as this property's value, with the query priority:p0.

JSON representation
{
  "operatorName": string
}
Fields
operatorName

string

Indicates the operator name required in the query in order to isolate the enum property. For example, if operatorName is priority and the property's name is priorityVal, then queries like priority:<value> will show results only where the value of the property named priorityVal matches <value>. By contrast, a search that uses the same <value> without an operator will return all items where <value> matches the value of any String properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.

DatePropertyOptions

Options for date properties.

JSON representation
{
  "operatorOptions": {
    object (DateOperatorOptions)
  }
}
Fields
operatorOptions

object (DateOperatorOptions)

If set, describes how the date should be used as a search operator.

DateOperatorOptions

Optional. Provides a search operator for date properties. query.search operators let users restrict the query to specific fields relevant to the type of item being searched.

JSON representation
{
  "operatorName": string,
  "lessThanOperatorName": string,
  "greaterThanOperatorName": string
}
Fields
operatorName

string

Indicates the actual string required in the query in order to isolate the date property. For example, suppose an issue tracking schema object has a property named closeDate that specifies an operator with an operatorName of closedon. For searches on that data, queries like closedon:<value> will show results only where the value of the closeDate property matches <value>. By contrast, a search that uses the same <value> without an operator will return all items where <value> matches the value of any String properties or text within the content field for the indexed datasource. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.

lessThanOperatorName

string

Indicates the operator name required in the query in order to isolate the date property using the less-than operator. For example, if lessThanOperatorName is closedbefore and the property's name is closeDate, then queries like closedbefore:<value> will show results only where the value of the property named closeDate is earlier than <value>. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.

greaterThanOperatorName

string

Indicates the operator name required in the query in order to isolate the date property using the greater-than operator. For example, if greaterThanOperatorName is closedafter and the property's name is closeDate, then queries like closedafter:<value> will show results only where the value of the property named closeDate is later than <value>. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.

TextPropertyOptions

Options for text properties.

JSON representation
{
  "retrievalImportance": {
    object (RetrievalImportance)
  },
  "operatorOptions": {
    object (TextOperatorOptions)
  }
}
Fields
retrievalImportance

object (RetrievalImportance)

Indicates the search quality importance of the tokens within the field when used for retrieval.

operatorOptions

object (TextOperatorOptions)

If set, describes how the property should be used as a search operator.

RetrievalImportance

JSON representation
{
  "importance": enum (Importance)
}
Fields
importance

enum (Importance)

Indicates the ranking importance given to property when it is matched during retrieval. Once set, the token importance of a property cannot be changed.

Importance

Enums
DEFAULT Treat the match like a body text match.
HIGHEST Treat the match like a match against title of the item.
HIGH Treat the match with higher importance than body text.
LOW Treat the match with lower importance than body text.
NONE Do not match against this field during retrieval. The property can still be used for operator matching, faceting, and suggest if desired.

TextOperatorOptions

Used to provide a search operator for text properties. This is optional. query.search operators let users restrict the query to specific fields relevant to the type of item being searched.

JSON representation
{
  "operatorName": string,
  "exactMatchWithOperator": boolean
}
Fields
operatorName

string

Indicates the operator name required in the query in order to isolate the text property. For example, if operatorName is subject and the property's name is subjectLine, then queries like subject:<value> will show results only where the value of the property named subjectLine matches <value>. By contrast, a search that uses the same <value> without an operator will return all items where <value> matches the value of any text properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.

exactMatchWithOperator

boolean

If true, the text value will be tokenized as one atomic value in operator searches and facet matches. For example, if the operator name is "genre" and the value is "science-fiction" the query restrictions "genre:science" and "genre:fiction" will not match the item; "genre:science-fiction" will. Value matching is case-sensitive and does not remove special characters. If false, the text will be tokenized. For example, if the value is "science-fiction" the queries "genre:science" and "genre:fiction" will match the item.

HtmlPropertyOptions

Options for html properties.

JSON representation
{
  "retrievalImportance": {
    object (RetrievalImportance)
  },
  "operatorOptions": {
    object (HtmlOperatorOptions)
  }
}
Fields
retrievalImportance

object (RetrievalImportance)

Indicates the search quality importance of the tokens within the field when used for retrieval. Can only be set to DEFAULT or NONE.

operatorOptions

object (HtmlOperatorOptions)

If set, describes how the property should be used as a search operator.

HtmlOperatorOptions

Used to provide a search operator for html properties. This is optional. query.search operators let users restrict the query to specific fields relevant to the type of item being searched.

JSON representation
{
  "operatorName": string
}
Fields
operatorName

string

Indicates the operator name required in the query in order to isolate the html property. For example, if operatorName is subject and the property's name is subjectLine, then queries like subject:<value> will show results only where the value of the property named subjectLine matches <value>. By contrast, a search that uses the same <value> without an operator will return all items where <value> matches the value of any html properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.

PropertyDisplayOptions

The display options for a property.

JSON representation
{
  "displayLabel": string
}
Fields
displayLabel

string

The user friendly label for the property that will be used if the property is specified to be displayed in ObjectDisplayOptions. If given, the display label will be shown in front of the property values when the property is part of the object display options. For example, if the property value is '1', the value by itself may not be useful context for the user. If the display name given was 'priority', then the user will see 'priority : 1' in the search results which provides clear conext to search users. This is OPTIONAL; if not given, only the property values will be displayed. The maximum length is 32 characters.

Skicka feedback om ...