Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Rozszerzenie programu Visual Studio Code dla usługi Azure Cognitive Search, wcześniej w wersji zapoznawczej, nie zostało przeniesione do ogólnej dostępności publicznej i zostało wycofane od 1 listopada 2022 r.
Mimo że rozszerzenie nie jest już dostępne w witrynie Azure Marketplace, kod jest open source pod adresem https://github.com/microsoft/vscode-azurecognitivesearch. Możesz sklonować i zmodyfikować narzędzie do własnego użycia.
Jeśli używasz rozszerzenia, w tym artykule wyjaśniono, jak interaktywnie sformułować żądania interfejsu API REST przy użyciu interfejsów API REST usługi Azure Cognitive Search.
Wymagania wstępne
Następujące usługi i narzędzia są wymagane do korzystania z rozszerzenia
Instalowanie rozszerzenia
Zobacz plik Readme w witrynie GitHub.
Połącz się z subskrypcją
Uruchom program Visual Studio COde.
Wybierz pozycję Zaloguj się do platformy Azure... i zaloguj się do swojego konta platformy Azure.
Powinny zostać wyświetlone twoje subskrypcje. Na poniższym zrzucie ekranu nazwa subskrypcji to "Visual Studio Enterprise" i zawiera jedną usługę wyszukiwania o nazwie "azsearch-service".
Aby ograniczyć wyświetlane subskrypcje, otwórz paletę poleceń (Ctrl+Shift+P lub Cmd+Shift+P) i wyszukaj pozycję Azure lub Wybierz subskrypcje. Dostępne są również polecenia służące do logowania się i wylogowania z konta platformy Azure.
Po rozwinięciu usługi wyszukiwania zobaczysz elementy drzewa dla każdego elementu usługi Cognitive Search: indeksy, źródła danych, indeksatory, zestawy umiejętności, mapy synonimów i aliasy.
Te elementy drzewa można rozszerzyć, aby wyświetlić wszystkie zasoby, które znajdują się w usłudze wyszukiwania.
1 — Tworzenie indeksu
Aby utworzyć indeks, użyj interfejsu API REST tworzenia indeksu.
Dzięki rozszerzeniu VS Code musisz się tylko skupić na treści żądania. W tym przewodniku szybkiego startu udostępniamy przykładową definicję indeksu i odpowiadające dokumenty.
Definicja indeksu
Poniższa definicja indeksu to przykładowy schemat fikcyjnych hoteli.
Kolekcja fields definiuje strukturę dokumentów w indeksie wyszukiwania. Każde pole ma typ danych i wiele dodatkowych atrybutów, które określają, jak można użyć pola.
{
"name": "hotels-quickstart",
"fields": [
{
"name": "HotelId",
"type": "Edm.String",
"key": true,
"filterable": true
},
{
"name": "HotelName",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"sortable": true,
"facetable": false
},
{
"name": "Description",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"sortable": false,
"facetable": false,
"analyzer": "en.lucene"
},
{
"name": "Description_fr",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"sortable": false,
"facetable": false,
"analyzer": "fr.lucene"
},
{
"name": "Category",
"type": "Edm.String",
"searchable": true,
"filterable": true,
"sortable": true,
"facetable": true
},
{
"name": "Tags",
"type": "Collection(Edm.String)",
"searchable": true,
"filterable": true,
"sortable": false,
"facetable": true
},
{
"name": "ParkingIncluded",
"type": "Edm.Boolean",
"filterable": true,
"sortable": true,
"facetable": true
},
{
"name": "LastRenovationDate",
"type": "Edm.DateTimeOffset",
"filterable": true,
"sortable": true,
"facetable": true
},
{
"name": "Rating",
"type": "Edm.Double",
"filterable": true,
"sortable": true,
"facetable": true
},
{
"name": "Address",
"type": "Edm.ComplexType",
"fields": [
{
"name": "StreetAddress",
"type": "Edm.String",
"filterable": false,
"sortable": false,
"facetable": false,
"searchable": true
},
{
"name": "City",
"type": "Edm.String",
"searchable": true,
"filterable": true,
"sortable": true,
"facetable": true
},
{
"name": "StateProvince",
"type": "Edm.String",
"searchable": true,
"filterable": true,
"sortable": true,
"facetable": true
},
{
"name": "PostalCode",
"type": "Edm.String",
"searchable": true,
"filterable": true,
"sortable": true,
"facetable": true
},
{
"name": "Country",
"type": "Edm.String",
"searchable": true,
"filterable": true,
"sortable": true,
"facetable": true
}
]
}
],
"suggesters": [
{
"name": "sg",
"searchMode": "analyzingInfixMatching",
"sourceFields": [
"HotelName"
]
}
]
}
Aby utworzyć nowy indeks, kliknij prawym przyciskiem myszy pozycję Indeksy , a następnie wybierz polecenie Utwórz nowy indeks. Zostanie wyświetlony edytor o nazwie podobnej do indexes-new-28c972f661.azsindex .
Wklej definicję indeksu z powyższego do okna. Zapisz plik i wybierz pozycję Przekaż po wyświetleniu monitu, jeśli chcesz zaktualizować indeks. Ten krok tworzy indeks i dodaje go do widoku drzewa po lewej stronie.
Jeśli występuje problem z definicją indeksu, powinien zostać wyświetlony komunikat o błędzie podobny do poniższego.
Jeśli wystąpi błąd, rozwiąż problem i ponownie zapisz plik.
2 — Ładowanie dokumentów
W interfejsie API REST tworzenie indeksu i wypełnianie indeksu są oddzielnymi krokami. W usłudze Azure Cognitive Search indeks zawiera wszystkie dane z możliwością wyszukiwania. W tym szybkim starcie dane są dostarczane jako dokumenty JSON. Interfejs API REST Dodawania, aktualizowania lub usuwania dokumentów jest używany do tego zadania.
Aby dodać nowe dokumenty do indeksu:
hotels-quickstartRozwiń utworzony indeks. Kliknij prawym przyciskiem myszy pozycję Dokumenty i wybierz polecenie Utwórz nowy dokument.
Powinien zostać wyświetlony edytor JSON, który wywnioskował schemat indeksu.
Wklej poniższy kod JSON, a następnie zapisz plik. Zostanie wyświetlony monit z prośbą o potwierdzenie zmian. Wybierz pozycję Przekaż , aby zapisać zmiany.
{ "HotelId": "1", "HotelName": "Secret Point Motel", "Description": "The hotel is ideally located on the main commercial artery of the city in the heart of New York. A few minutes away is Time's Square and the historic centre of the city, as well as other places of interest that make New York one of America's most attractive and cosmopolitan cities.", "Category": "Boutique", "Tags": [ "pool", "air conditioning", "concierge" ], "ParkingIncluded": false, "LastRenovationDate": "1970-01-18T00:00:00Z", "Rating": 3.60, "Address": { "StreetAddress": "677 5th Ave", "City": "New York", "StateProvince": "NY", "PostalCode": "10022", "Country": "USA" } }Powtórz ten proces dla trzech pozostałych dokumentów:
Dokument 2:
{ "HotelId": "2", "HotelName": "Twin Dome Motel", "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", "Tags": [ "pool", "free wifi", "concierge" ], "ParkingIncluded": false, "LastRenovationDate": "1979-02-18T00:00:00Z", "Rating": 3.60, "Address": { "StreetAddress": "140 University Town Center Dr", "City": "Sarasota", "StateProvince": "FL", "PostalCode": "34243", "Country": "USA" } }Dokument 3:
{ "HotelId": "3", "HotelName": "Triple 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", "Tags": [ "air conditioning", "bar", "continental breakfast" ], "ParkingIncluded": true, "LastRenovationDate": "2015-09-20T00:00:00Z", "Rating": 4.80, "Address": { "StreetAddress": "3393 Peachtree Rd", "City": "Atlanta", "StateProvince": "GA", "PostalCode": "30326", "Country": "USA" } }Dokument 4:
{ "HotelId": "4", "HotelName": "Sublime Cliff Hotel", "Description": "Sublime Cliff 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 Cliff is part of a lovingly restored 1800 palace.", "Category": "Boutique", "Tags": [ "concierge", "view", "24-hour front desk service" ], "ParkingIncluded": true, "LastRenovationDate": "1960-02-06T00:00:00Z", "Rating": 4.60, "Address": { "StreetAddress": "7400 San Pedro Ave", "City": "San Antonio", "StateProvince": "TX", "PostalCode": "78216", "Country": "USA" } }
Na tym etapie wszystkie cztery dokumenty powinny być widoczne w sekcji dokumenty.
3 — Wyszukiwanie indeksu
Teraz, gdy indeks zawiera zawartość, możesz wydać zapytania przy użyciu interfejsu API REST wyszukiwania dokumentów:
Kliknij prawym przyciskiem myszy indeks, który chcesz wyszukać, a następnie wybierz pozycję Wyszukaj. W tym kroku zostanie otwarty edytor o nazwie podobnej do
sandbox-b946dcda48.azs.
Proste zapytanie jest wypełniane automatycznie. Naciśnij Ctrl+Alt+R lub Cmd+Alt+R , aby przesłać zapytanie. Wyniki zostaną wyświetlone w oknie po lewej stronie.
Przykładowe zapytania
Wypróbuj kilka innych przykładów zapytań, aby poznać składnię. Poniżej przedstawiono cztery dodatkowe zapytania, które należy wykonać. Do tego samego edytora można dodać wiele zapytań. Po naciśnięciu Ctrl+Alt+R lub Cmd+Alt+R wiersz kursora określa, które zapytanie zostanie przesłane.
W pierwszym zapytaniu wyszukujemy tylko w niektórych polach boutique oraz select. Najlepszą praktyką jest używanie tylko select dla potrzebnych pól, ponieważ pobieranie zbędnych danych może powodować opóźnienia w zapytaniach. Zapytanie ustawia $count=true również, aby zwrócić łączną liczbę wyników z wynikami wyszukiwania.
// Query example 1 - Search `boutique` with select and return count
search=boutique&$count=true&$select=HotelId,HotelName,Rating,Category
W następnym zapytaniu określamy termin wifi wyszukiwania, a także uwzględniamy filtr, aby zwracać wyniki tylko wtedy, gdy stan jest równy 'FL'. Wyniki są również uporządkowane według hotelu Rating.
// Query example 2 - Search with filter, orderBy, select, and count
search=wifi&$filter=Address/StateProvince eq 'FL'&$select=HotelId,HotelName,Rating,Address/StateProvince&$orderby=Rating desc
Następnie wyszukiwanie jest ograniczone do pojedynczego pola z możliwością wyszukiwania przy użyciu parametru searchFields . Jest to świetna opcja, aby zapytanie było bardziej wydajne, jeśli wiesz, że interesują Cię dopasowania w poszczególnych polach.
// Query example 3 - Limit searchFields
search=sublime cliff&$select=HotelId,HotelName,Rating&searchFields=HotelName
Inną typową opcją uwzględnienia w zapytaniu jest facets. Facety umożliwiają tworzenie filtrów w aplikacji, aby użytkownicy łatwiej mogli zawęzić wartości, które chcą filtrować.
// Query example 4 - Take the top two results, and show only HotelName and Category in the results
search=*&$select=HotelId,HotelName,Rating&searchFields=HotelName&facet=Category
Otwieranie indeksu w portalu
Jeśli chcesz wyświetlić usługę wyszukiwania w portalu, kliknij prawym przyciskiem myszy nazwę usługi wyszukiwania i wybierz polecenie Otwórz w portalu.
Czyszczenie zasobów
Jeśli pracujesz we własnej subskrypcji, dobrym pomysłem na końcu projektu jest określenie, czy nadal potrzebujesz utworzonych zasobów. Zasoby pozostawione włączone mogą generować koszty. Zasoby można usunąć pojedynczo lub usunąć grupę zasobów, aby usunąć cały zestaw zasobów.
Zasoby można znaleźć w portalu i zarządzać nimi, korzystając z linku Wszystkie zasoby lub Grupy zasobów w okienku nawigacji po lewej stronie.
Jeśli używasz bezpłatnej usługi, pamiętaj, że masz ograniczenie do trzech indeksów, indeksatorów i źródeł danych. Możesz usunąć poszczególne elementy w portalu, aby pozostać w limicie.
Następne kroki
Teraz, gdy wiesz już, jak wykonywać podstawowe zadania, możesz przejść do przodu dzięki dodatkowym wywołaniom interfejsu API REST dla bardziej zaawansowanych funkcji, takich jak indeksatory lub skonfigurowanie potoku wzbogacania , który dodaje przekształcenia zawartości do indeksowania. W następnym kroku zalecamy następujący link: