SearchIndexClient 類別

要與 Azure 搜尋服務索引互動的用戶端。

繼承
azure.search.documents._headers_mixin.HeadersMixin
SearchIndexClient

建構函式

SearchIndexClient(endpoint: str, credential: AzureKeyCredential | TokenCredential, **kwargs: Any)

參數

endpoint
str
必要

Azure 搜尋服務的 URL 端點

credential
AzureKeyCredentialTokenCredential
必要

用來授權搜尋用戶端要求的認證

api_version
str

要用於要求的搜尋 API 版本。

audience
str

會設定要用於 Azure Active Directory (AAD) 驗證的物件。 使用共用金鑰時,不會考慮物件。 如果未提供物件,則會假設公用雲端物件。

方法

analyze_text

顯示分析器如何將文字分成標記。

close

SearchIndexClient關閉會話。

create_index

建立新的搜尋索引。

create_or_update_index

建立新的搜尋索引,或在索引已經存在時更新索引。

create_or_update_synonym_map

在 Azure 搜尋服務中建立新的同義字對應,或更新現有的同義字對應。

create_synonym_map

在 Azure 搜尋服務中建立新的同義字對應

delete_index

刪除搜尋索引及其包含的所有檔。 必須提供模型,而不是使用存取條件的名稱。

delete_synonym_map

刪除 Azure 搜尋服務中具名的同義字對應。 若要使用存取條件,必須提供 SynonymMap 模型,而不是名稱。 它足以提供同義字對應的名稱,以無條件地刪除。

get_index
get_index_statistics

傳回指定索引的統計資料,包括檔計數和儲存體使用量。

get_search_client

傳回用戶端以在搜尋上執行作業

get_service_statistics

取得搜尋服務的服務等級統計資料。

get_synonym_map

在 Azure 搜尋服務中擷取具名同義字對應

get_synonym_map_names

列出 Azure 搜尋服務中的同義字對應名稱。

get_synonym_maps

列出 Azure 搜尋服務中的同義字對應。

list_index_names

列出 Azure 搜尋服務中的索引名稱。

list_indexes

列出 Azure 搜尋服務中的索引。

analyze_text

顯示分析器如何將文字分成標記。

analyze_text(index_name: str, analyze_request: AnalyzeTextOptions, **kwargs: Any) -> AnalyzeResult

參數

index_name
str
必要

要測試分析器的索引名稱。

analyze_request
AnalyzeTextOptions
必要

要測試的文字和分析器或分析元件。

傳回

AnalyzeResult

傳回類型

例外狀況

範例

分析文字


   from azure.core.credentials import AzureKeyCredential
   from azure.search.documents.indexes import SearchIndexClient
   from azure.search.documents.indexes.models import AnalyzeTextOptions

   client = SearchIndexClient(service_endpoint, AzureKeyCredential(key))

   analyze_request = AnalyzeTextOptions(text="One's <two/>", analyzer_name="standard.lucene")

   result = client.analyze_text(index_name, analyze_request)
   print(result.as_dict())

close

SearchIndexClient關閉會話。

close() -> None

例外狀況

create_index

建立新的搜尋索引。

create_index(index: SearchIndex, **kwargs: Any) -> SearchIndex

參數

index
SearchIndex
必要

索引物件。

傳回

建立的索引

傳回類型

例外狀況

範例

建立新的索引。


   client = SearchIndexClient(service_endpoint, AzureKeyCredential(key))
   name = "hotels"
   fields = [
       SimpleField(name="hotelId", type=SearchFieldDataType.String, key=True),
       SimpleField(name="baseRate", type=SearchFieldDataType.Double),
       SearchableField(name="description", type=SearchFieldDataType.String, collection=True),
       ComplexField(
           name="address",
           fields=[
               SimpleField(name="streetAddress", type=SearchFieldDataType.String),
               SimpleField(name="city", type=SearchFieldDataType.String),
           ],
           collection=True,
       ),
   ]
   cors_options = CorsOptions(allowed_origins=["*"], max_age_in_seconds=60)
   scoring_profiles: List[ScoringProfile] = []
   index = SearchIndex(name=name, fields=fields, scoring_profiles=scoring_profiles, cors_options=cors_options)

   result = client.create_index(index)

