Snabbstart: Vektorsökning med hjälp av REST
Lär dig hur du använder REST API:er för sökning för att skapa, läsa in och fråga vektorer i Azure AI Search.
I Azure AI Search har ett vektorlager ett indexschema som definierar vektor- och icke-vektorfält, en vektorkonfiguration för algoritmer som skapar inbäddningsutrymmet och inställningar för vektorfältdefinitioner som används i frågebegäranden. Api: et Skapa index skapar vektorarkivet.
Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
Kommentar
Den här snabbstarten utelämnar vektoriseringssteget och tillhandahåller inbäddningar i exempeldokument. Om du vill lägga till inbyggd datasegmentering och vektorisering över ditt eget innehåll kan du prova guiden Importera och vektorisera data för en genomgång från slutpunkt till slutpunkt.
Förutsättningar
Visual Studio Code med en REST-klient. Om du behöver hjälp med att komma igång kan du läsa Snabbstart: Textsökning med HJÄLP av REST.
Azure AI Search, i valfri region och på valfri nivå. Du kan använda den kostnadsfria nivån för den här snabbstarten, men Basic eller senare rekommenderas för större datafiler. Skapa eller hitta en befintlig Azure AI Search-resurs under din aktuella prenumeration.
De flesta befintliga tjänster stöder vektorsökning. För en liten delmängd av tjänster som skapades före januari 2019 misslyckas ett index som innehåller vektorfält vid skapandet. I det här fallet måste en ny tjänst skapas.
Om du vill köra frågeexemplet som anropar semantisk reranking måste söktjänsten vara basic-nivån eller högre, med semantisk rankning aktiverat.
Du kan också använda en Azure OpenAI-resurs med en distribution av
text-embedding-ada-002
. Källfilen.rest
innehåller ett valfritt steg för att generera nya textinbäddningar, men vi tillhandahåller förgenererade inbäddningar så att du kan utelämna det här beroendet.
Ladda ned filer
Ladda ned ett REST-exempel från GitHub för att skicka begäranden i den här snabbstarten. Mer information finns i Ladda ned filer från GitHub.
Du kan också starta en ny fil i det lokala systemet och skapa begäranden manuellt med hjälp av anvisningarna i den här artikeln.
Hämta en slutpunkt för söktjänsten
Du hittar slutpunkten för söktjänsten i Azure Portal.
Logga in på Azure Portal och hitta söktjänsten.
På startsidan Översikt hittar du URL:en. Här följer ett exempel på hur en slutpunkt kan se ut:
https://mydemo.search.windows.net
.
Du klistrar in den här slutpunkten i .rest
filen eller .http
i ett senare steg.
Konfigurera åtkomst
Begäranden till sökslutpunkten måste autentiseras och auktoriseras. Du kan använda API-nycklar eller roller för den här uppgiften. Nycklar är enklare att börja med, men rollerna är säkrare.
För en rollbaserad anslutning får du följande instruktioner att ansluta till Azure AI Search under din identitet, inte identiteten för en klientapp.
Alternativ 1: Använd nycklar
Välj Inställningar>Nycklar och kopiera sedan en administratörsnyckel. Administratörsnycklar används för att lägga till, ändra och ta bort objekt. Det finns två utbytbara administratörsnycklar. Kopiera någon av dem. Mer information finns i Ansluta till Azure AI Search med nyckelautentisering.
Du klistrar in den här nyckeln i .rest
filen eller .http
i ett senare steg.
Alternativ 2: Använda roller
Kontrollera att söktjänsten är konfigurerad för rollbaserad åtkomst. Du måste ha förkonfigurerade rolltilldelningar för utvecklaråtkomst. Dina rolltilldelningar måste ge behörighet att skapa, läsa in och köra frågor mot ett sökindex.
I det här avsnittet hämtar du din personliga identitetstoken med antingen Azure CLI, Azure PowerShell eller Azure Portal.
Logga in på Azure CLI.
az login
Hämta din personliga identitetstoken.
az account get-access-token --scope https://search.azure.com/.default
Du klistrar in din personliga identitetstoken i .rest
filen eller .http
i ett senare steg.
Kommentar
Det här avsnittet förutsätter att du använder en lokal klient som ansluter till Azure AI Search åt dig. En alternativ metod är att hämta en token för klientappen, förutsatt att ditt program är registrerat med Microsoft Entra-ID.
Skapa ett vektorindex
Skapa index (REST) skapar ett vektorindex och konfigurerar de fysiska datastrukturerna i söktjänsten.
Indexschemat är organiserat kring hotellinnehåll. Exempeldata består av vektor- och icke-bevektornamn och beskrivningar av sju fiktiva hotell. Det här schemat innehåller konfigurationer för vektorindexering och frågor samt för semantisk rangordning.
Öppna en ny textfil i Visual Studio Code.
Ange variabler till de värden som du samlade in tidigare. I det här exemplet används en personlig identitetstoken.
@baseUrl = PUT-YOUR-SEARCH-SERVICE-URL-HERE @token = PUT-YOUR-PERSONAL-IDENTITY-TOKEN-HERE
Spara filen med ett
.rest
filnamnstillägg eller.http
filnamnstillägg.Klistra in följande exempel för att skapa indexet för
hotels-vector-quickstart
söktjänsten.### Create a new index POST {{baseUrl}}/indexes?api-version=2023-11-01 HTTP/1.1 Content-Type: application/json Authorization: Bearer {{token}} { "name": "hotels-vector-quickstart", "fields": [ { "name": "HotelId", "type": "Edm.String", "searchable": false, "filterable": true, "retrievable": true, "sortable": false, "facetable": false, "key": true }, { "name": "HotelName", "type": "Edm.String", "searchable": true, "filterable": false, "retrievable": true, "sortable": true, "facetable": false }, { "name": "HotelNameVector", "type": "Collection(Edm.Single)", "searchable": true, "retrievable": true, "dimensions": 1536, "vectorSearchProfile": "my-vector-profile" }, { "name": "Description", "type": "Edm.String", "searchable": true, "filterable": false, "retrievable": true, "sortable": false, "facetable": false }, { "name": "DescriptionVector", "type": "Collection(Edm.Single)", "searchable": true, "retrievable": true, "dimensions": 1536, "vectorSearchProfile": "my-vector-profile" }, { "name": "Category", "type": "Edm.String", "searchable": true, "filterable": true, "retrievable": true, "sortable": true, "facetable": true }, { "name": "Tags", "type": "Collection(Edm.String)", "searchable": true, "filterable": true, "retrievable": true, "sortable": false, "facetable": true }, { "name": "Address", "type": "Edm.ComplexType", "fields": [ { "name": "City", "type": "Edm.String", "searchable": true, "filterable": true, "retrievable": true, "sortable": true, "facetable": true }, { "name": "StateProvince", "type": "Edm.String", "searchable": true, "filterable": true, "retrievable": true, "sortable": true, "facetable": true } ] }, { "name": "Location", "type": "Edm.GeographyPoint", "searchable": false, "filterable": true, "retrievable": true, "sortable": true, "facetable": false } ], "vectorSearch": { "algorithms": [ { "name": "my-hnsw-vector-config-1", "kind": "hnsw", "hnswParameters": { "m": 4, "efConstruction": 400, "efSearch": 500, "metric": "cosine" } }, { "name": "my-hnsw-vector-config-2", "kind": "hnsw", "hnswParameters": { "m": 4, "metric": "euclidean" } }, { "name": "my-eknn-vector-config", "kind": "exhaustiveKnn", "exhaustiveKnnParameters": { "metric": "cosine" } } ], "profiles": [ { "name": "my-vector-profile", "algorithm": "my-hnsw-vector-config-1" } ] }, "semantic": { "configurations": [ { "name": "my-semantic-config", "prioritizedFields": { "titleField": { "fieldName": "HotelName" }, "prioritizedContentFields": [ { "fieldName": "Description" } ], "prioritizedKeywordsFields": [ { "fieldName": "Tags" } ] } } ] } }
Välj Skicka begäran. Kom ihåg att du behöver REST-klienten för att skicka begäranden. Du bör ha ett
HTTP/1.1 201 Created
svar. Svarstexten bör innehålla JSON-representationen av indexschemat.Viktiga punkter:
- Samlingen
fields
innehåller ett obligatoriskt nyckelfält och text- och vektorfält (till exempelDescription
ochDescriptionVector
) för text- och vektorsökning. Genom att samlokalisera vektor- och icke-bevektorfält i samma index kan du använda hybridfrågor. Du kan till exempel kombinera filter, textsökning med semantisk rangordning och vektorer i en enda frågeåtgärd. - Vektorfält måste vara
type: Collection(Edm.Single)
meddimensions
ochvectorSearchProfile
egenskaper. - Avsnittet
vectorSearch
är en matris med ungefärliga konfigurationer och profiler för närliggande algoritmer. Algoritmer som stöds är hierarkisk navigeringsbar liten värld och fullständig k-närmaste granne. Mer information finns i Relevansbedömning i vektorsökning. - [Valfritt]: Konfigurationen
semantic
gör det möjligt att ändra rangordning av sökresultat. Du kan ändra rangordningen av resultat i frågor av typensemantic
för strängfält som anges i konfigurationen. Mer information finns i Översikt över semantisk rangordning.
- Samlingen
Ladda upp dokument
Att skapa och läsa in indexet är separata steg. I Azure AI Search innehåller indexet alla sökbara data och frågor som körs i söktjänsten. För REST-anrop tillhandahålls data som JSON-dokument. Använd Documents – Index REST API för den här uppgiften.
URI:n utökas till att omfatta docs
samlingen och åtgärden index
.
Viktigt!
Följande exempel är inte körbar kod. För läsbarhet exkluderade vi vektorvärden eftersom var och en innehåller 1 536 inbäddningar, vilket är för långt för den här artikeln. Om du vill prova det här steget kopierar du körbar kod från exemplet på GitHub.
### Upload documents
POST {{baseUrl}}/indexes/hotels-quickstart-vectors/docs/index?api-version=2023-11-01 HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
{
"value": [
{
"@search.action": "mergeOrUpload",
"HotelId": "1",
"HotelName": "Stay-Kay City Hotel",
"HotelNameVector": [VECTOR ARRAY OMITTED],
"Description":
"The hotel is ideally located on the main commercial artery of the city
in the heart of New York.",
"DescriptionVector": [VECTOR ARRAY OMITTED],
"Category": "Boutique",
"Tags": [
"pool",
"air conditioning",
"concierge"
],
},
{
"@search.action": "mergeOrUpload",
"HotelId": "2",
"HotelName": "Old Century Hotel",
"HotelNameVector": [VECTOR ARRAY OMITTED],
"Description":
"The hotel is situated in a nineteenth century plaza, which has been
expanded and renovated to the highest architectural standards to create a modern,
functional and first-class hotel in which art and unique historical elements
coexist with the most modern comforts.",
"DescriptionVector": [VECTOR ARRAY OMITTED],
"Category": "Boutique",
"Tags": [
"pool",
"air conditioning",
"free wifi",
"concierge"
]
},
{
"@search.action": "mergeOrUpload",
"HotelId": "3",
"HotelName": "Gastronomic Landscape Hotel",
"HotelNameVector": [VECTOR ARRAY OMITTED],
"Description":
"The Hotel stands out for its gastronomic excellence under the management of
William Dough, who advises on and oversees all of the Hotel’s restaurant services.",
"DescriptionVector": [VECTOR ARRAY OMITTED],
"Category": "Resort and Spa",
"Tags": [
"air conditioning",
"bar",
"continental breakfast"
]
}
{
"@search.action": "mergeOrUpload",
"HotelId": "4",
"HotelName": "Sublime Palace Hotel",
"HotelNameVector": [VECTOR ARRAY OMITTED],
"Description":
"Sublime Palace Hotel is located in the heart of the historic center of
Sublime in an extremely vibrant and lively area within short walking distance to
the sites and landmarks of the city and is surrounded by the extraordinary beauty
of churches, buildings, shops and monuments.
Sublime Palace is part of a lovingly restored 1800 palace.",
"DescriptionVector": [VECTOR ARRAY OMITTED],
"Category": "Boutique",
"Tags": [
"concierge",
"view",
"24-hour front desk service"
]
},
{
"@search.action": "mergeOrUpload",
"HotelId": "13",
"HotelName": "Luxury Lion Resort",
"HotelNameVector": [VECTOR ARRAY OMITTED],
"Description":
"Unmatched Luxury. Visit our downtown hotel to indulge in luxury
accommodations. Moments from the stadium, we feature the best in comfort",
"DescriptionVector": [VECTOR ARRAY OMITTED],
"Category": "Resort and Spa",
"Tags": [
"view",
"free wifi",
"pool"
]
},
{
"@search.action": "mergeOrUpload",
"HotelId": "48",
"HotelName": "Nordick's Valley Motel",
"HotelNameVector": [VECTOR ARRAY OMITTED],
"Description":
"Only 90 miles (about 2 hours) from the nation's capital and nearby
most everything the historic valley has to offer. Hiking? Wine Tasting? Exploring
the caverns? It's all nearby and we have specially priced packages to help make
our B&B your home base for fun while visiting the valley.",
"DescriptionVector": [VECTOR ARRAY OMITTED],
"Category": "Boutique",
"Tags": [
"continental breakfast",
"air conditioning",
"free wifi"
],
},
{
"@search.action": "mergeOrUpload",
"HotelId": "49",
"HotelName": "Swirling Currents Hotel",
"HotelNameVector": [VECTOR ARRAY OMITTED],
"Description":
"Spacious rooms, glamorous suites and residences, rooftop pool, walking
access to shopping, dining, entertainment and the city center.",
"DescriptionVector": [VECTOR ARRAY OMITTED],
"Category": "Luxury",
"Tags": [
"air conditioning",
"laundry service",
"24-hour front desk service"
]
}
]
}
Viktiga punkter:
- Dokument i nyttolasten består av fält som definierats i indexschemat.
- Vektorfält innehåller flyttalsvärden. Dimensionsattributet har minst 2 och högst 3 072 flyttalsvärden vardera. Den här snabbstarten anger dimensionsattributet till 1 536 eftersom det är storleken på inbäddningar som genereras av Azure OpenAI-modellen textinbäddning-ada-002 .
Köra frågor
Nu när dokument har lästs in kan du skicka vektorfrågor mot dem med hjälp av Dokument – Sök efter (REST).
Det finns flera frågor för att demonstrera olika mönster:
Vektorfrågorna i det här avsnittet baseras på två strängar:
- Söksträng:
historic hotel walk to restaurants and shopping
- Vektorfrågesträng (vektoriserad i en matematisk representation):
classic lodging near running trails, eateries, retail
Vektorfrågesträngen liknar söksträngen semantiskt, men den innehåller termer som inte finns i sökindexet. Om du gör en nyckelordssökning för classic lodging near running trails, eateries, retail
är resultatet noll. Vi använder det här exemplet för att visa hur du kan få relevanta resultat även om det inte finns några matchande termer.
Viktigt!
Följande exempel är inte körbar kod. För läsbarhet exkluderade vi vektorvärden eftersom varje matris innehåller 1 536 inbäddningar, vilket är för långt för den här artikeln. Om du vill prova dessa frågor kopierar du körbar kod från exemplet på GitHub.
Enkel vektorsökning
Klistra in en POST-begäran för att fråga sökindexet. Välj sedan Skicka begäran. URI:n utökas till att omfatta operatorn
/docs/search
.### Run a query POST {{baseUrl}}/indexes/hotels-vector-quickstart/docs/search?api-version=2023-11-01 HTTP/1.1 Content-Type: application/json Authorization: Bearer {{token}} { "count": true, "select": "HotelId, HotelName, Description, Category", "vectorQueries": [ { "vector"": [0.01944167, 0.0040178085 . . . TRIMMED FOR BREVITY 010858015, -0.017496133], "k": 7, "fields": "DescriptionVector", "kind": "vector", "exhaustive": true } ] }
Den här vektorfrågan förkortas för korthet. Innehåller
vectorQueries.vector
den vektoriserade texten i frågeindata,fields
avgör vilka vektorfält som söks ochk
anger antalet närmaste grannar som ska returneras.Vektorfrågesträngen är
classic lodging near running trails, eateries, retail
, som är vektoriserad i 1 536 inbäddningar för den här frågan.Läs svaret. Svaret för vektorekvivalenten för
classic lodging near running trails, eateries, retail
innehåller sju resultat. Varje resultat ger en sökpoäng och fälten som anges iselect
. I en likhetssökning innehållerk
svaret alltid resultat ordnade efter värdets likhetspoäng.{ "@odata.context": "https://my-demo-search.search.windows.net/indexes('hotels-vector-quickstart')/$metadata#docs(*)", "@odata.count": 7, "value": [ { "@search.score": 0.857736, "HotelName": "Nordick's Valley Motel", "Description": "Only 90 miles (about 2 hours) from the nation's capital and nearby most everything the historic valley has to offer. Hiking? Wine Tasting? Exploring the caverns? It's all nearby and we have specially priced packages to help make our B&B your home base for fun while visiting the valley." }, { "@search.score": 0.8399129, "HotelName": "Swirling Currents Hotel", "Description": "Spacious rooms, glamorous suites and residences, rooftop pool, walking access to shopping, dining, entertainment and the city center." }, { "@search.score": 0.8383954, "HotelName": "Luxury Lion Resort", "Description": "Unmatched Luxury. Visit our downtown hotel to indulge in luxury accommodations. Moments from the stadium, we feature the best in comfort" }, { "@search.score": 0.8254346, "HotelName": "Sublime Palace Hotel", "Description": "Sublime Palace Hotel is located in the heart of the historic center of Sublime in an extremely vibrant and lively area within short walking distance to the sites and landmarks of the city and is surrounded by the extraordinary beauty of churches, buildings, shops and monuments. Sublime Palace is part of a lovingly restored 1800 palace." }, { "@search.score": 0.82380056, "HotelName": "Stay-Kay City Hotel", "Description": "The hotel is ideally located on the main commercial artery of the city in the heart of New York." }, { "@search.score": 0.81514084, "HotelName": "Old Century Hotel", "Description": "The hotel is situated in a nineteenth century plaza, which has been expanded and renovated to the highest architectural standards to create a modern, functional and first-class hotel in which art and unique historical elements coexist with the most modern comforts." }, { "@search.score": 0.8133763, "HotelName": "Gastronomic Landscape Hotel", "Description": "The Hotel stands out for its gastronomic excellence under the management of William Dough, who advises on and oversees all of the Hotel’s restaurant services." } ] }
Enkel vektorsökning med filter
Du kan lägga till filter, men filtren tillämpas på icke-bevektorinnehållet i ditt index. I det här exemplet gäller filtret för fältet Tags
för att filtrera bort alla hotell som inte tillhandahåller kostnadsfritt Wi-Fi.
Klistra in en POST-begäran för att fråga sökindexet.
### Run a vector query with a filter POST {{baseUrl}}/indexes/hotels-vector-quickstart/docs/search?api-version=2023-11-01 HTTP/1.1 Content-Type: application/json Authorization: Bearer {{token}} { "count": true, "select": "HotelId, HotelName, Category, Tags, Description", "filter": "Tags/any(tag: tag eq 'free wifi')", "vectorFilterMode": "postFilter", "vectorQueries": [ { "vector": [ VECTOR OMITTED ], "k": 7, "fields": "DescriptionVector", "kind": "vector", "exhaustive": true }, ] }
Läs svaret. Frågan är densamma som i föregående exempel, men den innehåller ett exkluderingsfilter efter bearbetning och returnerar endast de tre hotell som har kostnadsfritt Wi-Fi.
{ "@odata.count": 3, "value": [ { "@search.score": 0.857736, "HotelName": "Nordick's Valley Motel", "Description": "Only 90 miles (about 2 hours) from the nation's capital and nearby most everything the historic valley has to offer. Hiking? Wine Tasting? Exploring the caverns? It's all nearby and we have specially priced packages to help make our B&B your home base for fun while visiting the valley.", "Tags": [ "continental breakfast", "air conditioning", "free wifi" ] }, { "@search.score": 0.8383954, "HotelName": "Luxury Lion Resort", "Description": "Unmatched Luxury. Visit our downtown hotel to indulge in luxury accommodations. Moments from the stadium, we feature the best in comfort", "Tags": [ "view", "free wifi", "pool" ] }, { "@search.score": 0.81514084, "HotelName": "Old Century Hotel", "Description": "The hotel is situated in a nineteenth century plaza, which has been expanded and renovated to the highest architectural standards to create a modern, functional and first-class hotel in which art and unique historical elements coexist with the most modern comforts.", "Tags": [ "pool", "free wifi", "concierge" ] } ] }
Hybridsökning
Hybridsökning består av nyckelordsfrågor och vektorfrågor i en enda sökbegäran. I det här exemplet körs vektorfrågan och fulltextsökning samtidigt:
- Söksträng:
historic hotel walk to restaurants and shopping
- Vektorfrågesträng (vektoriserad i en matematisk representation):
classic lodging near running trails, eateries, retail
Klistra in en POST-begäran för att fråga sökindexet. Välj sedan Skicka begäran.
### Run a hybrid query POST {{baseUrl}}/indexes/hotels-vector-quickstart/docs/search?api-version=2023-11-01 HTTP/1.1 Content-Type: application/json Authorization: Bearer {{token}} { "count": true, "search": "historic hotel walk to restaurants and shopping", "select": "HotelName, Description", "top": 7, "vectorQueries": [ { "vector": [ VECTOR OMITTED], "k": 7, "fields": "DescriptionVector", "kind": "vector", "exhaustive": true } ] }
Eftersom det här är en hybridfråga rangordnas resultaten efter Reciprocal Rank Fusion (RRF). RRF utvärderar sökpoäng för flera sökresultat, tar inversen och sammanfogar och sorterar sedan de kombinerade resultaten. Antalet
top
resultat returneras.Läs svaret.
{ "@odata.count": 7, "value": [ { "@search.score": 0.03279569745063782, "HotelName": "Luxury Lion Resort", "Description": "Unmatched Luxury. Visit our downtown hotel to indulge in luxury accommodations. Moments from the stadium, we feature the best in comfort" }, { "@search.score": 0.03226646035909653, "HotelName": "Sublime Palace Hotel", "Description": "Sublime Palace Hotel is located in the heart of the historic center of Sublime in an extremely vibrant and lively area within short walking distance to the sites and landmarks of the city and is surrounded by the extraordinary beauty of churches, buildings, shops and monuments. Sublime Palace is part of a lovingly restored 1800 palace." }, { "@search.score": 0.03226646035909653, "HotelName": "Swirling Currents Hotel", "Description": "Spacious rooms, glamorous suites and residences, rooftop pool, walking access to shopping, dining, entertainment and the city center." }, { "@search.score": 0.03205128386616707, "HotelName": "Nordick's Valley Motel", "Description": "Only 90 miles (about 2 hours) from the nation's capital and nearby most everything the historic valley has to offer. Hiking? Wine Tasting? Exploring the caverns? It's all nearby and we have specially priced packages to help make our B&B your home base for fun while visiting the valley." }, { "@search.score": 0.03128054738044739, "HotelName": "Gastronomic Landscape Hotel", "Description": "The Hotel stands out for its gastronomic excellence under the management of William Dough, who advises on and oversees all of the Hotel’s restaurant services." }, { "@search.score": 0.03100961446762085, "HotelName": "Old Century Hotel", "Description": "The hotel is situated in a nineteenth century plaza, which has been expanded and renovated to the highest architectural standards to create a modern, functional and first-class hotel in which art and unique historical elements coexist with the most modern comforts." }, { "@search.score": 0.03077651560306549, "HotelName": "Stay-Kay City Hotel", "Description": "The hotel is ideally located on the main commercial artery of the city in the heart of New York." } ] }
Eftersom RRF sammanfogar resultat hjälper det att granska indata. Följande resultat kommer endast från fulltextfrågan. De två främsta resultaten är Sublime Palace Hotel och History Lion Resort. Sublime Palace Hotel har en starkare BM25 relevanspoäng.
{ "@search.score": 2.2626662, "HotelName": "Sublime Palace Hotel", "Description": "Sublime Palace Hotel is located in the heart of the historic center of Sublime in an extremely vibrant and lively area within short walking distance to the sites and landmarks of the city and is surrounded by the extraordinary beauty of churches, buildings, shops and monuments. Sublime Palace is part of a lovingly restored 1800 palace." }, { "@search.score": 0.86421645, "HotelName": "Luxury Lion Resort", "Description": "Unmatched Luxury. Visit our downtown hotel to indulge in luxury accommodations. Moments from the stadium, we feature the best in comfort" },
I frågan med endast vektorer, som använder HNSW för att hitta matchningar, sjunker Sublime Palace Hotel till fjärde plats. Historic Lion, som var tvåa i fulltextsökningen och tredje i vektorsökningen, upplever inte samma fluktuationsintervall, så det visas som en toppmatchning i en homogeniserad resultatuppsättning.
"value": [ { "@search.score": 0.857736, "HotelId": "48", "HotelName": "Nordick's Valley Motel", "Description": "Only 90 miles (about 2 hours) from the nation's capital and nearby most everything the historic valley has to offer. Hiking? Wine Tasting? Exploring the caverns? It's all nearby and we have specially priced packages to help make our B&B your home base for fun while visiting the valley.", "Category": "Boutique" }, { "@search.score": 0.8399129, "HotelId": "49", "HotelName": "Swirling Currents Hotel", "Description": "Spacious rooms, glamorous suites and residences, rooftop pool, walking access to shopping, dining, entertainment and the city center.", "Category": "Luxury" }, { "@search.score": 0.8383954, "HotelId": "13", "HotelName": "Luxury Lion Resort", "Description": "Unmatched Luxury. Visit our downtown hotel to indulge in luxury accommodations. Moments from the stadium, we feature the best in comfort", "Category": "Resort and Spa" }, { "@search.score": 0.8254346, "HotelId": "4", "HotelName": "Sublime Palace Hotel", "Description": "Sublime Palace Hotel is located in the heart of the historic center of Sublime in an extremely vibrant and lively area within short walking distance to the sites and landmarks of the city and is surrounded by the extraordinary beauty of churches, buildings, shops and monuments. Sublime Palace is part of a lovingly restored 1800 palace.", "Category": "Boutique" }, { "@search.score": 0.82380056, "HotelId": "1", "HotelName": "Stay-Kay City Hotel", "Description": "The hotel is ideally located on the main commercial artery of the city in the heart of New York.", "Category": "Boutique" }, { "@search.score": 0.81514084, "HotelId": "2", "HotelName": "Old Century Hotel", "Description": "The hotel is situated in a nineteenth century plaza, which has been expanded and renovated to the highest architectural standards to create a modern, functional and first-class hotel in which art and unique historical elements coexist with the most modern comforts.", "Category": "Boutique" }, { "@search.score": 0.8133763, "HotelId": "3", "HotelName": "Gastronomic Landscape Hotel", "Description": "The Hotel stands out for its gastronomic excellence under the management of William Dough, who advises on and oversees all of the Hotel’s restaurant services.", "Category": "Resort and Spa" } ]
Semantisk hybridsökning med ett filter
Här är den sista frågan i samlingen. Den här hybridfrågan med semantisk rangordning filtreras för att endast visa hotellen inom en radie på 500 kilometer från Washington D.C. Du kan ange vectorFilterMode
null, vilket motsvarar standardvärdet (preFilter
för nyare index och postFilter
för äldre index).
Klistra in en POST-begäran för att fråga sökindexet. Välj sedan Skicka begäran.
### Run a hybrid query POST {{baseUrl}}/indexes/hotels-vector-quickstart/docs/search?api-version=2023-11-01 HTTP/1.1 Content-Type: application/json Authorization: Bearer {{token}} { "count": true, "search": "historic hotel walk to restaurants and shopping", "select": "HotelId, HotelName, Category, Description,Address/City, Address/StateProvince", "filter": "geo.distance(Location, geography'POINT(-77.03241 38.90166)') le 500", "vectorFilterMode": null, "facets": [ "Address/StateProvince"], "top": 7, "queryType": "semantic", "answers": "extractive|count-3", "captions": "extractive|highlight-true", "semanticConfiguration": "my-semantic-config", "vectorQueries": [ { "vector": [ VECTOR OMITTED ], "k": 7, "fields": "DescriptionVector", "kind": "vector", "exhaustive": true } ] }
Läs svaret. Svaret är tre hotell, som filtreras efter plats och fasetteras av
StateProvince
och semantiskt rangordnas om för att höja upp resultat som är närmast söksträngsfrågan (historic hotel walk to restaurants and shopping
).The Swirling Currents Hotel går nu in på topplaceringen. Utan semantisk ranking är Nordick's Valley Motel nummer ett. Med semantisk rankning känner maskinförståelsemodellerna igen som
historic
gäller för "hotell, inom gångavstånd till restauranger och shopping.".{ "@odata.count": 3, "@search.facets": { "Address/StateProvince": [ { "count": 1, "value": "NY" }, { "count": 1, "value": "VA" } ] }, "@search.answers": [], "value": [ { "@search.score": 0.03306011110544205, "@search.rerankerScore": 2.5094974040985107, "HotelId": "49", "HotelName": "Swirling Currents Hotel", "Description": "Spacious rooms, glamorous suites and residences, rooftop pool, walking access to shopping, dining, entertainment and the city center.", "Category": "Luxury", "Address": { "City": "Arlington", "StateProvince": "VA" } }, { "@search.score": 0.03306011110544205, "@search.rerankerScore": 2.0370211601257324, "HotelId": "48", "HotelName": "Nordick's Valley Motel", "Description": "Only 90 miles (about 2 hours) from the nation's capital and nearby most everything the historic valley has to offer. Hiking? Wine Tasting? Exploring the caverns? It's all nearby and we have specially priced packages to help make our B&B your home base for fun while visiting the valley.", "Category": "Boutique", "Address": { "City": "Washington D.C.", "StateProvince": null } }, { "@search.score": 0.032258063554763794, "@search.rerankerScore": 1.6706111431121826, "HotelId": "1", "HotelName": "Stay-Kay City Hotel", "Description": "The hotel is ideally located on the main commercial artery of the city in the heart of New York.", "Category": "Boutique", "Address": { "City": "New York", "StateProvince": "NY" } } ] }
Viktiga punkter:
- Vektorsökning anges via egenskapen
vectors.value
. Nyckelordssökning anges via egenskapensearch
. - I en hybridsökning kan du integrera vektorsökning med fulltextsökning över nyckelord. Filter, stavningskontroll och semantisk rangordning gäller endast för textinnehåll och inte vektorer. I den här sista frågan finns det ingen semantisk
answer
eftersom systemet inte har skapat en som var tillräckligt stark. - Faktiska resultat innehåller mer information, inklusive semantiska bildtexter och markeringar. Resultaten ändrades för läsbarhet. Kör begäran i REST-klienten för att få hela strukturen för svaret.
- Vektorsökning anges via egenskapen
Rensa
När du arbetar i din egen prenumeration kan det dock vara klokt att i slutet av ett projekt kontrollera om du fortfarande behöver de resurser som du skapade. Resurser som fortsätter att köras kostar pengar. Du kan ta bort enstaka resurser eller hela resursgruppen om du vill ta bort alla resurser.
Du kan hitta och hantera resurser i portalen med hjälp av länken Alla resurser eller Resursgrupper i det vänstra fönstret.
Du kan också prova det här DELETE
kommandot:
### Delete an index
DELETE {{baseUrl}}/indexes/hotels-vector-quickstart?api-version=2023-11-01 HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
Nästa steg
Som ett nästa steg rekommenderar vi att du granskar demokoden för Python, C#eller JavaScript.