Skip to end of metadata
Go to start of metadata

Смысл поисковой персонализации заключается в том, чтобы отсортировать результат поиска товаров в соответствии с интересами покупателя. То есть, сначала вы получаете список идентификаторов товаров от вашего поискового движка, отсортированный по семантике, а затем дополнительно сортируете его с помощью REES46 по релевантности для покупателя.

Пример

Клиент ввел поисковый запрос: "блок питания".

Ваш поисковый движок (Solr, Sphinx, MongoSearch, etc) вернул вам подходящие товары:

  • 33
  • 8495
  • 32
  • 5473
  • 456
  • 48556
  • 48564
  • 6584
  • 356
  • 76243

Эти товары соответствуют поисковому запросу и отсортированы в соответствии с правилами поискового механизма. Но, в действительности, клиенту больше подходят товары 346, 6584 и 456. Об этом может сказать REES46.

Вы передаете в API REES46 этот список идентификаторов товаров с помощью GET-запроса и в ответ получаете отсортированный список тех же идентификаторов, но теперь релевантные клиенту товары находятся вначале списка:

  • 356
  • 6584
  • 456
  • 32
  • 33
  • 5473
  • 48564
  • 76243
  • 8495
  • 48556

И затем уже выводите эти товары в том порядке, в котором получили от REES46.

API

Для ранжирования поискового запроса отправьте GET запрос на API REES46:

http://api.rees46.com/recommend?shop_id=КОД_МАГАЗИНА&ssid=КОД_СЕССИИ&recommender_type=rescore&items=СПИСОК_ТОВАРОВ_ЧЕРЕЗ_ЗАПЯТУЮ

где

  • shop_id – код вашего магазина, полученный на странице настроек магазина;
  • ssid – идентификатор сессии пользователя, который можно получить из cookie с именем rees46_session_id;
  • recommender_type – укажите rescore;
  • items – список товаров через запятую, например: 33,566,72425,865735,6345,23446.

Пример запроса:

http://api.rees46.com/recommend?shop_id=f95342356fa619749015b7225f3b7db3&ssid=f1bffffd-f3dd-4238-9541-5a135472765c&recommender_type=rescore&items=32106,31091,36508,752,34761

Пример ответа:

["752","34761","31091","32106","36508"]

Ответ возвращается в формате JSON.

Не сломайте сортировку

Важно учитывать, что когда вы, получив список идентификаторов, делаете SQL запрос вида:

SELECT * FROM items WHERE id IN ("752","34761","31091","32106","36508");

То СУБД собьет вашу сортировку и результаты будут выводиться в непредсказуемом порядке. Поэтому после выборки данных из БД необходимо заново отсортировать товары в порядке, как вернул их REES46.

Обратите внимание

Не стоит передавать в API больше 1000 идентификаторов одновременно. Если у вас поиск выдает очень много рекомендаций, лучше разбивать сортировку на страницы по 200 товаров.

Нюанс с ssid

 В некоторых случаях (пользователь совсем новый, только что зашел на сайт и сразу попал в результаты поиска) cookie с именем rees46_session_id может быть пустой. В этом случае необходимо инициализировать сессию пользователя, используя JS SDK, PHP SDK или Ruby SDK либо не отправлять запрос на сортировку до тех пор, пока кука не установится (следующее обновление страницы пользователем).

 

 

  • No labels