Een query maken voor semantische bijschriften in Cognitive SearchCreate a query for semantic captions in Cognitive Search

Belangrijk

Semantische zoek opdracht bevindt zich in de open bare preview, die beschikbaar is via de preview-REST API en Azure Portal.Semantic search is in public preview, available through the preview REST API and Azure portal. Preview-functies worden onder aanvullende gebruiks voorwaardenaangeboden.Preview features are offered as-is, under Supplemental Terms of Use. Deze functies zijn Factureerbaar.These features are billable. Zie Beschik baarheid en prijzenvoor meer informatie.For more information, see Availability and pricing.

In dit artikel leert u hoe u een zoek opdracht kunt formuleren die gebruikmaakt van semantische classificatie en die semantische bijschriften (en eventueel semantische antwoorden) retourneert, met de nadruk op de meest relevante termen en zinsdelen.In this article, learn how to formulate a search request that uses semantic ranking and returns semantic captions (and optionally semantic answers), with highlights over the most relevant terms and phrases. Bijschriften en antwoorden worden geretourneerd in query's die zijn geformuleerd met behulp van het ' semantische-query type '.Both captions and answers are returned in queries formulated using the "semantic" query type.

Bijschriften en antwoorden worden Verbatim opgehaald uit tekst in het zoek document.Captions and answers are extracted verbatim from text in the search document. Het semantische subsysteem bepaalt welk deel van uw inhoud de kenmerken van een bijschrift of antwoord bevat, maar er worden geen nieuwe zinnen of zinsdelen samengesteld.The semantic subsystem determines what part of your content has the characteristics of a caption or answer, but it does not compose new sentences or phrases. Daarom werken inhoud met uitleg of definities het beste voor semantisch zoeken.For this reason, content that includes explanations or definitions work best for semantic search.

VereistenPrerequisites

  • Een zoek service in een Standard-laag (S1, S2, S3), die zich in een van deze regio's bevindt: Noord-Centraal VS, VS-West, VS-West 2, VS-Oost 2, Europa-noord, Europa-west.A search service at a Standard tier (S1, S2, S3), located in one of these regions: North Central US, West US, West US 2, East US 2, North Europe, West Europe. Als u een bestaande S1-of meer-service in een van deze regio's hebt, kunt u toegang aanvragen zonder dat u een nieuwe service hoeft te maken.If you have an existing S1 or greater service in one of these regions, you can request access without having to create a new service.

  • Toegang tot semantische Zoek voorbeeld: registrerenAccess to semantic search preview: sign up

  • Een bestaande zoek index die Engelse inhoud bevatAn existing search index containing English content

  • Een Search-client voor het verzenden van query'sA search client for sending queries

    De Search-client moet de preview REST-Api's voor de query aanvraag ondersteunen.The search client must support preview REST APIs on the query request. U kunt postman, Visual Studio codeof code gebruiken voor het aanroepen van de preview-api's.You can use Postman, Visual Studio Code, or code that makes REST calls to the preview APIs. U kunt ook Search Explorer in azure Portal gebruiken om een semantische query in te dienen.You can also use Search explorer in Azure portal to submit a semantic query.

  • Een query aanvraag moet de semantische optie en andere para meters bevatten die in dit artikel worden beschreven.A query request must include the semantic option and other parameters described in this article.

Wat is een semantische query?What's a semantic query?

In Cognitive Search is een query een aanvraag met para meters die de verwerking van query's en de vorm van de reactie bepaalt.In Cognitive Search, a query is a parameterized request that determines query processing and the shape of the response. Een semantische query voegt para meters toe die het semantische herstel model aanroepen dat de context en betekenis van overeenkomende resultaten kan beoordelen, meer relevante overeenkomsten voor het hoogste niveau moet verhogen en semantische antwoorden en bijschriften kan retour neren.A semantic query adds parameters that invoke the semantic reranking model that can assess the context and meaning of matching results, promote more relevant matches to the top, and return semantic answers and captions.

De volgende aanvraag is representatief voor een minimale semantische query (zonder antwoorden).The following request is representative of a minimal semantic query (without answers).

POST https://[service name].search.windows.net/indexes/[index name]/docs/search?api-version=2020-06-30-Preview      
{    
    "search": " Where was Alan Turing born?",    
    "queryType": "semantic",  
    "searchFields": "title,url,body",  
    "queryLanguage": "en-us"  
}

Net als bij alle query's in Cognitive Search streeft de aanvraag naar de verzameling documenten van een enkele index.As with all queries in Cognitive Search, the request targets the documents collection of a single index. Bovendien gaat een semantische query dezelfde volg orde van parseren, analyses, scannen en scores als een niet-semantische query.Furthermore, a semantic query undergoes the same sequence of parsing, analysis, scanning, and scoring as a non-semantic query.

Het verschil ligt in relevantie en score.The difference lies in relevance and scoring. Zoals gedefinieerd in deze preview-versie, is een semantische query waarvan de resultaten worden herstemd met behulp van een semantisch taal model, waardoor het mogelijk is om de overeenkomsten te laten lopen die het meest relevant zijn voor de semantische rangorde, in plaats van de scores die worden toegewezen door het standaard classificatie algoritme voor gelijkenis.As defined in this preview release, a semantic query is one whose results are reranked using a semantic language model, providing a way to surface the matches deemed most relevant by the semantic ranker, rather than the scores assigned by the default similarity ranking algorithm.

Alleen de Top 50 treffers van de oorspronkelijke resultaten kan semantisch worden geclassificeerd en alle ondertiteling in het antwoord worden meegenomen.Only the top 50 matches from the initial results can be semantically ranked, and all include captions in the response. Desgewenst kunt u een answer para meter opgeven voor de aanvraag om een mogelijk antwoord uit te pakken.Optionally, you can specify an answer parameter on the request to extract a potential answer. Zie voor meer informatie semantische antwoorden.For more information, see Semantic answers.

Query uitvoeren met Search ExplorerQuery with Search explorer

Search Explorer is bijgewerkt met opties voor semantische query's.Search explorer has been updated to include options for semantic queries. Deze opties worden weer gegeven in de portal na het volt ooien van de volgende stappen:These options become visible in the portal after completing the following steps:

  1. Registreren en Admittance van uw zoek service in het preview-programmaSign up and admittance of your search service into the preview program

  2. Open de portal met de volgende syntaxis: https://portal.azure.com/?feature.semanticSearch=trueOpen the portal with this syntax: https://portal.azure.com/?feature.semanticSearch=true

Query opties bevatten switches voor het inschakelen van semantische query's, searchFields en spelling correctie.Query options include switches to enable semantic queries, searchFields, and spell correction. U kunt ook de vereiste query parameters in de query teken reeks plakken.You can also paste the required query parameters into the query string.

Query opties in Search Explorer

Query uitvoeren met RESTQuery using REST

Gebruik de Zoek documenten (rest preview) om de aanvraag via een programma te formuleren.Use the Search Documents (REST preview) to formulate the request programmatically.

Een antwoord bevat bijschriften en wordt automatisch gemarkeerd.A response includes captions and highlighting automatically. Als u wilt dat het antwoord spelling correctie of antwoorden bevat, voegt u een optionele speller of answers para meter toe aan de aanvraag.If you want the response to include spelling correction or answers, add an optional speller or answers parameter on the request.

In het volgende voor beeld wordt gebruikgemaakt van de hotels-voor beeld-index voor het maken van een semantisch query verzoek met semantische antwoorden en bijschriften:The following example uses the hotels-sample-index to create a semantic query request with semantic answers and captions:

POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2020-06-30-Preview      
{
    "search": "newer hotel near the water with a great restaurant",
    "queryType": "semantic",
    "queryLanguage": "en-us",
    "searchFields": "HotelName,Category,Description",
    "speller": "lexicon",
    "answers": "extractive|count-3",
    "highlightPreTag": "<strong>",
    "highlightPostTag": "</strong>",
    "select": "HotelId,HotelName,Description,Category",
    "count": true
}

De volgende tabel bevat een overzicht van de query parameters die in een semantische query worden gebruikt, zodat u ze op een holistische manier kunt zien.The following table summarizes the query parameters used in a semantic query so that you can see them holistically. Zie zoeken naar documenten (rest preview) voor een lijst met alle para meters.For a list of all parameters, see Search Documents (REST preview)

