Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.
Служба "Поиск ИИ Azure" поддерживает конструкции запросов для широкого спектра сценариев, от поиска текста в свободной форме до строго указанных шаблонов запросов до векторного поиска. Все запросы выполняются с использованием индекса поиска, в котором хранится содержимое, доступное для поиска.
Типы запросов
| Форма запроса | Содержимое, доступные для поиска | Описание |
|---|---|---|
| Полнотекстовый поиск | Инвертированные индексы маркеризованных терминов. | Полнотекстовые запросы выполняются по инвертированным индексам, структурированным для быстрого сканирования, при котором совпадение потенциально может быть найдено в любом поле среди любого числа поисковых документов. Текст анализируется и маркерируется для полнотекстового поиска. |
| Векторный поиск | Векторные индексы созданных внедренных объектов. | Векторные запросы выполняют итерацию по полям векторов в индексе поиска. |
| Гибридный поиск | Всё вышеперечисленное в одном поисковом индексе. | Объединяет текстовый поиск и векторный поиск в одном запросе. Текстовый поиск работает с содержимым в виде обычного текста в доступных для поиска полях. Фильтры применяются к полям, которые можно фильтровать. Поиск векторов работает с полями векторов. |
| Агентивное извлечение (предварительная версия) | Всё перечисленное выше в одном поисковом индексе. | Это альтернативный путь извлечения в поиске ИИ Azure, который использует большие языковые модели для планирования запросов. Ответ предназначен для использования агентом, где агент, а не код клиента поискового приложения, координирует передачу ответа пользователю. |
| Другие | Обычный текст и содержимое, доступное для чтения человеком. | Необработанное содержимое, извлеченное из исходных документов, поддерживающее фильтры и запросы сопоставления с шаблоном, такие как геопространственный поиск, нечеткий поиск и поиск по полю. |
Оставшаяся часть этой статьи сосредотачивается на последней категории: классических запросах, которые работают с простым текстом и читаемым человеком содержимым, извлеченным в неизменном виде из исходного источника и используемым для фильтров и других специализированных форм запросов. Если вы создаете традиционное приложение поиска, которое не использует ИИ, в этом разделе описываются методы запросов, которые можно реализовать в клиентском коде.
Автозавершение и предлагаемые запросы
Автозавершение и предлагаемые варианты — это альтернативы операции search, которые запускают последовательные запросы, основанные на частично введенных строках (после каждого нового символа), обеспечивая поиск в процессе ввода. Вы можете использовать параметры autocomplete и suggestions вместе или отдельно, как описано в этом пошаговом руководстве, но вы не можете использовать их с search. Как завершаемые термины, так и предлагаемые запросы извлекаются из содержимого индекса. Механизм никогда не возвращает строку или предложение, которого нет в индексе. Дополнительные сведения см. в разделах Автозавершение (REST API) и Предложения (REST API).
Поиск по фильтру
Фильтры широко используются в приложениях, основанных на поиске ИИ Azure. На страницах приложений фильтры часто визуально представлены, как аспекты в структурах навигации по ссылкам, что позволяет реализовать управляемую пользователем фильтрацию. Фильтры также используются внутри системы для отображения срезов индексированного содержимого. Например, можно инициализировать страницу поиска с помощью фильтра, установленного на определенную категорию продуктов, или фильтра по языку, если индекс содержит поля как на английском, так и на французском языках.
Также фильтры могут потребоваться для вызова специализированных форм запросов, как описано в следующей таблице. Фильтр можно использовать с неуказанным поиском (search=*) или со строкой запроса, которая включает термины, фразы, операторы и шаблоны.
| Сценарий применения фильтра | Описание |
|---|---|
| Фильтры диапазонов | В Поиск с использованием ИИ Azure запросы диапазона создаются с помощью filter параметра. Дополнительные сведения и примеры см. в разделе Пример фильтра по диапазону. |
| Фасетная навигация | В фасетном дереве навигации пользователи могут выбирать аспекты. При поддержке фильтров результаты поиска сужаются при каждом щелчке. Каждый аспект поддерживается фильтром, который исключает документы, которые больше не соответствуют критериям, предоставленным аспектом. |
Примечание.
Текст, используемый в критерии фильтра, не анализируется в ходе обработки запроса. Предполагается, что введенный текст является дословным шаблоном с учетом регистра, состоящим из символов, проверка на совпадение которого проходит либо успешно, либо неудачно. Критерии фильтров создаются с применением синтаксиса OData и передаются в параметр filter во всех полях с атрибутом filterable (допускает фильтрацию) в индексе. Дополнительные сведения см. в статье «Фильтры в Поиск с использованием ИИ Azure».
Геопространственный поиск
Геопространственный поиск совпадает с координатами широты и долготы места для функции "найти рядом" или поиска на карте. В службе "Поиск ИИ Azure" можно реализовать геопространственный поиск, выполнив следующие действия.
- Определите фильтруемое поле типа Edm.GeographyPoint или Collection(Edm.GeographyPoint).
- Убедитесь, что входящие документы включают соответствующие координаты.
- После завершения индексирования создайте запрос, использующий фильтр и геопространствнную функцию.
Геопространственный поиск использует километров для расстояния. Координаты указаны в этом формате: (longitude, latitude).
Ниже приведен пример фильтра для геопространственного поиска. Этот фильтр находит другие Location поля в индексе поиска, которые имеют координаты в радиусе 300 километров от географической точки (в этом примере Вашингтон округ Колумбия). Он возвращает информацию об адресе в результате и включает необязательное facets положение для самостоятельной навигации по местоположению.
POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2026-04-01
{
"count": true,
"search": "*",
"filter": "geo.distance(Location, geography'POINT(-77.03241 38.90166)') le 300",
"facets": [ "Address/StateProvince"],
"select": "HotelId, HotelName, Address/StreetAddress, Address/City, Address/StateProvince",
"top": 7
}
Для получения дополнительной информации и примеров см. пример геопространственного поиска.
Поиск документов
В отличие от описанных ранее видов запросов, этот запрос возвращает один поисковый документ по его идентификатору, без соответствующего поиска по индексу или сканирования. Запрашивается и возвращается только один документ. Когда пользователь выбирает элемент в результатах поиска, обычно производится извлечение документа и заполнение страницы подробных данных полями из него; выполнение этих действий обеспечивается операцией поиска документов.
Расширенный поиск: нечеткие соответствия, подстановочные знаки, поиск с учетом расположения, регулярные выражения
Расширенная форма запроса зависит от полного синтаксического анализатора Lucene и операторов, которые активируют конкретное поведение запроса.
| Тип запроса | Использование | Дополнительные сведения и примеры |
|---|---|---|
| Поиск по полям | Параметр search, queryType=full |
Создайте сложное выражение запроса, предназначенное для одного поля. Пример поиска по полям |
| Нечеткий поиск | Параметр search, queryType=full |
Сопоставьте термины с похожей структурой или написанием. Пример поиска нечетких соответствий |
| Поиск по близости | Параметр search, queryType=full |
Найдите термины, которые находятся рядом друг с другом в документе. Пример поиска с учетом расположения |
| Повышение веса терминов | Параметр search, queryType=full |
Присваивайте документу более высокий ранг, если он содержит термин с повышенным весом, по сравнению с другими документами, которые его не содержат. Пример усиления значимости термина |
| Поиск регулярных выражений | Параметр search, queryType=full |
Сопоставление на основе содержимого регулярного выражения. Пример регулярного выражения |
| Поиск с подстановочными знаками или префиксный поиск |
search параметр с * или ?, queryType=full |
Сопоставление на основе префикса, нескольких символов (*) или одного символа (?). Пример поиска с использованием подстановочных знаков |
Следующие шаги
Более подробное рассмотрение реализации запросов см. в примерах для каждого из вариантов синтаксиса. Если вы не знакомы с полнотекстовым поиском, вы также можете узнать больше о том, что делает обработчик запросов.