Azure Поиск не поддерживает DisMax запросы. В зависимости от того, что вам нужно из запросов DisMax, вы можете получить аналогичные результаты другими способами.
С точки зрения отзыва запросы DisMax совпадают с булевыми запросами, так как для дизъюнкций оба документа рассматривают совпадение при тех же условиях. Разница заключается в том, что DisMax оценивает итоговое соответствие, беря наивысшее индивидуальное соответствие (плюс дополнительный тайм-брейкер), а логические запросы - по умолчанию.
Если вам нужно, чтобы DisMax был простым синтаксисом с кавычками +/- и т. Д., То использование queryType = simple (по умолчанию) даст вам больше всего в Azure Search, за исключением «~» (нечеткое/отстойный).
Если вам нужен фактический дизъюнктивный максимальный способ подсчета очков, то сегодня это невозможно.
Что касается других функций, вы упоминаете:
- поля запроса: есть опция «searchFields» в Azure поисковых запросов, что делает.
- Фразовые поля: вы можете достичь этого вручную (хотя и больно), запросив отдельные термины, а затем группы терминов в кавычках и использовать разные повышения (вам понадобятся полные запросы lucene для этого, простые запросы выиграли ' т. е. из-за увеличения количества отдельных групп/групп).
- Функция/запрос увеличения: нет ничего, что сопоставило бы 1: 1 с этим в Azure Search, но скоринговые профили позволяют моделировать многие из сценариев, которые вы бы моделировали с этим.
Для получения подробной информации о searchFields и другие варианты запросов: https://docs.microsoft.com/en-us/rest/api/searchservice/search-documents
Для получения дополнительной информации о профилях озвучивания: https://docs.microsoft.com/en-us/rest/api/searchservice/add-scoring-profiles-to-a-search-index
Спасибо Пабло. Это отличное понимание. –