2017-01-31 7 views
0

У меня есть group индекс. Группа имеет интерес (назначение для группы, это может быть «Исследовательская группа» или «Дегустация вин») и место, где она организована (значения lat, lon). Пользователь также имеет интересов (несколько).Solr boosting search score with matching fields

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

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

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

+0

так, что текущая проблема? группы запросов для соответствия терминов, сортировать их по расстоянию и интересам – Mysterion

+0

как мне сортировать, сопоставляя интересы пользователей с группами? –

ответ

1

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

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

interest:wine^5 OR interest:study^5 OR .... и т.д.