ParameterParameter TypeType DescriptionDescription
TypequeryType TekenreeksString Geldige waarden zijn simple, Full en semantisch.Valid values include simple, full, and semantic. De waarde ' semantisch ' is vereist voor semantische query's.A value of "semantic" is required for semantic queries.
queryLanguagequeryLanguage TekenreeksString Vereist voor semantische query's.Required for semantic queries. Momenteel wordt alleen "en-US" geïmplementeerd.Currently, only "en-us" is implemented.
searchFieldssearchFields TekenreeksString Een door komma's gescheiden lijst met Doorzoek bare velden.A comma-delimited list of searchable fields. Hiermee geeft u de velden op waarover de semantische rang schikking plaatsvindt, waaruit bijschriften en antwoorden worden geëxtraheerd.Specifies the fields over which semantic ranking occurs, from which captions and answers are extracted.

In tegens telling tot eenvoudige en volledige query typen, bepaalt de volg orde waarin velden worden weer gegeven voor rang.In contrast with simple and full query types, the order in which fields are listed determines precedence. Zie stap 2: set searchFieldsvoor meer gebruiks instructies.For more usage instructions, see Step 2: Set searchFields.
spellerspeller TekenreeksString Optionele para meter, niet specifiek voor semantische query's, waarmee verkeerd gespelde termen worden gecorrigeerd voordat de zoek machine wordt bereikt.Optional parameter, not specific to semantic queries, that corrects misspelled terms before they reach the search engine. Zie spelling correctie toevoegen aan query'svoor meer informatie.For more information, see Add spell correction to queries.
beantwoordtanswers TekenreeksString Optionele para meters die aangeven of semantische antwoorden worden opgenomen in het resultaat.Optional parameters that specify whether semantic answers are included in the result. Op dit moment wordt alleen ' extra heren ' geïmplementeerd.Currently, only "extractive" is implemented. Antwoorden kunnen worden geconfigureerd om Maxi maal vijf te retour neren.Answers can be configured to return a maximum of five. De standaard waarde is één.The default is one. Dit voor beeld toont een aantal van drie antwoorden: ' extractie | count3 ' '.This example shows a count of three answers: "extractive|count3"`. Zie voor meer informatie semantische antwoorden retour neren.For more information, see Return semantic answers.

De aanvraag formulerenFormulate the request

In deze sectie worden de query parameters beschreven die nodig zijn voor semantisch zoeken.This section steps through the query parameters necessary for semantic search.

Stap 1: set query type en queryLanguageStep 1: Set queryType and queryLanguage

Voeg de volgende para meters aan de rest toe.Add the following parameters to the rest. Beide para meters zijn vereist.Both parameters are required.

"queryType": "semantic",
"queryLanguage": "en-us",

De queryLanguage moet consistent zijn met alle taal analyse functies die zijn toegewezen aan veld definities in het index schema.The queryLanguage must be consistent with any language analyzers assigned to field definitions in the index schema. Als queryLanguage "en-US" is, moeten alle taal analysen ook een Engelse variant ("en. micro soft" of "en. lucene") zijn.If queryLanguage is "en-us", then any language analyzers must also be an English variant ("en.microsoft" or "en.lucene"). Alle taal neutraal-analyse functies, zoals sleutel woord of eenvoudig, hebben geen conflict met queryLanguage-waarden.Any language-agnostic analyzers, such as keyword or simple, have no conflict with queryLanguage values.

Als u in een query aanvraag ook spelling correctiegebruikt, gelden de queryLanguage die u hebt ingesteld gelijk aan de spelling, antwoorden en bijschriften.In a query request, if you are also using spelling correction, the queryLanguage you set applies equally to speller, answers, and captions. Er zijn geen onderdrukkingen voor afzonderlijke onderdelen.There is no override for individual parts.

Terwijl inhoud in een zoek index in meerdere talen kan worden samengesteld, is de query-invoer waarschijnlijk in één taal.While content in a search index can be composed in multiple languages, the query input is most likely in one. De zoek machine controleert niet op compatibiliteit van queryLanguage, language Analyzer en de taal waarin inhoud is samengesteld. Zorg er daarom voor dat u query's moet uitvoeren om te voor komen dat er onjuiste resultaten worden geproduceerd.The search engine doesn't check for compatibility of queryLanguage, language analyzer, and the language in which content is composed, so be sure to scope queries accordingly to avoid producing incorrect results.