create_or_update_index

建立新的搜尋索引,或在索引已經存在時更新索引。

create_or_update_index(index: SearchIndex, allow_index_downtime: bool | None = None, *, match_condition: MatchConditions = MatchConditions.Unconditionally, **kwargs: Any) -> SearchIndex

參數

index
SearchIndex
必要

索引物件。

allow_index_downtime
bool
必要

允許新的分析器、權杖化工具、權杖篩選或字元篩選新增至索引,方法是讓索引離線至少幾秒鐘。 這會暫時造成索引編制和查詢要求失敗。 在索引更新後,索引的效能和寫入可用性可能會降低數分鐘,如果是非常大的索引,則可能持續更久。

match_condition
MatchConditions

要用於 etag 的比對條件

傳回

已建立或更新的索引

傳回類型

例外狀況

範例

更新索引。


   client = SearchIndexClient(service_endpoint, AzureKeyCredential(key))
   name = "hotels"
   fields = [
       SimpleField(name="hotelId", type=SearchFieldDataType.String, key=True),
       SimpleField(name="baseRate", type=SearchFieldDataType.Double),
       SearchableField(name="description", type=SearchFieldDataType.String, collection=True),
       SearchableField(name="hotelName", type=SearchFieldDataType.String),
       ComplexField(
           name="address",
           fields=[
               SimpleField(name="streetAddress", type=SearchFieldDataType.String),
               SimpleField(name="city", type=SearchFieldDataType.String),
               SimpleField(name="state", type=SearchFieldDataType.String),
           ],
           collection=True,
       ),
   ]
   cors_options = CorsOptions(allowed_origins=["*"], max_age_in_seconds=60)
   scoring_profile = ScoringProfile(name="MyProfile")
   scoring_profiles = []
   scoring_profiles.append(scoring_profile)
   index = SearchIndex(name=name, fields=fields, scoring_profiles=scoring_profiles, cors_options=cors_options)

   result = client.create_or_update_index(index=index)

create_or_update_synonym_map

在 Azure 搜尋服務中建立新的同義字對應,或更新現有的同義字對應。

create_or_update_synonym_map(synonym_map: SynonymMap, *, match_condition: MatchConditions = MatchConditions.Unconditionally, **kwargs: Any) -> SynonymMap

參數

synonym_map
SynonymMap
必要

同義字對應物件

match_condition
MatchConditions

要用於 etag 的比對條件

傳回

已建立或更新的同義字對應

傳回類型

例外狀況

create_synonym_map

在 Azure 搜尋服務中建立新的同義字對應

create_synonym_map(synonym_map: SynonymMap, **kwargs: Any) -> SynonymMap

參數

synonym_map
SynonymMap
必要

同義字對應物件

傳回

已建立的同義字對應

傳回類型

例外狀況

範例

建立同義字對應


   synonyms = [
       "USA, United States, United States of America",
       "Washington, Wash. => WA",
   ]
   synonym_map = SynonymMap(name="test-syn-map", synonyms=synonyms)
   result = client.create_synonym_map(synonym_map)
   print("Create new Synonym Map 'test-syn-map succeeded")

delete_index

刪除搜尋索引及其包含的所有檔。 必須提供模型,而不是使用存取條件的名稱。

delete_index(index: str | SearchIndex, *, match_condition: MatchConditions = MatchConditions.Unconditionally, **kwargs: Any) -> None

參數

index
strSearchIndex
必要

要刪除的索引名稱或物件。

match_condition
MatchConditions

要用於 etag 的比對條件

例外狀況

範例

