moreLikeThis (предварительная версия) в поиске ИИ Azure
Внимание
Эта функция предоставляется в общедоступной предварительной версии, и к ней применяются дополнительные Условия использования. Предварительная версия REST API поддерживает эту функцию.
moreLikeThis=[key]
представляет собой параметр запроса в API поиска документов, который позволяет найти документы, аналогичные указанному с помощью ключа документа. При обработке поискового запроса с параметром moreLikeThis
создается запрос с условиями поиска, извлеченными из заданного документа, которые лучше всего описывают этот документ. Затем созданный запрос используется для создания поискового запроса. Параметр moreLikeThis
нельзя использовать с параметром search=[string]
поиска.
По умолчанию учитывается содержимое всех доступных для поиска полей верхнего уровня. Если вместо этого нужно указать конкретные поля, можно использовать параметр searchFields
.
Параметр moreLikeThis
не поддерживается для сложных типов, а наличие сложных типов влияет на логику запроса. Если индекс является сложным типом, необходимо задать searchFields
поля, доступные для поиска верхнего уровня, по которым moreLikeThis
выполняется итерация. Например, если индекс имеет тип, доступный для поиска, и field2
это сложный тип с подфилдами с возможностью поиска, значение searchFields
должно быть задано, чтобы исключить field1
field2
.field1
Edm.String
Примеры
В следующих примерах рассматривается пример с гостиницами из краткого руководства по созданию поискового индекса на портале Azure.
Простой запрос
Следующий запрос выполняет поиск документов, поля описания которых больше всего похожи на поле исходного документа, как указано в параметре moreLikeThis
.
GET /indexes/hotels-sample-index/docs?moreLikeThis=29&searchFields=Description&api-version=2024-05-01-preview
В этом примере запрос выполняет поиск гостиниц, аналогичных гостинице со значением HotelId
29.
Вместо использования HTTP-метода GET MoreLikeThis
также можно вызвать с помощью HTTP-метода POST:
POST /indexes/hotels-sample-index/docs/search?api-version=2024-05-01-preview
{
"moreLikeThis": "29",
"searchFields": "Description"
}
Применить фильтры
MoreLikeThis
можно сочетать с другими общими параметрами запроса, такими как $filter
. Например, запрос можно ограничить только гостиницами категории "Бюджетные" с рейтингом выше 3,5:
GET /indexes/hotels-sample-index/docs?moreLikeThis=20&searchFields=Description&$filter=(Category eq 'Budget' and Rating gt 3.5)&api-version=2024-05-01-preview
Выбор полей и ограничение результатов
Селектор $top
позволяет ограничить число результатов, возвращаемых в запросе MoreLikeThis
. Кроме того, поля можно выбирать с помощью $select
. Здесь выбираются три первых гостиницы вместе с их идентификатором, именем и рейтингом:
GET /indexes/hotels-sample-index/docs?moreLikeThis=20&searchFields=Description&$filter=(Category eq 'Budget' and Rating gt 3.5)&$top=3&$select=HotelId,HotelName,Rating&api-version=2024-05-01-preview
Следующие шаги
Для этого упражнения можно использовать любой клиент REST.