Stap 2: searchFields instellenStep 2: Set searchFields

De para meter searchFields wordt gebruikt om de door gang te identificeren die moet worden geëvalueerd voor ' semantische gelijkenis ' met de query.The searchFields parameter is used to identify passages to be evaluated for "semantic similarity" to the query. Voor de preview-versie raden we u aan om searchFields leeg te laten, omdat het model een hint vereist om aan te geven welke velden het belangrijkst zijn voor het proces.For the preview, we do not recommend leaving searchFields blank as the model requires a hint as to what fields are the most important to process.

De volg orde van de searchFields is kritiek.The order of the searchFields is critical. Als u searchFields al gebruikt in bestaande code voor eenvoudige of volledige lucene-query's, moet u deze para meter opnieuw bezoeken om te controleren of er een veld volgorde is wanneer u overschakelt naar een semantisch query type.If you already use searchFields in existing code for simple or full Lucene queries, revisit this parameter to check for field order when switching to a semantic query type.

Voor twee of meer searchFields:For two or more searchFields:

  • Alleen teken reeks velden en teken reeks velden op het hoogste niveau in verzamelingen bevatten.Include only string fields and top-level string fields in collections. Als u een niet-teken reeks velden of velden van het lagere niveau in een verzameling opneemt, is er geen fout, maar deze velden worden niet gebruikt in semantische volg orde.If you happen to include non-string fields or lower-level fields in a collection, there is no error, but those fields won't be used in semantic ranking.

  • Het eerste veld moet altijd beknopt zijn (zoals een titel of naam), in het ideale geval met 25 woorden.First field should always be concise (such as a title or name), ideally under 25 words.

  • Als de index een URL-veld heeft dat tekst bevat (leesbaar voor mensen zoals www.domain.com/name-of-the-document-and-other-details en niet op computer gericht www.domain.com/?id=23463&param=eis , zoals), plaatst u het in de lijst (of eerst als er geen beknopt titel veld is).If the index has a URL field that is textual (human readable such as www.domain.com/name-of-the-document-and-other-details, and not machine focused such as www.domain.com/?id=23463&param=eis), place it second in the list (or first if there is no concise title field).

  • Volg deze velden op beschrijvende velden waarin het antwoord op semantische query's kan worden gevonden, zoals de hoofd inhoud van een document.Follow those fields by descriptive fields where the answer to semantic queries may be found, such as the main content of a document.

Als er slechts één veld is opgegeven, gebruikt u een beschrijvende veld waarin het antwoord op semantische query's kan worden gevonden, zoals de hoofd inhoud van een document.If only one field specified, use a descriptive field where the answer to semantic queries may be found, such as the main content of a document.

Stap 3: orderBy-componenten verwijderenStep 3: Remove orderBy clauses

Verwijder alle orderBy-componenten, als deze in een bestaande aanvraag aanwezig zijn.Remove any orderBy clauses, if they exist in an existing request. De semantische score wordt gebruikt voor het best Ellen van resultaten en als u expliciete Sorteer logica opneemt, wordt een HTTP 400-fout geretourneerd.The semantic score is used to order results, and if you include explicit sort logic, an HTTP 400 error is returned.

Stap 4: antwoorden toevoegenStep 4: Add answers

Voeg eventueel ' antwoorden ' toe als u aanvullende verwerking wilt opnemen die een antwoord geeft.Optionally, add "answers" if you want to include additional processing that provides an answer. Antwoorden (en bijschriften) worden geëxtraheerd uit passeren die zijn gevonden in de velden in searchFields.Answers (and captions) are extracted from passages found in fields listed in searchFields. Zorg ervoor dat u in searchFields inhouds opgemaakte velden in kunt gebruiken om de beste antwoorden in een antwoord te krijgen.Be sure to include content-rich fields in searchFields to get the best answers in a response. Zie voor meer informatie semantische antwoorden retour neren.For more information, see How to return semantic answers.

Stap 5: andere para meters toevoegenStep 5: Add other parameters

