Хороший вопрос. Ваша проблема может рассматриваться как классическая проблема коллективного интеллекта или мудрости толпы. Первый шаг состоит в том, чтобы подсчитать URL-адрес URL-адреса для определенного запроса, то есть для каждого запроса, у пары-партнера у вас будет счет, поддерживаемый для этого кортежа. Каждый раз, когда пользователь нажимает на определенный URL-адрес, счет увеличивается на 1. В качестве второго шага, когда Solr вернет вам результаты, основанные на его ранжировании и релевантности Алгоритмы (скажем, LCS, Vector Space и т. Д.), А для каждого запроса , пара url вернула вам фрейм формулу, которая добавляет определенное значение (основанное на количестве кликов) в ранг, заданный Solr для документа, а затем вы должны отображать результаты на основе полученного общего ранга.
Общий уровень заработанных за Документ = Рейтинг, присвоенный Solr + Click Ranking Числовое значение, указанное вами.
Для примера, если вы ищете "план iphone", Solr возвращает вам следующие ссылки в порядке высокого ранга к низкому уровню:
- Яблоко
- AT & T
- Amazon
Теперь вы проверяете каждый запрос, адресную пару, т.е. {"iphone plan", Apple} {"iphone plan", AT & T} {"iphone plan", Amazon} количество кликов, и вы получаете что количество кликов для запроса самое высокое для AT & T по сравнению с Apple. Используя ваши пользовательские формулы и придав некоторый вес кликам, вы перенесите вышеизложенное и измените порядок отображения.
Однако обратите внимание, что формулы вы изобретаете не должны быть хорошо для спамеров, которые могут изменить весь материал ранжирования вашего сайта, имея огромные щелчки для конкретного документа (Say с помощью робота :))
выше - логика. В настоящее время существует два способа идти о реализации выше:
Измените Lucene класс подобия (http://lucene.apache.org/core/old_versioned_docs/versions/3_0_1/api/all/org/apache /lucene/search/Similarity.html), то есть сначала поймите, как Lucene делает рейтинг, а затем внедряет ваш модуль в это
Реализуйте его как отдельную рутину поверх Solr.
Примечания: Помните, что получение отсчетов для запроса пар URL не так просто, если у вас есть огромные/большие данные, в этом случае вам потребуется написать какую карту сократить рабочие места для того, чтобы достичь этого.
Что вы подразумеваете под другими результатами? Поддерживаете ли вы число просмотров с индексом, который поможет вам определить это? – Jayendra
dn't knw, как сохранить счет в solr? означает, как отправить запрос обратно в solr, когда пользователь нажимает на определенные данные ??? –
Аналогичный вопрос, который я задал по адресу http://stackoverflow.com/questions/8411860/can-solr-boost-results-on-number-of-social-likes – aitchnyu