С помощью этого запроса, помимо обычного регистронезависимого поиска по подборкам, можно реализовать быстрый AJAX-поиск. Например, пользователь вписывает в строку поиска запрос «детские». И в процессе ввода каждого символа из поискового запроса приложение осуществляет поиск по «дет», «детс», «детск» и т.д., быстро предлагая пользователю подходящие подборки.
ID функции
r_search_collections
Кто может вызывать
Любой пользователь
Авторизованное приложение
Принимаемые параметры
q* – строка с поисковым запросом. По умолчанию подбор результатов производится по широким критериям поиска strict="no" или strict=”start” (при этом минимальная длина поискового запроса – 3 символа).
Но если вам известно точное название подборки, то можно осуществить строгий поиск, указав дополнительный параметр strict="exact". В этом случае минимальная длина поискового запроса – 1 символ.
limit – ограничение на количество возвращаемых подборок. Работает аналогично инструкции limit в MySQL и в запросе представлен массивом из числа либо двух чисел N,M. Если limit указан – возвращается M подборок, начиная с подборке N (у первой номер 0). Если limit не задан – значение по умолчанию «0,20».
top_n_arts – если в ответе у каждой подборки необходимо вывести информацию о самых рейтинговых книгах из этой подборки, то в этом параметре указывается необходимое количество книг (не более 100).
Например, если значение «3», то в ответе у каждой подборки в узле top_arts будет от 0 до 3-х книг.
descr – если параметр присутствует в запросе и имеет значение «1», то в ответе к найденным подборкам будут добавлены описания (см. description_html);
Возвращаемые значения
collections* – массив, содержащий информацию о всех найденных подборках:
- match_weight* – степень релевантности найденной подборки (значение от 0 до 100, где 100 – максимально релевантно; 0 – наименее релевантно).
- id* – ID подборки;
- name* – название подборки;
- subname – «подзаголовок» к названию подборки;
- description_html – строка, в которой будет фрагмент HTML с описанием подборки. Присутствует в случае если текст описания имеется в базе и если в запросе был передан параметр descr;
- arts_n* – количество книг, входящих в найденную подборку.
- reviews_n – общее количество отзывов (рецензий), оставленных по подборке и одобренных модераторами;
- top_arts – массив из наиболее рейтинговых книг, входящих в текущую подборку. Данный массив появляется в ответе только если в запросе был передан параметр top_n_arts. Каждая книга содержит:
- id* – ID книги;
- name* – название книги;
- cover – URL до обложки книги (может быть полным, с доменом, либо относительным);
- marks* – пользовательский рейтинг книги (значение от 0 до 10, например «7.21»);
Если не было найдено ни одной подборки, удовлетворяющей поисковому запросу, то массив collections будет пустым.
Возможные ошибки
error_code | error_message | Описание |
|---|---|---|
101069 | Слишком короткий поисковый запрос | Не допускаются поисковые запросы (параметр q) менее одного символа при strict="exact" и менее 3-х символов при других значениях strict. |
101070 | Недопустимое значение в критериях поиска | В параметре strict допустимы только следующие значения:
|
101071 | Недопустимое значение в лимите возвращаемых элементов | В параметре limit должен передаваться массив из двух целых не отрицательных чисел. |
101075 | Недопустимое значение в топе по книгам | В параметре top_n_arts допустимы только целые положительные числа от 1 до 100. |
101081 | Некорректный флаг описания | В параметре descr указано значение, отличное от «1». |
Пример запроса на сервер
{
"app": "1",
"time": "2014-11-07T16:21:02+03:00",
"sha": "b79d8e9993d20da6abe78838d3c7fbf640a4c52956569bef3c685d3453316b5c",
"sid": "7bad5f2fb752ee957a4ab74aaac7711g",
"requests": [
{
"func": "r_search_collections",
"id": "search_collections",
"param": {
"q": "дет",
"strict": "start",
"limit": ["0","100"],
"top_n_arts": "3",
"descr": "1"
}
}
]
}
Пример ответа сервера
{
"success": true,
"time": "2014-11-07T16:21:02+03:00",
"search_collections" : {
"success" : true,
"collections" : [
{
"match_weight": "90",
"id": "525",
"name": "Книги о миллионерах",
"subname": "Деньги – не цель, а средство",
"description_html": "<p><span style="font-size:120%">Мы знаем, как стать миллионером. Истории успеха, рассказанные от первого лица.</span></p>",
"arts_n": "32",
"reviews_n": "2",
"top_arts": [
{
"id": "8604574",
"name": "Сказки Пушкина",
"cover": "http://www.litres.ru/pub/c/cover/11399521.jpg",
"marks": "9.9"
},
{
...
}
],
},
{
...
}
]
}
}