Stel alle andere para meters in die u in de aanvraag wilt.Set any other parameters that you want in the request. Para meters zoals speller, Selecten Count verbeteren de kwaliteit van de aanvraag en lees baarheid van het antwoord.Parameters such as speller, select, and count improve the quality of the request and readability of the response.

Desgewenst kunt u de markerings stijl aanpassen die wordt toegepast op bijschriften.Optionally, you can customize the highlight style applied to captions. Met bijschriften past u de markerings opmaak toe op de sleutel door gang in het document waarin het antwoord wordt samenvatten.Captions apply highlight formatting over key passages in the document that summarize the response. De standaardwaarde is <em>.The default is <em>. Als u het type opmaak (bijvoorbeeld gele achtergrond) wilt opgeven, kunt u de highlightPreTag en highlightPostTag instellen.If you want to specify the type of formatting (for example, yellow background), you can set the highlightPreTag and highlightPostTag.

Het antwoord evaluerenEvaluate the response

Net als bij alle query's bestaat een antwoord uit alle velden die zijn gemarkeerd als ophaalbaar, of alleen de velden die worden vermeld in de Select-para meter.As with all queries, a response is composed of all fields marked as retrievable, or just those fields listed in the select parameter. Het bevat de oorspronkelijke relevantie score en kan ook een aantal of batch resultaten bevatten, afhankelijk van hoe u de aanvraag hebt opgesteld.It includes the original relevance score, and might also include a count, or batched results, depending on how you formulated the request.

In een semantische query heeft het antwoord extra elementen: een nieuwe semantisch geclassificeerde relevantie score, bijschriften in tekst zonder opmaak en met hooglichten, en optioneel een antwoord.In a semantic query, the response has additional elements: a new semantically ranked relevance score, captions in plain text and with highlights, and optionally an answer.

In een client-app kunt u de zoek pagina zodanig structureren dat een bijschrift wordt toegevoegd als de beschrijving van de overeenkomst, in plaats van de volledige inhoud van een specifiek veld.In a client app, you can structure the search page to include a caption as the description of the match, rather than the entire contents of a specific field. Dit is handig als afzonderlijke velden te dicht bij de pagina met zoek resultaten zijn.This is useful when individual fields are too dense for the search results page.

Het antwoord voor de bovenstaande voorbeeld query retourneert de volgende overeenkomst als de eerste verzameling.The response for the above example query returns the following match as the top pick. Bijschriften worden automatisch geretourneerd, met tekst zonder opmaak en gemarkeerde versies.Captions are returned automatically, with plain text and highlighted versions. Antwoorden worden uit het voor beeld wegge laten omdat er geen kan worden vastgesteld voor deze specifieke query en verzameling.Answers are omitted from the example because one could not be determined for this particular query and corpus.

"@odata.count": 35,
"@search.answers": [],
"value": [
    {
        "@search.score": 1.8810667,
        "@search.rerankerScore": 1.1446577133610845,
        "@search.captions": [
            {
                "text": "Oceanside Resort. Luxury. New Luxury Hotel. Be the first to stay. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
                "highlights": "<strong>Oceanside Resort.</strong> Luxury. New Luxury Hotel. Be the first to stay.<strong> Bay</strong> views from every room, location near the pier, rooftop pool, waterfront dining & more."
            }
        ],
        "HotelName": "Oceanside Resort",
        "Description": "New Luxury Hotel. Be the first to stay. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
        "Category": "Luxury"
    },

Volgende stappenNext steps

Stel in dat semantische classificatie en reacties worden gebaseerd op een eerste resultatenset.Recall that semantic ranking and responses are built over an initial result set. Elke logica waarmee de kwaliteit van de oorspronkelijke resultaten wordt verbeterd, wordt getransporteerd naar semantisch zoeken.Any logic that improves the quality of the initial results will carry forward to semantic search. Als volgende stap bekijkt u de functies die bijdragen aan de oorspronkelijke resultaten, waaronder analyserende onderdelen die van invloed zijn op hoe teken reeksen worden getokend, Score profielen die resultaten kunnen afstemmen en het standaard relevantie algoritme.As a next step, review the features that contribute to initial results, including analyzers that affect how strings are tokenized, scoring profiles that can tune results, and the default relevance algorithm.