Я использую Discourse v3.1.5 в своём приложении. При попытке использовать семантический поиск по темам они ранжируются от наиболее похожих к наименее похожим, но в результатах отображаются все темы, даже если поисковый запрос совершенно не совпадает с ними. Я хочу ограничить результаты поиска, чтобы отображались только те темы, у которых уровень схожести не ниже определённого значения. Можно ли это сделать?
По умолчанию это ограничивает результаты 50 ближайшими совпадениями. На данный момент нет возможности передать произвольный порог сходства, но, похоже, мы могли бы это добавить.
Как бы вы это себе представляли? Одно единственное значение с максимальным расстоянием?
В идеале да, наличие максимальной дистанции может помочь исключить нерелевантные результаты поиска.
Мне интересно, как определить подходящее значение для max distance? Думаю, для одного экземпляра это просто, но одна из причин, по которой я от этого отказался, заключается в том, что вычисление правильного значения для каждого экземпляра и установка его по умолчанию — задача нетривиальная.
Возможно, мы могли бы выпустить обновление, оставив это значение равным null и отключив его по умолчанию.
Эта функция будет полезна, когда данных для поиска немного. Альтернативный способ борьбы с нерелевантными результатами — отображать сообщение «Похожие совпадения не найдены», если не ограничивать максимальное расстояние для поиска.
А что насчёт установки порога, скажем, на одну треть от максимума? Или показывать только топ-N результатов?
Это текущее поведение: показывается топ-50.