刪除索引。


   client = SearchIndexClient(service_endpoint, AzureKeyCredential(key))
   name = "hotels"
   client.delete_index(name)

delete_synonym_map

刪除 Azure 搜尋服務中具名的同義字對應。 若要使用存取條件,必須提供 SynonymMap 模型,而不是名稱。 它足以提供同義字對應的名稱,以無條件地刪除。

delete_synonym_map(synonym_map: str | SynonymMap, *, match_condition: MatchConditions = MatchConditions.Unconditionally, **kwargs: Any) -> None

參數

name
strSynonymMap
必要

要刪除的同義字對應名稱或物件

match_condition
MatchConditions

要用於 etag 的比對條件

傳回

傳回類型

例外狀況

範例

刪除同義字對應


   client.delete_synonym_map("test-syn-map")
   print("Synonym Map 'test-syn-map' deleted")

get_index

get_index(name: str, **kwargs: Any) -> SearchIndex

參數

name
str
必要

要擷取的索引名稱。

傳回

SearchIndex 物件

傳回類型

例外狀況

範例

取得索引。


   client = SearchIndexClient(service_endpoint, AzureKeyCredential(key))
   name = "hotels"
   result = client.get_index(name)

get_index_statistics

傳回指定索引的統計資料,包括檔計數和儲存體使用量。

get_index_statistics(index_name: str, **kwargs: Any) -> MutableMapping[str, Any]

參數

index_name
str
必要

要擷取的索引名稱。

傳回

指定索引的統計資料,包括檔計數和儲存體使用量。

傳回類型

例外狀況

get_search_client

傳回用戶端以在搜尋上執行作業

get_search_client(index_name: str, **kwargs: Any) -> SearchClient

參數

index_name
str
必要

搜尋索引的名稱

傳回

SearchClient 物件

傳回類型

例外狀況

get_service_statistics

取得搜尋服務的服務等級統計資料。

get_service_statistics(**kwargs: Any) -> MutableMapping[str, Any]

傳回

服務統計資料結果。

傳回類型

例外狀況

get_synonym_map

在 Azure 搜尋服務中擷取具名同義字對應

get_synonym_map(name: str, **kwargs: Any) -> SynonymMap

參數

name
str
必要

要取得的同義字對應名稱

傳回

擷取的同義字對應

傳回類型

例外狀況

範例

取得同義字對應


   result = client.get_synonym_map("test-syn-map")
   print("Retrived Synonym Map 'test-syn-map' with synonyms")
   for syn in result.synonyms:
       print("    {}".format(syn))

get_synonym_map_names

列出 Azure 搜尋服務中的同義字對應名稱。

get_synonym_map_names(**kwargs: Any) -> List[str]

傳回

同義字對應清單

傳回類型

例外狀況

get_synonym_maps

列出 Azure 搜尋服務中的同義字對應。

get_synonym_maps(*, select: List[str] | None = None, **kwargs) -> List[SynonymMap]

參數

select
list[str]

選取要擷取之技能集的最上層屬性。 指定為所有屬性的 JSON 屬性名稱清單或 '*'。 預設值為所有屬性。

傳回

同義字對應清單

傳回類型

例外狀況

範例

列出同義字對應


   result = client.get_synonym_maps()
   names = [x.name for x in result]
   print("Found {} Synonym Maps in the service: {}".format(len(result), ", ".join(names)))

list_index_names

列出 Azure 搜尋服務中的索引名稱。

list_index_names(**kwargs: Any) -> ItemPaged[str]

傳回

索引名稱的清單

傳回類型

例外狀況

list_indexes

列出 Azure 搜尋服務中的索引。

list_indexes(*, select: List[str] | None = None, **kwargs: Any) -> ItemPaged[SearchIndex]

參數

select
list[str]

選取要擷取之技能集的最上層屬性。 指定為所有屬性的 JSON 屬性名稱清單或 '*'。 預設值為所有屬性。

傳回

索引清單

傳回類型

例外狀況