Поделиться через


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.