SearchClient Klass
En klient för att interagera med ett befintligt Azure Search-index.
- Arv
-
azure.search.documents._headers_mixin.HeadersMixinSearchClient
Konstruktor
SearchClient(endpoint: str, index_name: str, credential: AzureKeyCredential | TokenCredential, **kwargs: Any)
Parametrar
- credential
- AzureKeyCredential eller TokenCredential
En autentiseringsuppgift för att auktorisera sökklientbegäranden
- api_version
- str
Den Search API-version som ska användas för begäranden.
- audience
- str
anger vilken målgrupp som ska användas för autentisering med Azure Active Directory (AAD). Målgruppen beaktas inte när du använder en delad nyckel. Om målgruppen inte tillhandahålls antas målgruppen för det offentliga molnet.
Exempel
Skapa SearchClient med en API-nyckel.
from azure.core.credentials import AzureKeyCredential
from azure.search.documents import SearchClient
service_endpoint = os.environ["AZURE_SEARCH_SERVICE_ENDPOINT"]
index_name = os.environ["AZURE_SEARCH_INDEX_NAME"]
key = os.environ["AZURE_SEARCH_API_KEY"]
search_client = SearchClient(service_endpoint, index_name, AzureKeyCredential(key))
Metoder
autocomplete |
Hämta resultat för automatisk slutförande av sökning från Azure Search-indexet. samling som ingår i indexdefinitionen. :nyckelordsläge: Anger läget för Komplettera automatiskt. Standardvärdet är "oneTerm". Användning "twoTerms" för att få bältros och "oneTermWithContext" för att använda den aktuella kontexten medan de skapar automatiskt slutförda termer. Möjliga värden är: "oneTerm", "twoTerms", "oneTermWithContext". |
close |
SearchClient Stäng sessionen. |
delete_documents |
Ta bort dokument från Azure Search-indexet Ta bort tar bort det angivna dokumentet från indexet. Alla fält som du anger i en borttagningsåtgärd, förutom nyckelfältet, ignoreras. Om du vill ta bort ett enskilt fält från ett dokument använder du merge_documents i stället och anger fältet uttryckligen till Ingen. Borttagningsåtgärder är idempotenta. Det innebär att även om det inte finns någon dokumentnyckel i indexet resulterar ett borttagningsförsök med nyckeln i en statuskod på 200. |
get_document |
Hämta ett dokument från Azure Search-indexet med dess nyckel. |
get_document_count |
Returnera antalet dokument i Azure Search-indexet. |
index_documents |
Ange en dokumentåtgärd som ska utföras som en batch. :Höjer RequestEntityTooLargeError |
merge_documents |
Koppla dokument till befintliga dokument i Azure Search-indexet. Sammanfoga uppdaterar ett befintligt dokument med de angivna fälten. Om dokumentet inte finns misslyckas kopplingen. Alla fält som du anger i en sammanfogning ersätter det befintliga fältet i dokumentet. Detta gäller även för samlingar av primitiva och komplexa typer. |
merge_or_upload_documents |
Koppla dokument till befintliga dokument i Azure Search-indexet eller ladda upp dem om de inte finns ännu. Den här åtgärden fungerar som merge_documents om det redan finns ett dokument med den angivna nyckeln i indexet. Om dokumentet inte finns fungerar det som upload_documents med ett nytt dokument. |
search |
Sök efter dokument i Azure Search-indexet. |
suggest |
Hämta sökresultat från Azure Search-indexet. och högst 100 tecken. :p aram str suggester_name: Krävs. Namnet på förslagstagaren enligt beskrivningen i den förslagssamling som ingår i indexdefinitionen. :keyword str filter: Ett OData-uttryck som filtrerar de dokument som övervägs för förslag. :keyword bool use_fuzzy_matching: Ett värde som anger om fuzzy-matchning ska användas för förslagen Fråga. Standardvärdet är false. När värdet är true hittar frågan termer även om det finns ett ersatt eller saknat tecken i söktexten. Även om detta ger en bättre upplevelse i vissa scenarier, innebär det en prestandakostnad eftersom fuzzy-förslagsfrågor är långsammare och förbrukar mer resurser. |
upload_documents |
Ladda upp dokument till Azure Search-indexet. En uppladdningsåtgärd liknar en "upsert" där dokumentet infogas om det är nytt och uppdateras/ersätts om det finns. Alla fält ersätts i uppdateringsfallet. |
autocomplete
Hämta resultat för automatisk slutförande av sökning från Azure Search-indexet.
samling som ingår i indexdefinitionen. :nyckelordsläge: Anger läget för Komplettera automatiskt. Standardvärdet är "oneTerm". Användning
"twoTerms" för att få bältros och "oneTermWithContext" för att använda den aktuella kontexten medan de skapar automatiskt slutförda termer. Möjliga värden är: "oneTerm", "twoTerms", "oneTermWithContext".
autocomplete(search_text: str, suggester_name: str, *, mode: str | AutocompleteMode | None = None, use_fuzzy_matching: bool | None = None, highlight_post_tag: str | None = None, highlight_pre_tag: str | None = None, minimum_coverage: float | None = None, search_fields: List[str] | None = None, top: int | None = None, **kwargs) -> List[Dict]
Parametrar
- filter
- str
Ett OData-uttryck som filtrerar de dokument som används för att skapa slutförda termer för resultatet Komplettera automatiskt.
- use_fuzzy_matching
- bool
Ett värde som anger om fuzzy-matchning ska användas för den automatiska kompletteringsfrågan. Standardvärdet är false. När värdet är true hittar frågan termer även om det finns ett ersatt eller saknat tecken i söktexten. Detta ger en bättre upplevelse i vissa scenarier, men det medför en prestandakostnad eftersom fuzzy autocomplete-frågor är långsammare och förbrukar fler resurser.
- highlight_post_tag
- str
En strängtagg som läggs till för att träffa höjdpunkter. Måste anges med highlightPreTag. Om det utelämnas inaktiveras träffmarkeringen.
- highlight_pre_tag
- str
En strängtagg som förbereds för att träffa höjdpunkter. Måste anges med highlightPostTag. Om det utelämnas inaktiveras träffmarkeringen.
- minimum_coverage
- float
Ett tal mellan 0 och 100 som anger procentandelen av indexet som måste omfattas av en automatisk kompletteringsfråga för att frågan ska rapporteras som lyckad. Den här parametern kan vara användbar för att säkerställa söktillgänglighet även för tjänster med endast en replik. Standardvärdet är 80.
Listan över fältnamn att tänka på när du frågar efter automatiskt slutförda termer. Målfält måste inkluderas i den angivna förslagsspelaren.
- top
- int
Antalet automatiskt slutförda termer som ska hämtas. Detta måste vara ett värde mellan 1 och 100. Standardvärdet är 5.
Returtyp
Exempel
Få en automatisk komplettering.
from azure.core.credentials import AzureKeyCredential
from azure.search.documents import SearchClient
search_client = SearchClient(service_endpoint, index_name, AzureKeyCredential(key))
results = search_client.autocomplete(search_text="bo", suggester_name="sg")
print("Autocomplete suggestions for 'bo'")
for result in results:
print(" Completion: {}".format(result["text"]))
close
SearchClient Stäng sessionen.
close() -> None
delete_documents
Ta bort dokument från Azure Search-indexet
Ta bort tar bort det angivna dokumentet från indexet. Alla fält som du anger i en borttagningsåtgärd, förutom nyckelfältet, ignoreras. Om du vill ta bort ett enskilt fält från ett dokument använder du merge_documents i stället och anger fältet uttryckligen till Ingen.
Borttagningsåtgärder är idempotenta. Det innebär att även om det inte finns någon dokumentnyckel i indexet resulterar ett borttagningsförsök med nyckeln i en statuskod på 200.
delete_documents(documents: List[Dict], **kwargs: Any) -> List[IndexingResult]
Parametrar
Returer
Lista över IndexingResult
Returtyp
Exempel
Ta bort befintliga dokument till ett index
result = search_client.delete_documents(documents=[{"hotelId": "1000"}])
print("Delete new document succeeded: {}".format(result[0].succeeded))
get_document
Hämta ett dokument från Azure Search-indexet med dess nyckel.
get_document(key: str, selected_fields: List[str] | None = None, **kwargs: Any) -> Dict
Parametrar
Returer
Dokumentet som lagras i Azure Search-indexet
Returtyp
Exempel
Hämta ett specifikt dokument från sökindexet.
from azure.core.credentials import AzureKeyCredential
from azure.search.documents import SearchClient
search_client = SearchClient(service_endpoint, index_name, AzureKeyCredential(key))
result = search_client.get_document(key="23")
print("Details for hotel '23' are:")
print(" Name: {}".format(result["hotelName"]))
print(" Rating: {}".format(result["rating"]))
print(" Category: {}".format(result["category"]))
get_document_count
Returnera antalet dokument i Azure Search-indexet.
get_document_count(**kwargs: Any) -> int
Returer
Antalet dokument i indexet
Returtyp
index_documents
Ange en dokumentåtgärd som ska utföras som en batch.
:Höjer RequestEntityTooLargeError
index_documents(batch: IndexDocumentsBatch, **kwargs: Any) -> List[IndexingResult]
Parametrar
Returer
Lista över IndexingResult
Returtyp
merge_documents
Koppla dokument till befintliga dokument i Azure Search-indexet.
Sammanfoga uppdaterar ett befintligt dokument med de angivna fälten. Om dokumentet inte finns misslyckas kopplingen. Alla fält som du anger i en sammanfogning ersätter det befintliga fältet i dokumentet. Detta gäller även för samlingar av primitiva och komplexa typer.
merge_documents(documents: List[Dict], **kwargs: Any) -> List[IndexingResult]
Parametrar
Returer
Lista över IndexingResult
Returtyp
Exempel
Sammanfoga fält i befintliga dokument till ett index
result = search_client.merge_documents(documents=[{"hotelId": "1000", "rating": 4.5}])
print("Merge into new document succeeded: {}".format(result[0].succeeded))
merge_or_upload_documents
Koppla dokument till befintliga dokument i Azure Search-indexet eller ladda upp dem om de inte finns ännu.
Den här åtgärden fungerar som merge_documents om det redan finns ett dokument med den angivna nyckeln i indexet. Om dokumentet inte finns fungerar det som upload_documents med ett nytt dokument.
merge_or_upload_documents(documents: List[Dict], **kwargs: Any) -> List[IndexingResult]
Parametrar
Returer
Lista över IndexingResult
Returtyp
search
Sök efter dokument i Azure Search-indexet.
search(search_text: str | None = None, *, include_total_count: bool | None = None, facets: List[str] | None = None, filter: str | None = None, highlight_fields: str | None = None, highlight_post_tag: str | None = None, highlight_pre_tag: str | None = None, minimum_coverage: float | None = None, order_by: List[str] | None = None, query_type: str | QueryType | None = None, scoring_parameters: List[str] | None = None, scoring_profile: str | None = None, search_fields: List[str] | None = None, search_mode: str | SearchMode | None = None, query_answer: str | QueryAnswerType | None = None, query_answer_count: int | None = None, query_answer_threshold: float | None = None, query_caption: str | QueryCaptionType | None = None, query_caption_highlight_enabled: bool | None = None, semantic_configuration_name: str | None = None, select: List[str] | None = None, skip: int | None = None, top: int | None = None, scoring_statistics: str | ScoringStatistics | None = None, session_id: str | None = None, vector_queries: List[VectorQuery] | None = None, vector_filter_mode: str | VectorFilterMode | None = None, semantic_error_mode: str | SemanticErrorMode | None = None, semantic_max_wait_in_milliseconds: int | None = None, **kwargs: Any) -> SearchItemPaged[Dict]
Parametrar
- search_text
- str
Ett frågeuttryck för fulltextsökning; Använd "*" eller utelämna den här parametern för att matcha alla dokument.
- include_total_count
- bool
Ett värde som anger om det totala antalet resultat ska hämtas. Standardvärdet är false. Att ange det här värdet till true kan ha en prestandapåverkan. Observera att det antal som returneras är en uppskattning.
Listan över fasetteringsuttryck som ska tillämpas på sökfrågan. Varje fasetteringsuttryck innehåller ett fältnamn, eventuellt följt av en kommaavgränsad lista med namn:värdepar.
- filter
- str
OData-$filter uttryck som ska tillämpas på sökfrågan.
- highlight_fields
- str
Den kommaavgränsade listan med fältnamn som ska användas för träffhöjdpunkter. Endast sökbara fält kan användas för träffmarkering.
- highlight_post_tag
- str
En strängtagg som läggs till för att träffa höjdpunkter. Måste anges med highlightPreTag. Standardvärdet är .
- highlight_pre_tag
- str
En strängtagg som förbereds för att träffa höjdpunkter. Måste anges med highlightPostTag. Standardvärdet är .
- minimum_coverage
- float
Ett tal mellan 0 och 100 som anger procentandelen av indexet som måste täckas av en sökfråga för att frågan ska rapporteras som lyckad. Den här parametern kan vara användbar för att säkerställa söktillgänglighet även för tjänster med endast en replik. Standardvärdet är 100.
Listan över OData-$orderby uttryck som resultatet ska sorteras efter. Varje uttryck kan vara antingen ett fältnamn eller ett anrop till funktionerna geo.distance() eller search.score(). Varje uttryck kan följas av asc för att indikera stigande och desc för att indikera fallande. Standardvärdet är stigande ordning. Oavgjort kommer att brytas av matchningspoängen för dokument. Om ingen OrderBy anges är standardsorteringsordningen fallande efter dokumentmatchningspoäng. Det kan finnas högst 32 $orderby-satser.
Ett värde som anger syntaxen för sökfrågan. Standardvärdet är "enkelt". Använd "full" om frågan använder Lucene-frågesyntaxen. Möjliga värden är: 'simple', 'full', "semantic".
Listan över parametervärden som ska användas i bedömningsfunktioner (till exempel referencePointParameter) med formatet name-values. Om bedömningsprofilen till exempel definierar en funktion med parametern "mylocation" skulle parametersträngen vara "mylocation–122.2,44.8" (utan citattecken).
- scoring_profile
- str
Namnet på en bedömningsprofil för att utvärdera matchningspoäng för matchande dokument för att sortera resultaten.
Listan över fältnamn som fulltextsökningen ska omfångsbegränsas till. När du använder fältsökning (fieldName:searchExpression) i en fullständig Lucene-fråga har fältnamnen för varje fältsökuttryck företräde framför alla fältnamn som anges i den här parametern.
- search_mode
- str eller SearchMode
Ett värde som anger om några eller alla söktermer måste matchas för att kunna räkna dokumentet som en matchning. Möjliga värden är: "any", "all".
- query_answer
- str eller QueryAnswerType
Den här parametern är endast giltig om frågetypen är "semantisk". Om den anges returnerar frågan svar som extraherats från nyckelavsnitt i de högst rankade dokumenten. Möjliga värden är: "none", "extractive".
- query_answer_count
- int
Den här parametern är endast giltig om frågetypen är "semantisk" och frågesvaret är "extractive". Konfigurerar antalet svar som returneras. Standardantalet är 1.
- query_answer_threshold
- float
Den här parametern är endast giltig om frågetypen är "semantisk" och frågesvaret är "extractive". Konfigurerar tröskelvärdet för antal konfidens. Standardantalet är 0,7.
- query_caption
- str eller QueryCaptionType
Den här parametern är endast giltig om frågetypen är "semantisk". Om den anges returnerar frågan undertexter som extraherats från nyckelpassagen i de högst rankade dokumenten. Standardvärdet är "Ingen". Möjliga värden är: "none", "extractive".
- query_caption_highlight_enabled
- bool
Den här parametern är endast giltig om frågetypen är "semantisk" när frågan bildtext är inställd på "extractive". Avgör om markering är aktiverat. Standardvärdet är "true".
- semantic_configuration_name
- str
Namnet på den semantiska konfiguration som ska användas vid bearbetning av dokument för frågor av typen semantik.
Listan över fält som ska hämtas. Om det inte anges inkluderas alla fält som markerats som hämtningsbara i schemat.
- skip
- int
Antalet sökresultat att hoppa över. Det här värdet får inte vara större än 100 000. Om du behöver skanna dokument i följd, men inte kan använda $skip på grund av den här begränsningen, bör du överväga att använda $orderby på en helt ordnad nyckel och $filter med en intervallfråga i stället.
- top
- int
Antalet sökresultat som ska hämtas. Detta kan användas tillsammans med $skip för att implementera sidindelning på klientsidan av sökresultat. Om resultaten trunkeras på grund av sidindelning på serversidan innehåller svaret en fortsättningstoken som kan användas för att utfärda en annan sökbegäran för nästa sida med resultat.
- scoring_statistics
- str eller ScoringStatistics
Ett värde som anger om vi vill beräkna bedömningsstatistik (till exempel dokumentfrekvens) globalt för mer konsekvent bedömning eller lokalt för kortare svarstider. Standardvärdet är "lokal". Använd "global" för att aggregera bedömningsstatistik globalt före bedömning. Användning av global bedömningsstatistik kan öka svarstiden för sökfrågor. Möjliga värden är: "local", "global".
- session_id
- str
Ett värde som ska användas för att skapa en fäst session, vilket kan hjälpa dig att få mer konsekventa resultat. Så länge samma sessionId används görs ett bästa försök att rikta in sig på samma replikuppsättning. Var försiktig så att återanvändning av samma sessionID-värden upprepade gånger kan störa belastningsutjämningen av begäranden mellan repliker och negativt påverka söktjänstens prestanda. Värdet som används som sessionId kan inte börja med ett _-tecken.
- semantic_error_mode
- str eller SemanticErrorMode
Gör att användaren kan välja om ett semantiskt anrop ska misslyckas helt (standard/aktuellt beteende) eller att returnera partiella resultat. Kända värden är: "partial" och "fail".
- semantic_max_wait_in_milliseconds
- int
Tillåter att användaren anger en övre gräns för hur lång tid det tar för semantisk berikning att slutföra bearbetningen innan begäran misslyckas.
- vector_queries
- list[VectorQuery]
Frågeparametrarna för vektor- och hybridsökfrågor.
- vector_filter_mode
- str eller VectorFilterMode
Avgör om filter tillämpas före eller efter att vektorsökningen utförs. Standardvärdet är "preFilter". Kända värden är: "postFilter" och "preFilter".
Returtyp
Exempel
Hämta sökresultatfasetter.
from azure.core.credentials import AzureKeyCredential
from azure.search.documents import SearchClient
search_client = SearchClient(service_endpoint, index_name, AzureKeyCredential(key))
results = search_client.search(search_text="WiFi", facets=["category,count:3", "parkingIncluded"])
facets: Dict[str, List[str]] = cast(Dict[str, List[str]], results.get_facets())
print("Catgory facet counts for hotels:")
for facet in facets["category"]:
print(" {}".format(facet))
suggest
Hämta sökresultat från Azure Search-indexet.
och högst 100 tecken. :p aram str suggester_name: Krävs. Namnet på förslagstagaren enligt beskrivningen i den förslagssamling som ingår i indexdefinitionen. :keyword str filter: Ett OData-uttryck som filtrerar de dokument som övervägs för förslag. :keyword bool use_fuzzy_matching: Ett värde som anger om fuzzy-matchning ska användas för förslagen
Fråga. Standardvärdet är false. När värdet är true hittar frågan termer även om det finns ett ersatt eller saknat tecken i söktexten. Även om detta ger en bättre upplevelse i vissa scenarier, innebär det en prestandakostnad eftersom fuzzy-förslagsfrågor är långsammare och förbrukar mer resurser.
suggest(search_text: str, suggester_name: str, *, use_fuzzy_matching: bool | None = None, highlight_post_tag: str | None = None, highlight_pre_tag: str | None = None, minimum_coverage: float | None = None, order_by: List[str] | None = None, search_fields: List[str] | None = None, select: List[str] | None = None, top: int | None = None, **kwargs) -> List[Dict]
Parametrar
- highlight_post_tag
- str
En strängtagg som läggs till för att träffa höjdpunkter. Måste anges med highlightPreTag. Om det utelämnas inaktiveras markering av förslag.
- highlight_pre_tag
- str
En strängtagg som förbereds för att träffa höjdpunkter. Måste anges med highlightPostTag. Om det utelämnas inaktiveras markering av förslag.
- minimum_coverage
- float
Ett tal mellan 0 och 100 som anger procentandelen av indexet som måste omfattas av en förslagsfråga för att frågan ska rapporteras som lyckad. Den här parametern kan vara användbar för att säkerställa söktillgänglighet även för tjänster med endast en replik. Standardvärdet är 80.
Listan över OData-$orderby uttryck som resultatet ska sorteras efter. Varje uttryck kan vara antingen ett fältnamn eller ett anrop till funktionerna geo.distance() eller search.score(). Varje uttryck kan följas av asc för att indikera stigande eller desc för att indikera fallande. Standardvärdet är stigande ordning. Oavgjort kommer att brytas av matchningspoängen för dokument. Om ingen $orderby anges är standardsorteringsordningen fallande efter dokumentmatchningspoäng. Det kan finnas högst 32 $orderby-satser.
Listan över fältnamn som ska söka efter den angivna söktexten. Målfält måste inkluderas i den angivna förslagsspelaren.
Listan över fält som ska hämtas. Om det är ospecificerat inkluderas endast nyckelfältet i resultaten.
- top
- int
Antalet förslag som ska hämtas. Värdet måste vara ett tal mellan 1 och 100. Standardvärdet är 5.
Returer
Lista över dokument.
Returtyp
Exempel
Hämta sökförslag.
from azure.core.credentials import AzureKeyCredential
from azure.search.documents import SearchClient
search_client = SearchClient(service_endpoint, index_name, AzureKeyCredential(key))
results = search_client.suggest(search_text="coffee", suggester_name="sg")
print("Search suggestions for 'coffee'")
for result in results:
hotel = search_client.get_document(key=result["hotelId"])
print(" Text: {} for Hotel: {}".format(repr(result["text"]), hotel["hotelName"]))
upload_documents
Ladda upp dokument till Azure Search-indexet.
En uppladdningsåtgärd liknar en "upsert" där dokumentet infogas om det är nytt och uppdateras/ersätts om det finns. Alla fält ersätts i uppdateringsfallet.
upload_documents(documents: List[Dict], **kwargs: Any) -> List[IndexingResult]
Parametrar
Returer
Lista över IndexingResult
Returtyp
Exempel
Ladda upp nya dokument till ett index
DOCUMENT = {
"category": "Hotel",
"hotelId": "1000",
"rating": 4.0,
"rooms": [],
"hotelName": "Azure Inn",
}
result = search_client.upload_documents(documents=[DOCUMENT])
print("Upload of new document succeeded: {}".format(result[0].succeeded))
Azure SDK for Python
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för