Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Расширение Visual Studio Code для Когнитивного поиска Azure, ранее находившееся в предварительной версии, не перешло к общей доступности и теперь упразднено с 1 ноября 2022 года.
Хотя расширение больше не доступно в Azure Marketplace, код открыт по https://github.com/microsoft/vscode-azurecognitivesearchадресу. Вы можете клонировать и изменить средство для собственного использования.
Если вы используете расширение, в этой статье объясняется, как сформулировать запросы REST API интерактивно с помощью REST API Когнитивного поиска Azure.
Предпосылки
Для использования расширения требуются следующие службы и средства.
Установка расширения
См. раздел Readme на сайте Github.
Подключение к подписке
Запустите Visual Studio COde.
Выберите вход в Azure... и войдите в учетную запись Azure.
Вы должны увидеть ваши подписки. На следующем снимке экрана имя подписки — "Visual Studio Enterprise" и содержит одну службу поиска с именем azsearch-service.
Чтобы ограничить отображаемые подписки, откройте палитру команд (CTRL+SHIFT+P или CMD+SHIFT+P) и найдите Azure или выберите подписки. Существуют также команды, доступные для входа и выхода из учетной записи Azure.
При развертывании службы поиска вы увидите элементы дерева для каждого элемента Когнитивного поиска: индексы, источники данных, индексаторы, наборы навыков, карты синонимов и псевдонимы.
Эти элементы дерева можно развернуть, чтобы отобразить все ресурсы, которые у вас есть в службе поиска.
1. Создание индекса
Чтобы создать индекс, используйте REST API создания индекса.
С расширением VS Code необходимо беспокоиться только о тексте запроса. В этом кратком руководстве мы предоставляем пример определения индекса и соответствующие документы.
Определение индекса
Определение индекса ниже является примером схемы для вымышленных отелей.
Коллекция fields
определяет структуру документов в индексе поиска. Каждое поле имеет тип данных и ряд дополнительных атрибутов, определяющих способ использования поля.
{
"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"
]
}
]
}
Чтобы создать новый индекс, щелкните правой кнопкой мыши индексы и нажмите кнопку "Создать новый индекс". Появится редактор с именем, похожим на indexes-new-28c972f661.azsindex
.
Вставьте определение индекса из выше в окно. Сохраните файл и нажмите кнопку "Отправить ", когда появится запрос на обновление индекса. На этом шаге создается индекс и добавляется в представление дерева слева.
Если возникла проблема с определением индекса, появится сообщение об ошибке, аналогичное приведенному ниже.
Если возникает ошибка, устраните её и сохраните файл заново.
2. Загрузка документов
В REST API создание индекса и заполнение индекса являются отдельными шагами. В Когнитивном поиске Azure индекс содержит все данные, доступные для поиска. В этом кратком руководстве данные предоставляются в виде документов формата JSON. ДЛЯ этой задачи используется REST API добавления, обновления или удаления документов .
Чтобы добавить новые документы в индекс, выполните следующие действия.
hotels-quickstart
Разверните созданный индекс. Щелкните правой кнопкой мыши документы и выберите "Создать документ".Вы увидите редактор JSON, который вычислил схему индекса.
Вставьте JSON в текст ниже, а затем сохраните файл. Запрос запрашивает подтверждение изменений. Нажмите кнопку "Отправить ", чтобы сохранить изменения.
{ "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" } }
Повторите этот процесс для трех оставшихся документов:
Документ 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" } }
Документ 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" } }
Документ 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" } }
На этом этапе вы увидите все четыре документа, доступные в разделе документов.
3. Поиск индекса
Теперь, когда индекс содержит содержимое, можно выдавать запросы с помощью REST API документов поиска:
Щелкните правой кнопкой мыши индекс, который вы хотите просмотреть, и выберите Поиск. На этом шаге откроется редактор с именем, похожим на
sandbox-b946dcda48.azs
.Простой запрос автоматически заполняется. Нажмите клавиши CTRL+ALT+R или CMD+ALT+R , чтобы отправить запрос. Результаты отображаются в окне слева.
Примеры запросов
Выполните еще несколько примеров запросов, чтобы ознакомиться с синтаксисом. Попробуйте четыре следующих запроса, указанных ниже. В один редактор можно добавить несколько запросов. При нажатии клавиш CTRL+ALT+R или CMD+ALT+R курсор определяет, какой запрос будет отправлен.
В первом запросе мы ищем boutique
и select
только в определенных полях. Рекомендуется использовать select
только для нужных вам полей, так как извлечение ненужных данных приведет к задержкам в запросах. Запрос также устанавливает $count=true
для возврата общего количества результатов вместе с результатами поиска.
// Query example 1 - Search `boutique` with select and return count
search=boutique&$count=true&$select=HotelId,HotelName,Rating,Category
В следующем запросе укажите условие поиска wifi
, а также включите фильтр, который возвращает результаты только в том случае, если состояние равно 'FL'
. Результаты также упорядочиваются по критериям гостиницы 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
Далее поиск ограничивается одним полем, поддерживающим поиск, с помощью параметра searchFields
. Это отличный вариант, чтобы сделать запрос более эффективным, если вы знаете, что вы заинтересованы только в совпадениях в определенных полях.
// Query example 3 - Limit searchFields
search=sublime cliff&$select=HotelId,HotelName,Rating&searchFields=HotelName
Еще один распространенный параметр, включаемый в запрос, — facets
. Фасеты позволяют создавать фильтры в вашем приложении, чтобы пользователи легко знали, на какие значения они могут установить фильтрацию.
// 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
Открытие индекса на портале
Если вы хотите просмотреть службу поиска на портале, щелкните правой кнопкой мыши имя службы поиска и выберите "Открыть на портале".
Очистите ресурсы
Работая с собственной подпиской, в конце проекта полезно определить, нужны ли вам созданные ресурсы. Оставленные без присмотра ресурсы могут стоить вам денег. Вы можете удалить ресурсы по отдельности или удалить группу ресурсов, чтобы удалить весь набор ресурсов.
Ресурсы на портале можно найти и управлять ими, используя ссылку Все ресурсы или группы ресурсов на панели навигации слева.
Если вы используете бесплатную службу, помните, что вы ограничены тремя индексами, индексаторами и источниками данных. Вы можете удалить отдельные элементы на портале, чтобы остаться в пределах ограничения.
Дальнейшие действия
Теперь, когда вы знаете, как выполнять основные задачи, можно перейти к дополнительным вызовам REST API для более сложных функций, таких как индексаторы или настройка конвейера обогащения , который добавляет преобразования содержимого в индексирование. Для следующего шага мы рекомендуем использовать следующую ссылку: