Solr повышает рейтинг поиска с помощью соответствующих полей

У меня есть групповой индекс. У группы есть интерес (цель для группы, это может быть "Учебная группа" или "Дегустация вин") и место, где она организуется (значения широты и долготы). У пользователя также есть интересы (несколько).

Поэтому, когда пользователь ищет группы с помощью ключевого слова, я хотел бы оценивать эти группы с совпадающими интересами и ближе к текущему местоположению пользователя.

Использование запросов фильтра и геопространственного поиска ограничивает результаты совпадением интересов и расстоянием, указанным в запросе. Например, если вы ищете "ABC Group", и нет группы, соответствующей вашим интересам, я получаю пустой результат.

Что я хочу, так это вернуть все совпадающие группы с поисковым термином, но при этом набрать группы, соответствующие интересам пользователя и расположенные ближе к пользователю. Как мне это сделать? Любая соответствующая часть из документов также будет полезна.

1 ответ

Решение

Один наивный подход, который я мог придумать, заключается в следующем:

Допустим, у вас есть запрос, где title:ABC groupсортировка по расстоянию очевидна, но вам нужно как-то размещать группы с интересами пользователей выше, чем у других. Вы можете сделать это, добавив все интересы пользователя в виде набора обязательных предложений (чтобы они не отфильтровывали дополнительные группы с другими интересами). Также вы можете попробовать применить некоторое усиление (коэффициенты должны быть тщательно выбраны) для этих пунктов:

interest:wine^5 OR interest:study^5 OR.... так далее

Другие вопросы по тегам