NaturalLanguageQueryUnderstandingSpec

Specification to enable natural language understanding capabilities for search requests.

JSON representation
{
  "filterExtractionCondition": enum (FilterExtractionCondition),
  "geoSearchQueryDetectionFieldNames": [
    string
  ],
  "extractedFilterBehavior": enum (ExtractedFilterBehavior),
  "allowedFieldNames": [
    string
  ]
}
Fields
filterExtractionCondition

enum (FilterExtractionCondition)

The condition under which filter extraction should occur. Server behavior defaults to DISABLED.

geoSearchQueryDetectionFieldNames[]

string

Field names used for location-based filtering, where geolocation filters are detected in natural language search queries. Only valid when the FilterExtractionCondition is set to ENABLED.

If this field is set, it overrides the field names set in ServingConfig.geo_search_query_detection_field_names.

extractedFilterBehavior

enum (ExtractedFilterBehavior)

Optional. Controls behavior of how extracted filters are applied to the search. The default behavior depends on the request. For single datastore structured search, the default is HARD_FILTER. For multi-datastore search, the default behavior is SOFT_BOOST. Location-based filters are always applied as hard filters, and the SOFT_BOOST setting will not affect them. This field is only used if [SearchRequest.natural_language_query_understanding_spec.filter_extraction_condition][] is set to FilterExtractionCondition.ENABLED.

allowedFieldNames[]

string

Optional. Allowlist of fields that can be used for natural language filter extraction. By default, if this is unspecified, all indexable fields are eligible for natural language filter extraction (but are not guaranteed to be used). If any fields are specified in allowedFieldNames, only the fields that are both marked as indexable in the schema and specified in the allowlist will be eligible for natural language filter extraction. Note: for multi-datastore search, this is not yet supported, and will be ignored.

FilterExtractionCondition

Enum describing under which condition filter extraction should occur.

Enums
CONDITION_UNSPECIFIED Server behavior defaults to DISABLED.
DISABLED Disables NL filter extraction.
ENABLED Enables NL filter extraction.

ExtractedFilterBehavior

Enum describing how extracted filters are applied to the search.

Enums
EXTRACTED_FILTER_BEHAVIOR_UNSPECIFIED EXTRACTED_FILTER_BEHAVIOR_UNSPECIFIED will use the default behavior for extracted filters. For single datastore search, the default is to apply as hard filters. For multi-datastore search, the default is to apply as soft boosts.
HARD_FILTER Applies all extracted filters as hard filters on the results. Results that do not pass the extracted filters will not be returned in the result set.
SOFT_BOOST Applies all extracted filters as soft boosts. Results that pass the filters will be boosted up to higher ranks in the result set.