Функция интерпретации запросов Cloud Search автоматически преобразует операторы и фильтры в запросе пользователя в структурированный запрос на основе операторов. Для определения цели запроса используются операторы, определенные в схеме и индексированных документах. Это позволяет пользователям искать с минимальным количеством ключевых слов и получать точные результаты.
Представление результатов зависит от уровня достоверности . Достоверность повышается, когда поисковые запросы последовательно встречаются в определенных полях схемы (например, "Том Хэнкс" в поле " actors "). Достоверность снижается, когда строки встречаются в общем тексте. Высокий уровень достоверности отображает только интерпретированные результаты, тогда как низкий уровень достоверности смешивает их со стандартными результатами по ключевым словам.
Example query interpretation
Consider a database containing movie information. Figure 1 shows a sample search query and its interpretation.

В данном примере используется интерпретация запроса:
- Determines from the schema that top-level objects are
objecttype:movies. - Scans documents to identify where "action" occurs. If it primarily appears in a
genrefield, confidence increases that it is a property value for that field.
The resulting interpretation is: actor:"tom hanks" genre:action objecttype:movies
Query interpretation is automatic for all users, but you can optimize it by structuring your schema as described in the following sections.
Structure your schema for query interpretation
Optimizing your schema ensures you benefit from query interpretation.
Включить интерпретацию отображаемых имен
Интерпретация запросов использует objectDefinitions и propertyDefinitions для интерпретации запросов. Создавайте интуитивно понятные отображаемые имена, используя displayLabel для свойств, objectDisplayLabel для объектов и operatorName для операторов.
This example shows intuitive display names for a movie object:
{
"objectDefinitions": [{
"name": "movie",
"options": {
"displayOptions": { "objectDisplayLabel": "Films" }
},
"propertyDefinitions": [{
"name": "genre",
"isReturnable": true,
"textPropertyOptions": {
"operatorOptions": { "operatorName": "genre" }
},
"displayOptions": { "displayLabel": "Category" }
}]
}]
}
These display names enable interpretations like:
- "боевики" ->
genre:action object:movies - "movies with genre action or thriller" ->
objecttype:movies genre:(action OR thriller) - "comedy category movies" ->
genre:comedy objecttype:movies
Включить интерпретацию даты, чисел и сортировки.
Define lessThanOperatorName and greaterThanOperatorName in IntegerOperatorOptions for all date and numerical properties. To enable sorting, set isSortable .
В этом примере доступны следующие опции:
{
"objectDefinitions": [{
"propertyDefinitions": [
{
"name": "runtime",
"isSortable": true,
"integerPropertyOptions": {
"operatorOptions": {
"operatorName": "runtime",
"lessThanOperatorName": "runtimelessthan",
"greaterThanOperatorName": "runtimegreaterthan"
}
}
},
{
"name": "releasedate",
"isSortable": true,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "releasedate",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
}
]
}]
}
Эти настройки позволяют использовать следующие интерпретации:
- "movies released this year" ->
objecttype:movies releasedafter:2019-1-1 releasedbefore:2019-12-31 - "movies with runtime less than 90" ->
objecttype:movies runtimelessthan:90
Включить интерпретацию зарезервированного оператора
Use built-in operators like type , before , after , and objecttype :
- Populate
updateTimeinItemMetadatato usebeforeandafter. - Populate
mimeTypeinItemMetadatafor autodetection. For example, "action videos" lists documents with video MIME types.
Ограничения интерпретации запросов
- Работает только со следующими списками контроля доступа (ACL) для источников данных:
- Общедоступное доменное имя.
- Источник данных — общедоступный.
- Majority of documents share the same inherited ACL.
- Shared operator names (eg,
priorityandseverityboth using 0-3) lower confidence. - By default, interpretation uses lowercase for field values unless you use
exactMatchWithOperator. - Оператор
sourceне поддерживается. - Combined operator and free-text terms (eg, "p0 cases severity:s0") are not interpreted.
- Results are always blended with relevance-ranked results.