SearchIndexClient 類別
要與 Azure 搜尋服務索引互動的用戶端。
- 繼承
-
azure.search.documents._headers_mixin.HeadersMixinSearchIndexClient
建構函式
SearchIndexClient(endpoint: str, credential: AzureKeyCredential | AsyncTokenCredential, **kwargs)
參數
- 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
顯示分析器如何將文字分成標記。
async analyze_text(index_name: str, analyze_request: AnalyzeTextOptions, **kwargs: Any) -> AnalyzeResult
參數
傳回
AnalyzeResult
傳回類型
例外狀況
範例
分析文字
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes.aio 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")
async with client:
result = await client.analyze_text(index_name, analyze_request)
print(result.as_dict())
close
create_index
建立新的搜尋索引。
async create_index(index: SearchIndex, **kwargs: Any) -> 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 = await client.create_index(index)
await client.close()
create_or_update_index
建立新的搜尋索引,或在索引已經存在時更新索引。
async create_or_update_index(index: SearchIndex, allow_index_downtime: bool | None = None, *, match_condition: MatchConditions = MatchConditions.Unconditionally, **kwargs: Any) -> 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 = await client.create_or_update_index(index=index)
await client.close()
create_or_update_synonym_map
在 Azure 搜尋服務中建立新的同義字對應,或更新現有的同義字對應。
async create_or_update_synonym_map(synonym_map: SynonymMap, *, match_condition: MatchConditions = MatchConditions.Unconditionally, **kwargs: Any) -> SynonymMap
參數
- match_condition
- MatchConditions
要用於 etag 的比對條件
傳回
已建立或更新的同義字對應
傳回類型
例外狀況
create_synonym_map
在 Azure 搜尋服務中建立新的同義字對應
async create_synonym_map(synonym_map: SynonymMap, **kwargs: Any) -> SynonymMap
參數
傳回
已建立的同義字對應
傳回類型
例外狀況
範例
建立同義字對應
synonyms = [
"USA, United States, United States of America",
"Washington, Wash. => WA",
]
synonym_map = SynonymMap(name="test-syn-map", synonyms=synonyms)
result = await client.create_synonym_map(synonym_map)
print("Create new Synonym Map 'test-syn-map succeeded")
delete_index
刪除搜尋索引及其包含的所有檔。 必須提供模型,而不是使用存取條件的名稱
async delete_index(index: str | SearchIndex, **kwargs: Any) -> None
參數
- match_condition
- MatchConditions
要用於 etag 的比對條件
例外狀況
範例
刪除索引。
client = SearchIndexClient(service_endpoint, AzureKeyCredential(key))
name = "hotels"
await client.delete_index(name)
await client.close()
delete_synonym_map
刪除 Azure 搜尋服務中具名的同義字對應。 若要使用存取條件,必須提供 SynonymMap 模型,而不是名稱。 它足以提供同義字對應的名稱,以無條件地刪除。
async delete_synonym_map(synonym_map: str | SynonymMap, *, match_condition: MatchConditions = MatchConditions.Unconditionally, **kwargs: Any) -> None
參數
- match_condition
- MatchConditions
要用於 etag 的比對條件
傳回
無
傳回類型
例外狀況
範例
刪除同義字對應
await client.delete_synonym_map("test-syn-map")
print("Synonym Map 'test-syn-map' deleted")
get_index
async get_index(name: str, **kwargs: Any) -> SearchIndex
參數
傳回
SearchIndex 物件
傳回類型
例外狀況
範例
取得索引。
client = SearchIndexClient(service_endpoint, AzureKeyCredential(key))
name = "hotels"
result = await client.get_index(name)
await client.close()
get_index_statistics
傳回指定索引的統計資料,包括檔計數和儲存體使用量。
async get_index_statistics(index_name: str, **kwargs: Any) -> MutableMapping[str, Any]
參數
傳回
指定索引的統計資料,包括檔計數和儲存體使用量。
傳回類型
例外狀況
get_search_client
傳回用戶端以在搜尋上執行作業。
get_search_client(index_name: str, **kwargs: Any) -> SearchClient
參數
傳回
SearchClient
傳回類型
例外狀況
get_service_statistics
取得搜尋服務的服務等級統計資料。
async get_service_statistics(**kwargs) -> MutableMapping[str, Any]
傳回
服務統計資料結果
傳回類型
例外狀況
get_synonym_map
在 Azure 搜尋服務中擷取具名同義字對應
async get_synonym_map(name: str, **kwargs: Any) -> SynonymMap
參數
傳回
擷取的同義字對應
傳回類型
例外狀況
範例
取得同義字對應
result = await 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 搜尋服務中的同義字對應名稱。
async get_synonym_map_names(**kwargs: Any) -> List[str]
傳回
同義字對應名稱的清單
傳回類型
例外狀況
get_synonym_maps
列出 Azure 搜尋服務中的同義字對應。
async get_synonym_maps(*, select: List[str] | None = None, **kwargs) -> List[SynonymMap]
參數
傳回
同義字對應清單
傳回類型
例外狀況
範例
列出同義字對應
result = await 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) -> AsyncItemPaged[str]
傳回
索引名稱的清單
傳回類型
例外狀況
list_indexes
列出 Azure 搜尋服務中的索引。
list_indexes(*, select: List[str] | None = None, **kwargs) -> AsyncItemPaged[SearchIndex]
參數
傳回
索引清單