diff --git a/DiscoveryEngine/metadata/V1/SearchService.php b/DiscoveryEngine/metadata/V1/SearchService.php
index 5883c3ccf905..f2c9a3d7fa42 100644
--- a/DiscoveryEngine/metadata/V1/SearchService.php
+++ b/DiscoveryEngine/metadata/V1/SearchService.php
@@ -23,7 +23,7 @@ public static function initOnce() {
\GPBMetadata\Google\Cloud\Discoveryengine\V1\Document::initOnce();
\GPBMetadata\Google\Protobuf\Struct::initOnce();
$pool->internalAddGeneratedFile(
- "\x0A\x9Cw\x0A4google/cloud/discoveryengine/v1/search_service.proto\x12\x1Fgoogle.cloud.discoveryengine.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A+google/cloud/discoveryengine/v1/chunk.proto\x1A,google/cloud/discoveryengine/v1/common.proto\x1A.google/cloud/discoveryengine/v1/document.proto\x1A\x1Cgoogle/protobuf/struct.proto\"\xB1;\x0A\x0DSearchRequest\x12L\x0A\x0Eserving_config\x18\x01 \x01(\x09B4\xE0A\x02\xFAA.\x0A,discoveryengine.googleapis.com/ServingConfig\x12:\x0A\x06branch\x18\x02 \x01(\x09B*\xFAA'\x0A%discoveryengine.googleapis.com/Branch\x12\x0D\x0A\x05query\x18\x03 \x01(\x09\x12\x1C\x0A\x0Fpage_categories\x18? \x03(\x09B\x03\xE0A\x01\x12N\x0A\x0Bimage_query\x18\x13 \x01(\x0B29.google.cloud.discoveryengine.v1.SearchRequest.ImageQuery\x12\x11\x0A\x09page_size\x18\x04 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x05 \x01(\x09\x12\x0E\x0A\x06offset\x18\x06 \x01(\x05\x12\x19\x0A\x11one_box_page_size\x18/ \x01(\x05\x12V\x0A\x10data_store_specs\x18 \x03(\x0B2<.google.cloud.discoveryengine.v1.SearchRequest.DataStoreSpec\x12\x0E\x0A\x06filter\x18\x07 \x01(\x09\x12\x18\x0A\x10canonical_filter\x18\x1D \x01(\x09\x12\x10\x0A\x08order_by\x18\x08 \x01(\x09\x12<\x0A\x09user_info\x18\x15 \x01(\x0B2).google.cloud.discoveryengine.v1.UserInfo\x12\x15\x0A\x0Dlanguage_code\x18# \x01(\x09\x12M\x0A\x0Bfacet_specs\x18\x09 \x03(\x0B28.google.cloud.discoveryengine.v1.SearchRequest.FacetSpec\x12L\x0A\x0Aboost_spec\x18\x0A \x01(\x0B28.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec\x12J\x0A\x06params\x18\x0B \x03(\x0B2:.google.cloud.discoveryengine.v1.SearchRequest.ParamsEntry\x12_\x0A\x14query_expansion_spec\x18\x0D \x01(\x0B2A.google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec\x12a\x0A\x15spell_correction_spec\x18\x0E \x01(\x0B2B.google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec\x12\x1B\x0A\x0Euser_pseudo_id\x18\x0F \x01(\x09B\x03\xE0A\x01\x12]\x0A\x13content_search_spec\x18\x18 \x01(\x0B2@.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec\x12\x1F\x0A\x12ranking_expression\x18\x1A \x01(\x09B\x03\xE0A\x01\x12p\x0A\x1Aranking_expression_backend\x185 \x01(\x0E2G.google.cloud.discoveryengine.v1.SearchRequest.RankingExpressionBackendB\x03\xE0A\x01\x12\x13\x0A\x0Bsafe_search\x18\x14 \x01(\x08\x12S\x0A\x0Buser_labels\x18\x16 \x03(\x0B2>.google.cloud.discoveryengine.v1.SearchRequest.UserLabelsEntry\x12\x8C\x01\x0A)natural_language_query_understanding_spec\x18\x1C \x01(\x0B2T.google.cloud.discoveryengine.v1.SearchRequest.NaturalLanguageQueryUnderstandingSpecB\x03\xE0A\x01\x12c\x0A\x17search_as_you_type_spec\x18\x1F \x01(\x0B2B.google.cloud.discoveryengine.v1.SearchRequest.SearchAsYouTypeSpec\x12U\x0A\x0Cdisplay_spec\x18& \x01(\x0B2:.google.cloud.discoveryengine.v1.SearchRequest.DisplaySpecB\x03\xE0A\x01\x12X\x0A\x0Ecrowding_specs\x18( \x03(\x0B2;.google.cloud.discoveryengine.v1.SearchRequest.CrowdingSpecB\x03\xE0A\x01\x12<\x0A\x07session\x18) \x01(\x09B+\xFAA(\x0A&discoveryengine.googleapis.com/Session\x12P\x0A\x0Csession_spec\x18* \x01(\x0B2:.google.cloud.discoveryengine.v1.SearchRequest.SessionSpec\x12^\x0A\x13relevance_threshold\x18, \x01(\x0E2A.google.cloud.discoveryengine.v1.SearchRequest.RelevanceThreshold\x12d\x0A\x14relevance_score_spec\x184 \x01(\x0B2A.google.cloud.discoveryengine.v1.SearchRequest.RelevanceScoreSpecB\x03\xE0A\x01\x1A,\x0A\x0AImageQuery\x12\x15\x0A\x0Bimage_bytes\x18\x01 \x01(\x09H\x00B\x07\x0A\x05image\x1A\xE3\x01\x0A\x0DDataStoreSpec\x12D\x0A\x0Adata_store\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(discoveryengine.googleapis.com/DataStore\x12\x13\x0A\x06filter\x18\x05 \x01(\x09B\x03\xE0A\x01\x12Q\x0A\x0Aboost_spec\x18\x06 \x01(\x0B28.google.cloud.discoveryengine.v1.SearchRequest.BoostSpecB\x03\xE0A\x01\x12\$\x0A\x17custom_search_operators\x18\x07 \x01(\x09B\x03\xE0A\x01\x1A\xFC\x02\x0A\x09FacetSpec\x12Y\x0A\x09facet_key\x18\x01 \x01(\x0B2A.google.cloud.discoveryengine.v1.SearchRequest.FacetSpec.FacetKeyB\x03\xE0A\x02\x12\x0D\x0A\x05limit\x18\x02 \x01(\x05\x12\x1C\x0A\x14excluded_filter_keys\x18\x03 \x03(\x09\x12\x1F\x0A\x17enable_dynamic_position\x18\x04 \x01(\x08\x1A\xC5\x01\x0A\x08FacetKey\x12\x10\x0A\x03key\x18\x01 \x01(\x09B\x03\xE0A\x02\x12<\x0A\x09intervals\x18\x02 \x03(\x0B2).google.cloud.discoveryengine.v1.Interval\x12\x19\x0A\x11restricted_values\x18\x03 \x03(\x09\x12\x10\x0A\x08prefixes\x18\x04 \x03(\x09\x12\x10\x0A\x08contains\x18\x05 \x03(\x09\x12\x18\x0A\x10case_insensitive\x18\x06 \x01(\x08\x12\x10\x0A\x08order_by\x18\x07 \x01(\x09\x1A\xBC\x07\x0A\x09BoostSpec\x12j\x0A\x15condition_boost_specs\x18\x01 \x03(\x0B2K.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec\x1A\xC2\x06\x0A\x12ConditionBoostSpec\x12\x11\x0A\x09condition\x18\x01 \x01(\x09\x12\x0D\x0A\x05boost\x18\x02 \x01(\x02\x12x\x0A\x12boost_control_spec\x18\x03 \x01(\x0B2\\.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec\x1A\x8F\x05\x0A\x10BoostControlSpec\x12\x12\x0A\x0Afield_name\x18\x01 \x01(\x09\x12\x82\x01\x0A\x0Eattribute_type\x18\x02 \x01(\x0E2j.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType\x12\x8A\x01\x0A\x12interpolation_type\x18\x03 \x01(\x0E2n.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType\x12\x81\x01\x0A\x0Econtrol_points\x18\x04 \x03(\x0B2i.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint\x1A=\x0A\x0CControlPoint\x12\x17\x0A\x0Fattribute_value\x18\x01 \x01(\x09\x12\x14\x0A\x0Cboost_amount\x18\x02 \x01(\x02\"M\x0A\x0DAttributeType\x12\x1E\x0A\x1AATTRIBUTE_TYPE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09NUMERICAL\x10\x01\x12\x0D\x0A\x09FRESHNESS\x10\x02\"C\x0A\x11InterpolationType\x12\"\x0A\x1EINTERPOLATION_TYPE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06LINEAR\x10\x01\x1A\xD4\x01\x0A\x12QueryExpansionSpec\x12^\x0A\x09condition\x18\x01 \x01(\x0E2K.google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec.Condition\x12\x1E\x0A\x16pin_unexpanded_results\x18\x02 \x01(\x08\">\x0A\x09Condition\x12\x19\x0A\x15CONDITION_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08DISABLED\x10\x01\x12\x08\x0A\x04AUTO\x10\x02\x1A\xA9\x01\x0A\x13SpellCorrectionSpec\x12U\x0A\x04mode\x18\x01 \x01(\x0E2G.google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec.Mode\";\x0A\x04Mode\x12\x14\x0A\x10MODE_UNSPECIFIED\x10\x00\x12\x13\x0A\x0FSUGGESTION_ONLY\x10\x01\x12\x08\x0A\x04AUTO\x10\x02\x1A\xA2\x0C\x0A\x11ContentSearchSpec\x12b\x0A\x0Csnippet_spec\x18\x01 \x01(\x0B2L.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SnippetSpec\x12b\x0A\x0Csummary_spec\x18\x02 \x01(\x0B2L.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec\x12w\x0A\x17extractive_content_spec\x18\x03 \x01(\x0B2V.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.ExtractiveContentSpec\x12m\x0A\x12search_result_mode\x18\x04 \x01(\x0E2Q.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SearchResultMode\x12^\x0A\x0Achunk_spec\x18\x05 \x01(\x0B2J.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.ChunkSpec\x1A`\x0A\x0BSnippetSpec\x12\x1D\x0A\x11max_snippet_count\x18\x01 \x01(\x05B\x02\x18\x01\x12\x1A\x0A\x0Ereference_only\x18\x02 \x01(\x08B\x02\x18\x01\x12\x16\x0A\x0Ereturn_snippet\x18\x03 \x01(\x08\x1A\xBC\x04\x0A\x0BSummarySpec\x12\x1C\x0A\x14summary_result_count\x18\x01 \x01(\x05\x12\x19\x0A\x11include_citations\x18\x02 \x01(\x08\x12 \x0A\x18ignore_adversarial_query\x18\x03 \x01(\x08\x12(\x0A ignore_non_summary_seeking_query\x18\x04 \x01(\x08\x12#\x0A\x1Bignore_low_relevant_content\x18\x09 \x01(\x08\x12'\x0A\x1Aignore_jail_breaking_query\x18\x0A \x01(\x08B\x03\xE0A\x01\x12w\x0A\x11model_prompt_spec\x18\x05 \x01(\x0B2\\.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec\x12\x15\x0A\x0Dlanguage_code\x18\x06 \x01(\x09\x12j\x0A\x0Amodel_spec\x18\x07 \x01(\x0B2V.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec\x12\x1B\x0A\x13use_semantic_chunks\x18\x08 \x01(\x08\x1A#\x0A\x0FModelPromptSpec\x12\x10\x0A\x08preamble\x18\x01 \x01(\x09\x1A\x1C\x0A\x09ModelSpec\x12\x0F\x0A\x07version\x18\x01 \x01(\x09\x1A\xC5\x01\x0A\x15ExtractiveContentSpec\x12#\x0A\x1Bmax_extractive_answer_count\x18\x01 \x01(\x05\x12\$\x0A\x1Cmax_extractive_segment_count\x18\x02 \x01(\x05\x12'\x0A\x1Freturn_extractive_segment_score\x18\x03 \x01(\x08\x12\x1D\x0A\x15num_previous_segments\x18\x04 \x01(\x05\x12\x19\x0A\x11num_next_segments\x18\x05 \x01(\x05\x1AA\x0A\x09ChunkSpec\x12\x1B\x0A\x13num_previous_chunks\x18\x01 \x01(\x05\x12\x17\x0A\x0Fnum_next_chunks\x18\x02 \x01(\x05\"Q\x0A\x10SearchResultMode\x12\"\x0A\x1ESEARCH_RESULT_MODE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09DOCUMENTS\x10\x01\x12\x0A\x0A\x06CHUNKS\x10\x02\x1A\xE0\x04\x0A%NaturalLanguageQueryUnderstandingSpec\x12\x93\x01\x0A\x1Bfilter_extraction_condition\x18\x01 \x01(\x0E2n.google.cloud.discoveryengine.v1.SearchRequest.NaturalLanguageQueryUnderstandingSpec.FilterExtractionCondition\x12.\x0A&geo_search_query_detection_field_names\x18\x02 \x03(\x09\x12\x94\x01\x0A\x19extracted_filter_behavior\x18\x03 \x01(\x0E2l.google.cloud.discoveryengine.v1.SearchRequest.NaturalLanguageQueryUnderstandingSpec.ExtractedFilterBehaviorB\x03\xE0A\x01\x12 \x0A\x13allowed_field_names\x18\x04 \x03(\x09B\x03\xE0A\x01\"Q\x0A\x19FilterExtractionCondition\x12\x19\x0A\x15CONDITION_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08DISABLED\x10\x01\x12\x0B\x0A\x07ENABLED\x10\x02\"e\x0A\x17ExtractedFilterBehavior\x12)\x0A%EXTRACTED_FILTER_BEHAVIOR_UNSPECIFIED\x10\x00\x12\x0F\x0A\x0BHARD_FILTER\x10\x01\x12\x0E\x0A\x0ASOFT_BOOST\x10\x02\x1A\xC3\x01\x0A\x13SearchAsYouTypeSpec\x12_\x0A\x09condition\x18\x01 \x01(\x0E2L.google.cloud.discoveryengine.v1.SearchRequest.SearchAsYouTypeSpec.Condition\"K\x0A\x09Condition\x12\x19\x0A\x15CONDITION_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08DISABLED\x10\x01\x12\x0B\x0A\x07ENABLED\x10\x02\x12\x08\x0A\x04AUTO\x10\x03\x1A\x98\x02\x0A\x0BDisplaySpec\x12{\x0A\x1Cmatch_highlighting_condition\x18\x01 \x01(\x0E2U.google.cloud.discoveryengine.v1.SearchRequest.DisplaySpec.MatchHighlightingCondition\"\x8B\x01\x0A\x1AMatchHighlightingCondition\x12,\x0A(MATCH_HIGHLIGHTING_CONDITION_UNSPECIFIED\x10\x00\x12\x1F\x0A\x1BMATCH_HIGHLIGHTING_DISABLED\x10\x01\x12\x1E\x0A\x1AMATCH_HIGHLIGHTING_ENABLED\x10\x02\x1A\xDB\x01\x0A\x0CCrowdingSpec\x12\x0D\x0A\x05field\x18\x01 \x01(\x09\x12\x11\x0A\x09max_count\x18\x02 \x01(\x05\x12N\x0A\x04mode\x18\x03 \x01(\x0E2@.google.cloud.discoveryengine.v1.SearchRequest.CrowdingSpec.Mode\"Y\x0A\x04Mode\x12\x14\x0A\x10MODE_UNSPECIFIED\x10\x00\x12\x18\x0A\x14DROP_CROWDED_RESULTS\x10\x01\x12!\x0A\x1DDEMOTE_CROWDED_RESULTS_TO_END\x10\x02\x1Aq\x0A\x0BSessionSpec\x12\x10\x0A\x08query_id\x18\x01 \x01(\x09\x12,\x0A\x1Fsearch_result_persistence_count\x18\x02 \x01(\x05H\x00\x88\x01\x01B\"\x0A _search_result_persistence_count\x1A9\x0A\x12RelevanceScoreSpec\x12#\x0A\x16return_relevance_score\x18\x01 \x01(\x08B\x03\xE0A\x01\x1AE\x0A\x0BParamsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12%\x0A\x05value\x18\x02 \x01(\x0B2\x16.google.protobuf.Value:\x028\x01\x1A1\x0A\x0FUserLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"\x92\x01\x0A\x18RankingExpressionBackend\x12*\x0A&RANKING_EXPRESSION_BACKEND_UNSPECIFIED\x10\x00\x12\x0C\x0A\x04BYOE\x10\x01\x1A\x02\x08\x01\x12\x10\x0A\x08CLEARBOX\x10\x02\x1A\x02\x08\x01\x12\x15\x0A\x11RANK_BY_EMBEDDING\x10\x03\x12\x13\x0A\x0FRANK_BY_FORMULA\x10\x04\"d\x0A\x12RelevanceThreshold\x12#\x0A\x1FRELEVANCE_THRESHOLD_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06LOWEST\x10\x01\x12\x07\x0A\x03LOW\x10\x02\x12\x0A\x0A\x06MEDIUM\x10\x03\x12\x08\x0A\x04HIGH\x10\x04\"\xE6/\x0A\x0ESearchResponse\x12M\x0A\x07results\x18\x01 \x03(\x0B2<.google.cloud.discoveryengine.v1.SearchResponse.SearchResult\x12E\x0A\x06facets\x18\x02 \x03(\x0B25.google.cloud.discoveryengine.v1.SearchResponse.Facet\x12\x12\x0A\x0Atotal_size\x18\x03 \x01(\x05\x12\x19\x0A\x11attribution_token\x18\x04 \x01(\x09\x12\x14\x0A\x0Credirect_uri\x18\x0C \x01(\x09\x12\x17\x0A\x0Fnext_page_token\x18\x05 \x01(\x09\x12\x17\x0A\x0Fcorrected_query\x18\x07 \x01(\x09\x12H\x0A\x07summary\x18\x09 \x01(\x0B27.google.cloud.discoveryengine.v1.SearchResponse.Summary\x12`\x0A\x14query_expansion_info\x18\x0E \x01(\x0B2B.google.cloud.discoveryengine.v1.SearchResponse.QueryExpansionInfo\x12\x8D\x01\x0A)natural_language_query_understanding_info\x18\x0F \x01(\x0B2U.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfoB\x03\xE0A\x03\x12Q\x0A\x0Csession_info\x18\x13 \x01(\x0B2;.google.cloud.discoveryengine.v1.SearchResponse.SessionInfo\x12T\x0A\x16search_link_promotions\x18\x17 \x03(\x0B24.google.cloud.discoveryengine.v1.SearchLinkPromotion\x12Z\x0A\x0Esemantic_state\x18\$ \x01(\x0E2=.google.cloud.discoveryengine.v1.SearchResponse.SemanticStateB\x03\xE0A\x03\x1A\xA9\x08\x0A\x0CSearchResult\x12\x0A\x0A\x02id\x18\x01 \x01(\x09\x12;\x0A\x08document\x18\x02 \x01(\x0B2).google.cloud.discoveryengine.v1.Document\x125\x0A\x05chunk\x18\x12 \x01(\x0B2&.google.cloud.discoveryengine.v1.Chunk\x12h\x0A\x0Cmodel_scores\x18\x04 \x03(\x0B2M.google.cloud.discoveryengine.v1.SearchResponse.SearchResult.ModelScoresEntryB\x03\xE0A\x03\x12c\x0A\x0Crank_signals\x18\x07 \x01(\x0B2H.google.cloud.discoveryengine.v1.SearchResponse.SearchResult.RankSignalsB\x03\xE0A\x01\x1A\xE8\x04\x0A\x0BRankSignals\x12*\x0A\x18keyword_similarity_score\x18\x01 \x01(\x02B\x03\xE0A\x01H\x00\x88\x01\x01\x12!\x0A\x0Frelevance_score\x18\x02 \x01(\x02B\x03\xE0A\x01H\x01\x88\x01\x01\x12+\x0A\x19semantic_similarity_score\x18\x03 \x01(\x02B\x03\xE0A\x01H\x02\x88\x01\x01\x12\x1B\x0A\x09pctr_rank\x18\x04 \x01(\x02B\x03\xE0A\x01H\x03\x88\x01\x01\x12!\x0A\x0Ftopicality_rank\x18\x06 \x01(\x02B\x03\xE0A\x01H\x04\x88\x01\x01\x12\x1E\x0A\x0Cdocument_age\x18\x07 \x01(\x02B\x03\xE0A\x01H\x05\x88\x01\x01\x12!\x0A\x0Fboosting_factor\x18\x08 \x01(\x02B\x03\xE0A\x01H\x06\x88\x01\x01\x12\x19\x0A\x0Cdefault_rank\x18 \x01(\x02B\x03\xE0A\x01\x12r\x0A\x0Ecustom_signals\x18! \x03(\x0B2U.google.cloud.discoveryengine.v1.SearchResponse.SearchResult.RankSignals.CustomSignalB\x03\xE0A\x01\x1A5\x0A\x0CCustomSignal\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x12\x0A\x05value\x18\x02 \x01(\x02B\x03\xE0A\x01B\x1B\x0A\x19_keyword_similarity_scoreB\x12\x0A\x10_relevance_scoreB\x1C\x0A\x1A_semantic_similarity_scoreB\x0C\x0A\x0A_pctr_rankB\x12\x0A\x10_topicality_rankB\x0F\x0A\x0D_document_ageB\x12\x0A\x10_boosting_factor\x1A_\x0A\x10ModelScoresEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12:\x0A\x05value\x18\x02 \x01(\x0B2+.google.cloud.discoveryengine.v1.DoubleList:\x028\x01\x1A\xF9\x01\x0A\x05Facet\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12P\x0A\x06values\x18\x02 \x03(\x0B2@.google.cloud.discoveryengine.v1.SearchResponse.Facet.FacetValue\x12\x15\x0A\x0Ddynamic_facet\x18\x03 \x01(\x08\x1Az\x0A\x0AFacetValue\x12\x0F\x0A\x05value\x18\x01 \x01(\x09H\x00\x12=\x0A\x08interval\x18\x02 \x01(\x0B2).google.cloud.discoveryengine.v1.IntervalH\x00\x12\x0D\x0A\x05count\x18\x03 \x01(\x03B\x0D\x0A\x0Bfacet_value\x1A\xA1\x0C\x0A\x07Summary\x12\x14\x0A\x0Csummary_text\x18\x01 \x01(\x09\x12m\x0A\x17summary_skipped_reasons\x18\x02 \x03(\x0E2L.google.cloud.discoveryengine.v1.SearchResponse.Summary.SummarySkippedReason\x12c\x0A\x11safety_attributes\x18\x03 \x01(\x0B2H.google.cloud.discoveryengine.v1.SearchResponse.Summary.SafetyAttributes\x12j\x0A\x15summary_with_metadata\x18\x04 \x01(\x0B2K.google.cloud.discoveryengine.v1.SearchResponse.Summary.SummaryWithMetadata\x1A6\x0A\x10SafetyAttributes\x12\x12\x0A\x0Acategories\x18\x01 \x03(\x09\x12\x0E\x0A\x06scores\x18\x02 \x03(\x02\x1Ag\x0A\x10CitationMetadata\x12S\x0A\x09citations\x18\x01 \x03(\x0B2@.google.cloud.discoveryengine.v1.SearchResponse.Summary.Citation\x1A\x8B\x01\x0A\x08Citation\x12\x13\x0A\x0Bstart_index\x18\x01 \x01(\x03\x12\x11\x0A\x09end_index\x18\x02 \x01(\x03\x12W\x0A\x07sources\x18\x03 \x03(\x0B2F.google.cloud.discoveryengine.v1.SearchResponse.Summary.CitationSource\x1A)\x0A\x0ECitationSource\x12\x17\x0A\x0Freference_index\x18\x04 \x01(\x03\x1A\x8C\x02\x0A\x09Reference\x12\x0D\x0A\x05title\x18\x01 \x01(\x09\x12A\x0A\x08document\x18\x02 \x01(\x09B/\xE0A\x02\xFAA)\x0A'discoveryengine.googleapis.com/Document\x12\x0B\x0A\x03uri\x18\x03 \x01(\x09\x12f\x0A\x0Echunk_contents\x18\x04 \x03(\x0B2N.google.cloud.discoveryengine.v1.SearchResponse.Summary.Reference.ChunkContent\x1A8\x0A\x0CChunkContent\x12\x0F\x0A\x07content\x18\x01 \x01(\x09\x12\x17\x0A\x0Fpage_identifier\x18\x02 \x01(\x09\x1A\xE2\x01\x0A\x13SummaryWithMetadata\x12\x0F\x0A\x07summary\x18\x01 \x01(\x09\x12c\x0A\x11citation_metadata\x18\x02 \x01(\x0B2H.google.cloud.discoveryengine.v1.SearchResponse.Summary.CitationMetadata\x12U\x0A\x0Areferences\x18\x03 \x03(\x0B2A.google.cloud.discoveryengine.v1.SearchResponse.Summary.Reference\"\xF1\x02\x0A\x14SummarySkippedReason\x12&\x0A\"SUMMARY_SKIPPED_REASON_UNSPECIFIED\x10\x00\x12\x1D\x0A\x19ADVERSARIAL_QUERY_IGNORED\x10\x01\x12%\x0A!NON_SUMMARY_SEEKING_QUERY_IGNORED\x10\x02\x12\x1F\x0A\x1BOUT_OF_DOMAIN_QUERY_IGNORED\x10\x03\x12\x1E\x0A\x1APOTENTIAL_POLICY_VIOLATION\x10\x04\x12\x19\x0A\x15LLM_ADDON_NOT_ENABLED\x10\x05\x12\x17\x0A\x13NO_RELEVANT_CONTENT\x10\x06\x12\x1F\x0A\x1BJAIL_BREAKING_QUERY_IGNORED\x10\x07\x12\x1D\x0A\x19CUSTOMER_POLICY_VIOLATION\x10\x08\x12(\x0A\$NON_SUMMARY_SEEKING_QUERY_IGNORED_V2\x10\x09\x12\x0C\x0A\x08TIME_OUT\x10\x0A\x1AI\x0A\x12QueryExpansionInfo\x12\x16\x0A\x0Eexpanded_query\x18\x01 \x01(\x08\x12\x1B\x0A\x13pinned_result_count\x18\x02 \x01(\x03\x1A\xF3\x10\x0A%NaturalLanguageQueryUnderstandingInfo\x12\x19\x0A\x11extracted_filters\x18\x01 \x01(\x09\x12\x17\x0A\x0Frewritten_query\x18\x02 \x01(\x09\x12\x1A\x0A\x12classified_intents\x18\x05 \x03(\x09\x12\x94\x01\x0A\x1Bstructured_extracted_filter\x18\x03 \x01(\x0B2o.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter\x1A\xE2\x0E\x0A\x19StructuredExtractedFilter\x12\x8E\x01\x0A\x0Aexpression\x18\x01 \x01(\x0B2z.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.Expression\x1AM\x0A\x10StringConstraint\x12\x12\x0A\x0Afield_name\x18\x01 \x01(\x09\x12\x0E\x0A\x06values\x18\x02 \x03(\x09\x12\x15\x0A\x0Dquery_segment\x18\x03 \x01(\x09\x1A\xF6\x02\x0A\x10NumberConstraint\x12\x12\x0A\x0Afield_name\x18\x01 \x01(\x09\x12\xA0\x01\x0A\x0Acomparison\x18\x02 \x01(\x0E2\x8B\x01.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.NumberConstraint.Comparison\x12\x0D\x0A\x05value\x18\x03 \x01(\x01\x12\x15\x0A\x0Dquery_segment\x18\x04 \x01(\x09\"\x84\x01\x0A\x0AComparison\x12\x1A\x0A\x16COMPARISON_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06EQUALS\x10\x01\x12\x14\x0A\x10LESS_THAN_EQUALS\x10\x02\x12\x0D\x0A\x09LESS_THAN\x10\x03\x12\x17\x0A\x13GREATER_THAN_EQUALS\x10\x04\x12\x10\x0A\x0CGREATER_THAN\x10\x05\x1A{\x0A\x15GeolocationConstraint\x12\x12\x0A\x0Afield_name\x18\x01 \x01(\x09\x12\x0F\x0A\x07address\x18\x02 \x01(\x09\x12\x10\x0A\x08latitude\x18\x04 \x01(\x01\x12\x11\x0A\x09longitude\x18\x05 \x01(\x01\x12\x18\x0A\x10radius_in_meters\x18\x03 \x01(\x02\x1A\xA1\x01\x0A\x0DAndExpression\x12\x8F\x01\x0A\x0Bexpressions\x18\x01 \x03(\x0B2z.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.Expression\x1A\xA0\x01\x0A\x0COrExpression\x12\x8F\x01\x0A\x0Bexpressions\x18\x01 \x03(\x0B2z.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.Expression\x1A\xA7\x06\x0A\x0AExpression\x12\x9E\x01\x0A\x11string_constraint\x18\x01 \x01(\x0B2\x80\x01.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.StringConstraintH\x00\x12\x9E\x01\x0A\x11number_constraint\x18\x02 \x01(\x0B2\x80\x01.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.NumberConstraintH\x00\x12\xA8\x01\x0A\x16geolocation_constraint\x18\x03 \x01(\x0B2\x85\x01.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.GeolocationConstraintH\x00\x12\x91\x01\x0A\x08and_expr\x18\x04 \x01(\x0B2}.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.AndExpressionH\x00\x12\x8F\x01\x0A\x07or_expr\x18\x05 \x01(\x0B2|.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.OrExpressionH\x00B\x06\x0A\x04expr\x1A-\x0A\x0BSessionInfo\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x10\x0A\x08query_id\x18\x02 \x01(\x09\"J\x0A\x0DSemanticState\x12\x1E\x0A\x1ASEMANTIC_STATE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08DISABLED\x10\x01\x12\x0B\x0A\x07ENABLED\x10\x022\x97\x07\x0A\x0DSearchService\x12\x8F\x03\x0A\x06Search\x12..google.cloud.discoveryengine.v1.SearchRequest\x1A/.google.cloud.discoveryengine.v1.SearchResponse\"\xA3\x02\x82\xD3\xE4\x93\x02\x9C\x02\"P/v1/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:search:\x01*Zc\"^/v1/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:search:\x01*Z`\"[/v1/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:search:\x01*\x12\x9F\x03\x0A\x0ASearchLite\x12..google.cloud.discoveryengine.v1.SearchRequest\x1A/.google.cloud.discoveryengine.v1.SearchResponse\"\xAF\x02\x82\xD3\xE4\x93\x02\xA8\x02\"T/v1/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:searchLite:\x01*Zg\"b/v1/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:searchLite:\x01*Zd\"_/v1/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:searchLite:\x01*\x1AR\xCAA\x1Ediscoveryengine.googleapis.com\xD2A.https://www.googleapis.com/auth/cloud-platformB\x85\x02\x0A#com.google.cloud.discoveryengine.v1B\x12SearchServiceProtoP\x01ZMcloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb\xA2\x02\x0FDISCOVERYENGINE\xAA\x02\x1FGoogle.Cloud.DiscoveryEngine.V1\xCA\x02\x1FGoogle\\Cloud\\DiscoveryEngine\\V1\xEA\x02\"Google::Cloud::DiscoveryEngine::V1b\x06proto3"
+ "\x0A\xE4{\x0A4google/cloud/discoveryengine/v1/search_service.proto\x12\x1Fgoogle.cloud.discoveryengine.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A+google/cloud/discoveryengine/v1/chunk.proto\x1A,google/cloud/discoveryengine/v1/common.proto\x1A.google/cloud/discoveryengine/v1/document.proto\x1A\x1Cgoogle/protobuf/struct.proto\"\xF9?\x0A\x0DSearchRequest\x12L\x0A\x0Eserving_config\x18\x01 \x01(\x09B4\xE0A\x02\xFAA.\x0A,discoveryengine.googleapis.com/ServingConfig\x12:\x0A\x06branch\x18\x02 \x01(\x09B*\xFAA'\x0A%discoveryengine.googleapis.com/Branch\x12\x0D\x0A\x05query\x18\x03 \x01(\x09\x12\x1C\x0A\x0Fpage_categories\x18? \x03(\x09B\x03\xE0A\x01\x12N\x0A\x0Bimage_query\x18\x13 \x01(\x0B29.google.cloud.discoveryengine.v1.SearchRequest.ImageQuery\x12\x11\x0A\x09page_size\x18\x04 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x05 \x01(\x09\x12\x0E\x0A\x06offset\x18\x06 \x01(\x05\x12\x19\x0A\x11one_box_page_size\x18/ \x01(\x05\x12V\x0A\x10data_store_specs\x18 \x03(\x0B2<.google.cloud.discoveryengine.v1.SearchRequest.DataStoreSpec\x12\x0E\x0A\x06filter\x18\x07 \x01(\x09\x12\x18\x0A\x10canonical_filter\x18\x1D \x01(\x09\x12\x10\x0A\x08order_by\x18\x08 \x01(\x09\x12<\x0A\x09user_info\x18\x15 \x01(\x0B2).google.cloud.discoveryengine.v1.UserInfo\x12\x15\x0A\x0Dlanguage_code\x18# \x01(\x09\x12M\x0A\x0Bfacet_specs\x18\x09 \x03(\x0B28.google.cloud.discoveryengine.v1.SearchRequest.FacetSpec\x12L\x0A\x0Aboost_spec\x18\x0A \x01(\x0B28.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec\x12J\x0A\x06params\x18\x0B \x03(\x0B2:.google.cloud.discoveryengine.v1.SearchRequest.ParamsEntry\x12_\x0A\x14query_expansion_spec\x18\x0D \x01(\x0B2A.google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec\x12a\x0A\x15spell_correction_spec\x18\x0E \x01(\x0B2B.google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec\x12\x1B\x0A\x0Euser_pseudo_id\x18\x0F \x01(\x09B\x03\xE0A\x01\x12]\x0A\x13content_search_spec\x18\x18 \x01(\x0B2@.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec\x12\x1F\x0A\x12ranking_expression\x18\x1A \x01(\x09B\x03\xE0A\x01\x12p\x0A\x1Aranking_expression_backend\x185 \x01(\x0E2G.google.cloud.discoveryengine.v1.SearchRequest.RankingExpressionBackendB\x03\xE0A\x01\x12\x13\x0A\x0Bsafe_search\x18\x14 \x01(\x08\x12S\x0A\x0Buser_labels\x18\x16 \x03(\x0B2>.google.cloud.discoveryengine.v1.SearchRequest.UserLabelsEntry\x12\x8C\x01\x0A)natural_language_query_understanding_spec\x18\x1C \x01(\x0B2T.google.cloud.discoveryengine.v1.SearchRequest.NaturalLanguageQueryUnderstandingSpecB\x03\xE0A\x01\x12c\x0A\x17search_as_you_type_spec\x18\x1F \x01(\x0B2B.google.cloud.discoveryengine.v1.SearchRequest.SearchAsYouTypeSpec\x12U\x0A\x0Cdisplay_spec\x18& \x01(\x0B2:.google.cloud.discoveryengine.v1.SearchRequest.DisplaySpecB\x03\xE0A\x01\x12X\x0A\x0Ecrowding_specs\x18( \x03(\x0B2;.google.cloud.discoveryengine.v1.SearchRequest.CrowdingSpecB\x03\xE0A\x01\x12<\x0A\x07session\x18) \x01(\x09B+\xFAA(\x0A&discoveryengine.googleapis.com/Session\x12P\x0A\x0Csession_spec\x18* \x01(\x0B2:.google.cloud.discoveryengine.v1.SearchRequest.SessionSpec\x12^\x0A\x13relevance_threshold\x18, \x01(\x0E2A.google.cloud.discoveryengine.v1.SearchRequest.RelevanceThreshold\x12f\x0A\x15relevance_filter_spec\x18V \x01(\x0B2B.google.cloud.discoveryengine.v1.SearchRequest.RelevanceFilterSpecB\x03\xE0A\x01\x12d\x0A\x14relevance_score_spec\x184 \x01(\x0B2A.google.cloud.discoveryengine.v1.SearchRequest.RelevanceScoreSpecB\x03\xE0A\x01\x1A,\x0A\x0AImageQuery\x12\x15\x0A\x0Bimage_bytes\x18\x01 \x01(\x09H\x00B\x07\x0A\x05image\x1A\xE3\x01\x0A\x0DDataStoreSpec\x12D\x0A\x0Adata_store\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(discoveryengine.googleapis.com/DataStore\x12\x13\x0A\x06filter\x18\x05 \x01(\x09B\x03\xE0A\x01\x12Q\x0A\x0Aboost_spec\x18\x06 \x01(\x0B28.google.cloud.discoveryengine.v1.SearchRequest.BoostSpecB\x03\xE0A\x01\x12\$\x0A\x17custom_search_operators\x18\x07 \x01(\x09B\x03\xE0A\x01\x1A\xFC\x02\x0A\x09FacetSpec\x12Y\x0A\x09facet_key\x18\x01 \x01(\x0B2A.google.cloud.discoveryengine.v1.SearchRequest.FacetSpec.FacetKeyB\x03\xE0A\x02\x12\x0D\x0A\x05limit\x18\x02 \x01(\x05\x12\x1C\x0A\x14excluded_filter_keys\x18\x03 \x03(\x09\x12\x1F\x0A\x17enable_dynamic_position\x18\x04 \x01(\x08\x1A\xC5\x01\x0A\x08FacetKey\x12\x10\x0A\x03key\x18\x01 \x01(\x09B\x03\xE0A\x02\x12<\x0A\x09intervals\x18\x02 \x03(\x0B2).google.cloud.discoveryengine.v1.Interval\x12\x19\x0A\x11restricted_values\x18\x03 \x03(\x09\x12\x10\x0A\x08prefixes\x18\x04 \x03(\x09\x12\x10\x0A\x08contains\x18\x05 \x03(\x09\x12\x18\x0A\x10case_insensitive\x18\x06 \x01(\x08\x12\x10\x0A\x08order_by\x18\x07 \x01(\x09\x1A\xBC\x07\x0A\x09BoostSpec\x12j\x0A\x15condition_boost_specs\x18\x01 \x03(\x0B2K.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec\x1A\xC2\x06\x0A\x12ConditionBoostSpec\x12\x11\x0A\x09condition\x18\x01 \x01(\x09\x12\x0D\x0A\x05boost\x18\x02 \x01(\x02\x12x\x0A\x12boost_control_spec\x18\x03 \x01(\x0B2\\.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec\x1A\x8F\x05\x0A\x10BoostControlSpec\x12\x12\x0A\x0Afield_name\x18\x01 \x01(\x09\x12\x82\x01\x0A\x0Eattribute_type\x18\x02 \x01(\x0E2j.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType\x12\x8A\x01\x0A\x12interpolation_type\x18\x03 \x01(\x0E2n.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType\x12\x81\x01\x0A\x0Econtrol_points\x18\x04 \x03(\x0B2i.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint\x1A=\x0A\x0CControlPoint\x12\x17\x0A\x0Fattribute_value\x18\x01 \x01(\x09\x12\x14\x0A\x0Cboost_amount\x18\x02 \x01(\x02\"M\x0A\x0DAttributeType\x12\x1E\x0A\x1AATTRIBUTE_TYPE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09NUMERICAL\x10\x01\x12\x0D\x0A\x09FRESHNESS\x10\x02\"C\x0A\x11InterpolationType\x12\"\x0A\x1EINTERPOLATION_TYPE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06LINEAR\x10\x01\x1A\xD4\x01\x0A\x12QueryExpansionSpec\x12^\x0A\x09condition\x18\x01 \x01(\x0E2K.google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec.Condition\x12\x1E\x0A\x16pin_unexpanded_results\x18\x02 \x01(\x08\">\x0A\x09Condition\x12\x19\x0A\x15CONDITION_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08DISABLED\x10\x01\x12\x08\x0A\x04AUTO\x10\x02\x1A\xA9\x01\x0A\x13SpellCorrectionSpec\x12U\x0A\x04mode\x18\x01 \x01(\x0E2G.google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec.Mode\";\x0A\x04Mode\x12\x14\x0A\x10MODE_UNSPECIFIED\x10\x00\x12\x13\x0A\x0FSUGGESTION_ONLY\x10\x01\x12\x08\x0A\x04AUTO\x10\x02\x1A\xA2\x0C\x0A\x11ContentSearchSpec\x12b\x0A\x0Csnippet_spec\x18\x01 \x01(\x0B2L.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SnippetSpec\x12b\x0A\x0Csummary_spec\x18\x02 \x01(\x0B2L.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec\x12w\x0A\x17extractive_content_spec\x18\x03 \x01(\x0B2V.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.ExtractiveContentSpec\x12m\x0A\x12search_result_mode\x18\x04 \x01(\x0E2Q.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SearchResultMode\x12^\x0A\x0Achunk_spec\x18\x05 \x01(\x0B2J.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.ChunkSpec\x1A`\x0A\x0BSnippetSpec\x12\x1D\x0A\x11max_snippet_count\x18\x01 \x01(\x05B\x02\x18\x01\x12\x1A\x0A\x0Ereference_only\x18\x02 \x01(\x08B\x02\x18\x01\x12\x16\x0A\x0Ereturn_snippet\x18\x03 \x01(\x08\x1A\xBC\x04\x0A\x0BSummarySpec\x12\x1C\x0A\x14summary_result_count\x18\x01 \x01(\x05\x12\x19\x0A\x11include_citations\x18\x02 \x01(\x08\x12 \x0A\x18ignore_adversarial_query\x18\x03 \x01(\x08\x12(\x0A ignore_non_summary_seeking_query\x18\x04 \x01(\x08\x12#\x0A\x1Bignore_low_relevant_content\x18\x09 \x01(\x08\x12'\x0A\x1Aignore_jail_breaking_query\x18\x0A \x01(\x08B\x03\xE0A\x01\x12w\x0A\x11model_prompt_spec\x18\x05 \x01(\x0B2\\.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec\x12\x15\x0A\x0Dlanguage_code\x18\x06 \x01(\x09\x12j\x0A\x0Amodel_spec\x18\x07 \x01(\x0B2V.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec\x12\x1B\x0A\x13use_semantic_chunks\x18\x08 \x01(\x08\x1A#\x0A\x0FModelPromptSpec\x12\x10\x0A\x08preamble\x18\x01 \x01(\x09\x1A\x1C\x0A\x09ModelSpec\x12\x0F\x0A\x07version\x18\x01 \x01(\x09\x1A\xC5\x01\x0A\x15ExtractiveContentSpec\x12#\x0A\x1Bmax_extractive_answer_count\x18\x01 \x01(\x05\x12\$\x0A\x1Cmax_extractive_segment_count\x18\x02 \x01(\x05\x12'\x0A\x1Freturn_extractive_segment_score\x18\x03 \x01(\x08\x12\x1D\x0A\x15num_previous_segments\x18\x04 \x01(\x05\x12\x19\x0A\x11num_next_segments\x18\x05 \x01(\x05\x1AA\x0A\x09ChunkSpec\x12\x1B\x0A\x13num_previous_chunks\x18\x01 \x01(\x05\x12\x17\x0A\x0Fnum_next_chunks\x18\x02 \x01(\x05\"Q\x0A\x10SearchResultMode\x12\"\x0A\x1ESEARCH_RESULT_MODE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09DOCUMENTS\x10\x01\x12\x0A\x0A\x06CHUNKS\x10\x02\x1A\xE0\x04\x0A%NaturalLanguageQueryUnderstandingSpec\x12\x93\x01\x0A\x1Bfilter_extraction_condition\x18\x01 \x01(\x0E2n.google.cloud.discoveryengine.v1.SearchRequest.NaturalLanguageQueryUnderstandingSpec.FilterExtractionCondition\x12.\x0A&geo_search_query_detection_field_names\x18\x02 \x03(\x09\x12\x94\x01\x0A\x19extracted_filter_behavior\x18\x03 \x01(\x0E2l.google.cloud.discoveryengine.v1.SearchRequest.NaturalLanguageQueryUnderstandingSpec.ExtractedFilterBehaviorB\x03\xE0A\x01\x12 \x0A\x13allowed_field_names\x18\x04 \x03(\x09B\x03\xE0A\x01\"Q\x0A\x19FilterExtractionCondition\x12\x19\x0A\x15CONDITION_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08DISABLED\x10\x01\x12\x0B\x0A\x07ENABLED\x10\x02\"e\x0A\x17ExtractedFilterBehavior\x12)\x0A%EXTRACTED_FILTER_BEHAVIOR_UNSPECIFIED\x10\x00\x12\x0F\x0A\x0BHARD_FILTER\x10\x01\x12\x0E\x0A\x0ASOFT_BOOST\x10\x02\x1A\xC3\x01\x0A\x13SearchAsYouTypeSpec\x12_\x0A\x09condition\x18\x01 \x01(\x0E2L.google.cloud.discoveryengine.v1.SearchRequest.SearchAsYouTypeSpec.Condition\"K\x0A\x09Condition\x12\x19\x0A\x15CONDITION_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08DISABLED\x10\x01\x12\x0B\x0A\x07ENABLED\x10\x02\x12\x08\x0A\x04AUTO\x10\x03\x1A\x98\x02\x0A\x0BDisplaySpec\x12{\x0A\x1Cmatch_highlighting_condition\x18\x01 \x01(\x0E2U.google.cloud.discoveryengine.v1.SearchRequest.DisplaySpec.MatchHighlightingCondition\"\x8B\x01\x0A\x1AMatchHighlightingCondition\x12,\x0A(MATCH_HIGHLIGHTING_CONDITION_UNSPECIFIED\x10\x00\x12\x1F\x0A\x1BMATCH_HIGHLIGHTING_DISABLED\x10\x01\x12\x1E\x0A\x1AMATCH_HIGHLIGHTING_ENABLED\x10\x02\x1A\xDB\x01\x0A\x0CCrowdingSpec\x12\x0D\x0A\x05field\x18\x01 \x01(\x09\x12\x11\x0A\x09max_count\x18\x02 \x01(\x05\x12N\x0A\x04mode\x18\x03 \x01(\x0E2@.google.cloud.discoveryengine.v1.SearchRequest.CrowdingSpec.Mode\"Y\x0A\x04Mode\x12\x14\x0A\x10MODE_UNSPECIFIED\x10\x00\x12\x18\x0A\x14DROP_CROWDED_RESULTS\x10\x01\x12!\x0A\x1DDEMOTE_CROWDED_RESULTS_TO_END\x10\x02\x1Aq\x0A\x0BSessionSpec\x12\x10\x0A\x08query_id\x18\x01 \x01(\x09\x12,\x0A\x1Fsearch_result_persistence_count\x18\x02 \x01(\x05H\x00\x88\x01\x01B\"\x0A _search_result_persistence_count\x1A9\x0A\x12RelevanceScoreSpec\x12#\x0A\x16return_relevance_score\x18\x01 \x01(\x08B\x03\xE0A\x01\x1A\xDD\x03\x0A\x13RelevanceFilterSpec\x12\x80\x01\x0A\x18keyword_search_threshold\x18\x01 \x01(\x0B2Y.google.cloud.discoveryengine.v1.SearchRequest.RelevanceFilterSpec.RelevanceThresholdSpecB\x03\xE0A\x01\x12\x81\x01\x0A\x19semantic_search_threshold\x18\x02 \x01(\x0B2Y.google.cloud.discoveryengine.v1.SearchRequest.RelevanceFilterSpec.RelevanceThresholdSpecB\x03\xE0A\x01\x1A\xBE\x01\x0A\x16RelevanceThresholdSpec\x12`\x0A\x13relevance_threshold\x18\x01 \x01(\x0E2A.google.cloud.discoveryengine.v1.SearchRequest.RelevanceThresholdH\x00\x12&\x0A\x1Csemantic_relevance_threshold\x18\x02 \x01(\x02H\x00B\x1A\x0A\x18relevance_threshold_spec\x1AE\x0A\x0BParamsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12%\x0A\x05value\x18\x02 \x01(\x0B2\x16.google.protobuf.Value:\x028\x01\x1A1\x0A\x0FUserLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"\x92\x01\x0A\x18RankingExpressionBackend\x12*\x0A&RANKING_EXPRESSION_BACKEND_UNSPECIFIED\x10\x00\x12\x0C\x0A\x04BYOE\x10\x01\x1A\x02\x08\x01\x12\x10\x0A\x08CLEARBOX\x10\x02\x1A\x02\x08\x01\x12\x15\x0A\x11RANK_BY_EMBEDDING\x10\x03\x12\x13\x0A\x0FRANK_BY_FORMULA\x10\x04\"d\x0A\x12RelevanceThreshold\x12#\x0A\x1FRELEVANCE_THRESHOLD_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06LOWEST\x10\x01\x12\x07\x0A\x03LOW\x10\x02\x12\x0A\x0A\x06MEDIUM\x10\x03\x12\x08\x0A\x04HIGH\x10\x04\"\xE6/\x0A\x0ESearchResponse\x12M\x0A\x07results\x18\x01 \x03(\x0B2<.google.cloud.discoveryengine.v1.SearchResponse.SearchResult\x12E\x0A\x06facets\x18\x02 \x03(\x0B25.google.cloud.discoveryengine.v1.SearchResponse.Facet\x12\x12\x0A\x0Atotal_size\x18\x03 \x01(\x05\x12\x19\x0A\x11attribution_token\x18\x04 \x01(\x09\x12\x14\x0A\x0Credirect_uri\x18\x0C \x01(\x09\x12\x17\x0A\x0Fnext_page_token\x18\x05 \x01(\x09\x12\x17\x0A\x0Fcorrected_query\x18\x07 \x01(\x09\x12H\x0A\x07summary\x18\x09 \x01(\x0B27.google.cloud.discoveryengine.v1.SearchResponse.Summary\x12`\x0A\x14query_expansion_info\x18\x0E \x01(\x0B2B.google.cloud.discoveryengine.v1.SearchResponse.QueryExpansionInfo\x12\x8D\x01\x0A)natural_language_query_understanding_info\x18\x0F \x01(\x0B2U.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfoB\x03\xE0A\x03\x12Q\x0A\x0Csession_info\x18\x13 \x01(\x0B2;.google.cloud.discoveryengine.v1.SearchResponse.SessionInfo\x12T\x0A\x16search_link_promotions\x18\x17 \x03(\x0B24.google.cloud.discoveryengine.v1.SearchLinkPromotion\x12Z\x0A\x0Esemantic_state\x18\$ \x01(\x0E2=.google.cloud.discoveryengine.v1.SearchResponse.SemanticStateB\x03\xE0A\x03\x1A\xA9\x08\x0A\x0CSearchResult\x12\x0A\x0A\x02id\x18\x01 \x01(\x09\x12;\x0A\x08document\x18\x02 \x01(\x0B2).google.cloud.discoveryengine.v1.Document\x125\x0A\x05chunk\x18\x12 \x01(\x0B2&.google.cloud.discoveryengine.v1.Chunk\x12h\x0A\x0Cmodel_scores\x18\x04 \x03(\x0B2M.google.cloud.discoveryengine.v1.SearchResponse.SearchResult.ModelScoresEntryB\x03\xE0A\x03\x12c\x0A\x0Crank_signals\x18\x07 \x01(\x0B2H.google.cloud.discoveryengine.v1.SearchResponse.SearchResult.RankSignalsB\x03\xE0A\x01\x1A\xE8\x04\x0A\x0BRankSignals\x12*\x0A\x18keyword_similarity_score\x18\x01 \x01(\x02B\x03\xE0A\x01H\x00\x88\x01\x01\x12!\x0A\x0Frelevance_score\x18\x02 \x01(\x02B\x03\xE0A\x01H\x01\x88\x01\x01\x12+\x0A\x19semantic_similarity_score\x18\x03 \x01(\x02B\x03\xE0A\x01H\x02\x88\x01\x01\x12\x1B\x0A\x09pctr_rank\x18\x04 \x01(\x02B\x03\xE0A\x01H\x03\x88\x01\x01\x12!\x0A\x0Ftopicality_rank\x18\x06 \x01(\x02B\x03\xE0A\x01H\x04\x88\x01\x01\x12\x1E\x0A\x0Cdocument_age\x18\x07 \x01(\x02B\x03\xE0A\x01H\x05\x88\x01\x01\x12!\x0A\x0Fboosting_factor\x18\x08 \x01(\x02B\x03\xE0A\x01H\x06\x88\x01\x01\x12\x19\x0A\x0Cdefault_rank\x18 \x01(\x02B\x03\xE0A\x01\x12r\x0A\x0Ecustom_signals\x18! \x03(\x0B2U.google.cloud.discoveryengine.v1.SearchResponse.SearchResult.RankSignals.CustomSignalB\x03\xE0A\x01\x1A5\x0A\x0CCustomSignal\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x12\x0A\x05value\x18\x02 \x01(\x02B\x03\xE0A\x01B\x1B\x0A\x19_keyword_similarity_scoreB\x12\x0A\x10_relevance_scoreB\x1C\x0A\x1A_semantic_similarity_scoreB\x0C\x0A\x0A_pctr_rankB\x12\x0A\x10_topicality_rankB\x0F\x0A\x0D_document_ageB\x12\x0A\x10_boosting_factor\x1A_\x0A\x10ModelScoresEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12:\x0A\x05value\x18\x02 \x01(\x0B2+.google.cloud.discoveryengine.v1.DoubleList:\x028\x01\x1A\xF9\x01\x0A\x05Facet\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12P\x0A\x06values\x18\x02 \x03(\x0B2@.google.cloud.discoveryengine.v1.SearchResponse.Facet.FacetValue\x12\x15\x0A\x0Ddynamic_facet\x18\x03 \x01(\x08\x1Az\x0A\x0AFacetValue\x12\x0F\x0A\x05value\x18\x01 \x01(\x09H\x00\x12=\x0A\x08interval\x18\x02 \x01(\x0B2).google.cloud.discoveryengine.v1.IntervalH\x00\x12\x0D\x0A\x05count\x18\x03 \x01(\x03B\x0D\x0A\x0Bfacet_value\x1A\xA1\x0C\x0A\x07Summary\x12\x14\x0A\x0Csummary_text\x18\x01 \x01(\x09\x12m\x0A\x17summary_skipped_reasons\x18\x02 \x03(\x0E2L.google.cloud.discoveryengine.v1.SearchResponse.Summary.SummarySkippedReason\x12c\x0A\x11safety_attributes\x18\x03 \x01(\x0B2H.google.cloud.discoveryengine.v1.SearchResponse.Summary.SafetyAttributes\x12j\x0A\x15summary_with_metadata\x18\x04 \x01(\x0B2K.google.cloud.discoveryengine.v1.SearchResponse.Summary.SummaryWithMetadata\x1A6\x0A\x10SafetyAttributes\x12\x12\x0A\x0Acategories\x18\x01 \x03(\x09\x12\x0E\x0A\x06scores\x18\x02 \x03(\x02\x1Ag\x0A\x10CitationMetadata\x12S\x0A\x09citations\x18\x01 \x03(\x0B2@.google.cloud.discoveryengine.v1.SearchResponse.Summary.Citation\x1A\x8B\x01\x0A\x08Citation\x12\x13\x0A\x0Bstart_index\x18\x01 \x01(\x03\x12\x11\x0A\x09end_index\x18\x02 \x01(\x03\x12W\x0A\x07sources\x18\x03 \x03(\x0B2F.google.cloud.discoveryengine.v1.SearchResponse.Summary.CitationSource\x1A)\x0A\x0ECitationSource\x12\x17\x0A\x0Freference_index\x18\x04 \x01(\x03\x1A\x8C\x02\x0A\x09Reference\x12\x0D\x0A\x05title\x18\x01 \x01(\x09\x12A\x0A\x08document\x18\x02 \x01(\x09B/\xE0A\x02\xFAA)\x0A'discoveryengine.googleapis.com/Document\x12\x0B\x0A\x03uri\x18\x03 \x01(\x09\x12f\x0A\x0Echunk_contents\x18\x04 \x03(\x0B2N.google.cloud.discoveryengine.v1.SearchResponse.Summary.Reference.ChunkContent\x1A8\x0A\x0CChunkContent\x12\x0F\x0A\x07content\x18\x01 \x01(\x09\x12\x17\x0A\x0Fpage_identifier\x18\x02 \x01(\x09\x1A\xE2\x01\x0A\x13SummaryWithMetadata\x12\x0F\x0A\x07summary\x18\x01 \x01(\x09\x12c\x0A\x11citation_metadata\x18\x02 \x01(\x0B2H.google.cloud.discoveryengine.v1.SearchResponse.Summary.CitationMetadata\x12U\x0A\x0Areferences\x18\x03 \x03(\x0B2A.google.cloud.discoveryengine.v1.SearchResponse.Summary.Reference\"\xF1\x02\x0A\x14SummarySkippedReason\x12&\x0A\"SUMMARY_SKIPPED_REASON_UNSPECIFIED\x10\x00\x12\x1D\x0A\x19ADVERSARIAL_QUERY_IGNORED\x10\x01\x12%\x0A!NON_SUMMARY_SEEKING_QUERY_IGNORED\x10\x02\x12\x1F\x0A\x1BOUT_OF_DOMAIN_QUERY_IGNORED\x10\x03\x12\x1E\x0A\x1APOTENTIAL_POLICY_VIOLATION\x10\x04\x12\x19\x0A\x15LLM_ADDON_NOT_ENABLED\x10\x05\x12\x17\x0A\x13NO_RELEVANT_CONTENT\x10\x06\x12\x1F\x0A\x1BJAIL_BREAKING_QUERY_IGNORED\x10\x07\x12\x1D\x0A\x19CUSTOMER_POLICY_VIOLATION\x10\x08\x12(\x0A\$NON_SUMMARY_SEEKING_QUERY_IGNORED_V2\x10\x09\x12\x0C\x0A\x08TIME_OUT\x10\x0A\x1AI\x0A\x12QueryExpansionInfo\x12\x16\x0A\x0Eexpanded_query\x18\x01 \x01(\x08\x12\x1B\x0A\x13pinned_result_count\x18\x02 \x01(\x03\x1A\xF3\x10\x0A%NaturalLanguageQueryUnderstandingInfo\x12\x19\x0A\x11extracted_filters\x18\x01 \x01(\x09\x12\x17\x0A\x0Frewritten_query\x18\x02 \x01(\x09\x12\x1A\x0A\x12classified_intents\x18\x05 \x03(\x09\x12\x94\x01\x0A\x1Bstructured_extracted_filter\x18\x03 \x01(\x0B2o.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter\x1A\xE2\x0E\x0A\x19StructuredExtractedFilter\x12\x8E\x01\x0A\x0Aexpression\x18\x01 \x01(\x0B2z.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.Expression\x1AM\x0A\x10StringConstraint\x12\x12\x0A\x0Afield_name\x18\x01 \x01(\x09\x12\x0E\x0A\x06values\x18\x02 \x03(\x09\x12\x15\x0A\x0Dquery_segment\x18\x03 \x01(\x09\x1A\xF6\x02\x0A\x10NumberConstraint\x12\x12\x0A\x0Afield_name\x18\x01 \x01(\x09\x12\xA0\x01\x0A\x0Acomparison\x18\x02 \x01(\x0E2\x8B\x01.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.NumberConstraint.Comparison\x12\x0D\x0A\x05value\x18\x03 \x01(\x01\x12\x15\x0A\x0Dquery_segment\x18\x04 \x01(\x09\"\x84\x01\x0A\x0AComparison\x12\x1A\x0A\x16COMPARISON_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06EQUALS\x10\x01\x12\x14\x0A\x10LESS_THAN_EQUALS\x10\x02\x12\x0D\x0A\x09LESS_THAN\x10\x03\x12\x17\x0A\x13GREATER_THAN_EQUALS\x10\x04\x12\x10\x0A\x0CGREATER_THAN\x10\x05\x1A{\x0A\x15GeolocationConstraint\x12\x12\x0A\x0Afield_name\x18\x01 \x01(\x09\x12\x0F\x0A\x07address\x18\x02 \x01(\x09\x12\x10\x0A\x08latitude\x18\x04 \x01(\x01\x12\x11\x0A\x09longitude\x18\x05 \x01(\x01\x12\x18\x0A\x10radius_in_meters\x18\x03 \x01(\x02\x1A\xA1\x01\x0A\x0DAndExpression\x12\x8F\x01\x0A\x0Bexpressions\x18\x01 \x03(\x0B2z.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.Expression\x1A\xA0\x01\x0A\x0COrExpression\x12\x8F\x01\x0A\x0Bexpressions\x18\x01 \x03(\x0B2z.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.Expression\x1A\xA7\x06\x0A\x0AExpression\x12\x9E\x01\x0A\x11string_constraint\x18\x01 \x01(\x0B2\x80\x01.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.StringConstraintH\x00\x12\x9E\x01\x0A\x11number_constraint\x18\x02 \x01(\x0B2\x80\x01.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.NumberConstraintH\x00\x12\xA8\x01\x0A\x16geolocation_constraint\x18\x03 \x01(\x0B2\x85\x01.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.GeolocationConstraintH\x00\x12\x91\x01\x0A\x08and_expr\x18\x04 \x01(\x0B2}.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.AndExpressionH\x00\x12\x8F\x01\x0A\x07or_expr\x18\x05 \x01(\x0B2|.google.cloud.discoveryengine.v1.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.OrExpressionH\x00B\x06\x0A\x04expr\x1A-\x0A\x0BSessionInfo\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x10\x0A\x08query_id\x18\x02 \x01(\x09\"J\x0A\x0DSemanticState\x12\x1E\x0A\x1ASEMANTIC_STATE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08DISABLED\x10\x01\x12\x0B\x0A\x07ENABLED\x10\x022\x97\x07\x0A\x0DSearchService\x12\x8F\x03\x0A\x06Search\x12..google.cloud.discoveryengine.v1.SearchRequest\x1A/.google.cloud.discoveryengine.v1.SearchResponse\"\xA3\x02\x82\xD3\xE4\x93\x02\x9C\x02\"P/v1/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:search:\x01*Zc\"^/v1/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:search:\x01*Z`\"[/v1/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:search:\x01*\x12\x9F\x03\x0A\x0ASearchLite\x12..google.cloud.discoveryengine.v1.SearchRequest\x1A/.google.cloud.discoveryengine.v1.SearchResponse\"\xAF\x02\x82\xD3\xE4\x93\x02\xA8\x02\"T/v1/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:searchLite:\x01*Zg\"b/v1/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:searchLite:\x01*Zd\"_/v1/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:searchLite:\x01*\x1AR\xCAA\x1Ediscoveryengine.googleapis.com\xD2A.https://www.googleapis.com/auth/cloud-platformB\x85\x02\x0A#com.google.cloud.discoveryengine.v1B\x12SearchServiceProtoP\x01ZMcloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb\xA2\x02\x0FDISCOVERYENGINE\xAA\x02\x1FGoogle.Cloud.DiscoveryEngine.V1\xCA\x02\x1FGoogle\\Cloud\\DiscoveryEngine\\V1\xEA\x02\"Google::Cloud::DiscoveryEngine::V1b\x06proto3"
, true);
static::$is_initialized = true;
diff --git a/DiscoveryEngine/src/V1/SearchRequest.php b/DiscoveryEngine/src/V1/SearchRequest.php
index 1777b9c7c48f..0194b30ffc64 100644
--- a/DiscoveryEngine/src/V1/SearchRequest.php
+++ b/DiscoveryEngine/src/V1/SearchRequest.php
@@ -455,6 +455,16 @@ class SearchRequest extends \Google\Protobuf\Internal\Message
* Generated from protobuf field .google.cloud.discoveryengine.v1.SearchRequest.RelevanceThreshold relevance_threshold = 44;
*/
protected $relevance_threshold = 0;
+ /**
+ * Optional. The granular relevance filtering specification.
+ * If not specified, the global `relevance_threshold` will be used for all
+ * sub-searches. If specified, this overrides the global
+ * `relevance_threshold` to use thresholds on a per sub-search basis.
+ * This feature is currently supported only for custom and site search.
+ *
+ * Generated from protobuf field .google.cloud.discoveryengine.v1.SearchRequest.RelevanceFilterSpec relevance_filter_spec = 86 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $relevance_filter_spec = null;
/**
* Optional. The specification for returning the relevance score.
*
@@ -774,6 +784,12 @@ class SearchRequest extends \Google\Protobuf\Internal\Message
* If more granular relevance filtering is required, use the
* `relevance_filter_spec` instead.
* This feature is not supported for healthcare search.
+ * @type \Google\Cloud\DiscoveryEngine\V1\SearchRequest\RelevanceFilterSpec $relevance_filter_spec
+ * Optional. The granular relevance filtering specification.
+ * If not specified, the global `relevance_threshold` will be used for all
+ * sub-searches. If specified, this overrides the global
+ * `relevance_threshold` to use thresholds on a per sub-search basis.
+ * This feature is currently supported only for custom and site search.
* @type \Google\Cloud\DiscoveryEngine\V1\SearchRequest\RelevanceScoreSpec $relevance_score_spec
* Optional. The specification for returning the relevance score.
* }
@@ -2221,6 +2237,50 @@ public function setRelevanceThreshold($var)
return $this;
}
+ /**
+ * Optional. The granular relevance filtering specification.
+ * If not specified, the global `relevance_threshold` will be used for all
+ * sub-searches. If specified, this overrides the global
+ * `relevance_threshold` to use thresholds on a per sub-search basis.
+ * This feature is currently supported only for custom and site search.
+ *
+ * Generated from protobuf field .google.cloud.discoveryengine.v1.SearchRequest.RelevanceFilterSpec relevance_filter_spec = 86 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\DiscoveryEngine\V1\SearchRequest\RelevanceFilterSpec|null
+ */
+ public function getRelevanceFilterSpec()
+ {
+ return $this->relevance_filter_spec;
+ }
+
+ public function hasRelevanceFilterSpec()
+ {
+ return isset($this->relevance_filter_spec);
+ }
+
+ public function clearRelevanceFilterSpec()
+ {
+ unset($this->relevance_filter_spec);
+ }
+
+ /**
+ * Optional. The granular relevance filtering specification.
+ * If not specified, the global `relevance_threshold` will be used for all
+ * sub-searches. If specified, this overrides the global
+ * `relevance_threshold` to use thresholds on a per sub-search basis.
+ * This feature is currently supported only for custom and site search.
+ *
+ * Generated from protobuf field .google.cloud.discoveryengine.v1.SearchRequest.RelevanceFilterSpec relevance_filter_spec = 86 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\DiscoveryEngine\V1\SearchRequest\RelevanceFilterSpec $var
+ * @return $this
+ */
+ public function setRelevanceFilterSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DiscoveryEngine\V1\SearchRequest\RelevanceFilterSpec::class);
+ $this->relevance_filter_spec = $var;
+
+ return $this;
+ }
+
/**
* Optional. The specification for returning the relevance score.
*
diff --git a/DiscoveryEngine/src/V1/SearchRequest/RelevanceFilterSpec.php b/DiscoveryEngine/src/V1/SearchRequest/RelevanceFilterSpec.php
new file mode 100644
index 000000000000..b499fec8407e
--- /dev/null
+++ b/DiscoveryEngine/src/V1/SearchRequest/RelevanceFilterSpec.php
@@ -0,0 +1,125 @@
+google.cloud.discoveryengine.v1.SearchRequest.RelevanceFilterSpec
+ */
+class RelevanceFilterSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Relevance filtering threshold specification for keyword search.
+ *
+ * Generated from protobuf field .google.cloud.discoveryengine.v1.SearchRequest.RelevanceFilterSpec.RelevanceThresholdSpec keyword_search_threshold = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $keyword_search_threshold = null;
+ /**
+ * Optional. Relevance filtering threshold specification for semantic
+ * search.
+ *
+ * Generated from protobuf field .google.cloud.discoveryengine.v1.SearchRequest.RelevanceFilterSpec.RelevanceThresholdSpec semantic_search_threshold = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $semantic_search_threshold = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DiscoveryEngine\V1\SearchRequest\RelevanceFilterSpec\RelevanceThresholdSpec $keyword_search_threshold
+ * Optional. Relevance filtering threshold specification for keyword search.
+ * @type \Google\Cloud\DiscoveryEngine\V1\SearchRequest\RelevanceFilterSpec\RelevanceThresholdSpec $semantic_search_threshold
+ * Optional. Relevance filtering threshold specification for semantic
+ * search.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Discoveryengine\V1\SearchService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Relevance filtering threshold specification for keyword search.
+ *
+ * Generated from protobuf field .google.cloud.discoveryengine.v1.SearchRequest.RelevanceFilterSpec.RelevanceThresholdSpec keyword_search_threshold = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\DiscoveryEngine\V1\SearchRequest\RelevanceFilterSpec\RelevanceThresholdSpec|null
+ */
+ public function getKeywordSearchThreshold()
+ {
+ return $this->keyword_search_threshold;
+ }
+
+ public function hasKeywordSearchThreshold()
+ {
+ return isset($this->keyword_search_threshold);
+ }
+
+ public function clearKeywordSearchThreshold()
+ {
+ unset($this->keyword_search_threshold);
+ }
+
+ /**
+ * Optional. Relevance filtering threshold specification for keyword search.
+ *
+ * Generated from protobuf field .google.cloud.discoveryengine.v1.SearchRequest.RelevanceFilterSpec.RelevanceThresholdSpec keyword_search_threshold = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\DiscoveryEngine\V1\SearchRequest\RelevanceFilterSpec\RelevanceThresholdSpec $var
+ * @return $this
+ */
+ public function setKeywordSearchThreshold($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DiscoveryEngine\V1\SearchRequest\RelevanceFilterSpec\RelevanceThresholdSpec::class);
+ $this->keyword_search_threshold = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Relevance filtering threshold specification for semantic
+ * search.
+ *
+ * Generated from protobuf field .google.cloud.discoveryengine.v1.SearchRequest.RelevanceFilterSpec.RelevanceThresholdSpec semantic_search_threshold = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\DiscoveryEngine\V1\SearchRequest\RelevanceFilterSpec\RelevanceThresholdSpec|null
+ */
+ public function getSemanticSearchThreshold()
+ {
+ return $this->semantic_search_threshold;
+ }
+
+ public function hasSemanticSearchThreshold()
+ {
+ return isset($this->semantic_search_threshold);
+ }
+
+ public function clearSemanticSearchThreshold()
+ {
+ unset($this->semantic_search_threshold);
+ }
+
+ /**
+ * Optional. Relevance filtering threshold specification for semantic
+ * search.
+ *
+ * Generated from protobuf field .google.cloud.discoveryengine.v1.SearchRequest.RelevanceFilterSpec.RelevanceThresholdSpec semantic_search_threshold = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\DiscoveryEngine\V1\SearchRequest\RelevanceFilterSpec\RelevanceThresholdSpec $var
+ * @return $this
+ */
+ public function setSemanticSearchThreshold($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DiscoveryEngine\V1\SearchRequest\RelevanceFilterSpec\RelevanceThresholdSpec::class);
+ $this->semantic_search_threshold = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/DiscoveryEngine/src/V1/SearchRequest/RelevanceFilterSpec/RelevanceThresholdSpec.php b/DiscoveryEngine/src/V1/SearchRequest/RelevanceFilterSpec/RelevanceThresholdSpec.php
new file mode 100644
index 000000000000..3ebb4db46d9a
--- /dev/null
+++ b/DiscoveryEngine/src/V1/SearchRequest/RelevanceFilterSpec/RelevanceThresholdSpec.php
@@ -0,0 +1,111 @@
+google.cloud.discoveryengine.v1.SearchRequest.RelevanceFilterSpec.RelevanceThresholdSpec
+ */
+class RelevanceThresholdSpec extends \Google\Protobuf\Internal\Message
+{
+ protected $relevance_threshold_spec;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $relevance_threshold
+ * Pre-defined relevance threshold for the sub-search.
+ * @type float $semantic_relevance_threshold
+ * Custom relevance threshold for the sub-search.
+ * The value must be in [0.0, 1.0].
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Discoveryengine\V1\SearchService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Pre-defined relevance threshold for the sub-search.
+ *
+ * Generated from protobuf field .google.cloud.discoveryengine.v1.SearchRequest.RelevanceThreshold relevance_threshold = 1;
+ * @return int
+ */
+ public function getRelevanceThreshold()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasRelevanceThreshold()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Pre-defined relevance threshold for the sub-search.
+ *
+ * Generated from protobuf field .google.cloud.discoveryengine.v1.SearchRequest.RelevanceThreshold relevance_threshold = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setRelevanceThreshold($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DiscoveryEngine\V1\SearchRequest\RelevanceThreshold::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Custom relevance threshold for the sub-search.
+ * The value must be in [0.0, 1.0].
+ *
+ * Generated from protobuf field float semantic_relevance_threshold = 2;
+ * @return float
+ */
+ public function getSemanticRelevanceThreshold()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasSemanticRelevanceThreshold()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Custom relevance threshold for the sub-search.
+ * The value must be in [0.0, 1.0].
+ *
+ * Generated from protobuf field float semantic_relevance_threshold = 2;
+ * @param float $var
+ * @return $this
+ */
+ public function setSemanticRelevanceThreshold($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getRelevanceThresholdSpec()
+ {
+ return $this->whichOneof("relevance_threshold_spec");
+ }
+
+}
+