2016-04-20 2 views
1

Я создаю страницу поиска с помощью поиска в лазури. На моей странице у меня есть окно поиска. Я хочу предоставить предложения пользователям. В попытке сделать это, я использую Suggestions endpoint по моему индексу. В это время, у меня есть запрос, который включает в себя следующую строку запроса:Использование top with Azure Поиск предложений

search=sta&suggesterName=sites&$top=3 

Мой вопрос, как же определить, какие топ три результаты, чтобы вернуться? Это первые три матча, которые он встречает при просмотре индекса поиска? Или что-то еще? Основываясь на структуре URL-адресов, я не думаю, что он использует оценочный профиль. Поэтому я исключил релевантность. Но потом я начал читать о поле minimumCoverage, и я смутился.

Если конечная точка suggest возвращает первый [top] совпадений, то почему поле minimumCoverage понадобилось?

ответ

2

В общем, $top предоставит вам лучшие результаты N, основанные на любом заказе, который задает остальная часть запроса. Для запросов без $orderby порядок сортировки убывает по дате актуальности. Это относится как к Suggest, так и к Search.

Обратите внимание, что только потому, что у вас нет профиля оценки (например, с Suggest), это не означает, что Azure Search не вычисляет оценки релевантности для каждого документа. Профили оценки могут влиять на оценку, но они не полностью определяют ее.

Для запросов с $orderby порядок результатов определяется сначала полями $orderby, а затем счетом, если есть какие-либо связи, которые нужно сломать.

minimumCoverage не имеет никакого отношения к заказу или $top. Это связано с тем, как распространяются поисковые запросы. Каждый запрос выполняется одновременно с разными подмножествами индекса (это происходит независимо от того, есть ли у вас несколько блоков поиска). Иногда один из этих подмножеств не может выполнить по какой-либо причине, обычно, когда ваш поисковый сервис находится под большой нагрузкой. Параметр minimumCoverage дает возможность ослабить правило, в котором обычно говорится: «X% индекса должно успешно выполнить запрос, чтобы рассмотреть общий запрос с успехом» (по умолчанию значение 100 по умолчанию для Search и 80 по умолчанию для Suggest). Это способ полной компромиссности результатов поиска для более высокой доступности в случае большой нагрузки или частичных отключений.

+0

Благодарим вас за ответ. Тем не менее, я все еще немного неясен в '$ top' в контексте предложения. Если я использую запрос 'suggest', актуальна ли релевантность? Конечная точка 'suggest' не имеет параметра' scoringProfile', как у конечной точки 'search'. Означает ли это, что подсчет очков по-прежнему происходит для предложений, и он просто использует «defaultScoringProfile» из индекса поиска? Спасибо, что поняли! –

+0

Извините, оригинальный ответ был неясным. Я также понял, что я оговорился о различиях между Поиском и Предложением. Я отредактировал свой ответ, чтобы быть более ясным и правильным. Пожалуйста, дайте мне знать, если он все еще не отвечает на ваш вопрос. –

+0

Спасибо, что расчистили его. Теперь это имеет смысл. –