С помощью этого запроса, помимо обычного регистронезависимого поиска по сериям, можно реализовать быстрый AJAX-поиск. Например, пользователь вписывает в строку поиска запрос «дозоры». И в процессе ввода каждого символа из поискового запроса приложение осуществляет поиск по «доз», «дозо», «дозор» и т.д., быстро предлагая пользователю подходящие серии.

ID функции

r_search_sequences

Кто может вызывать

Любой пользователь
Авторизованное приложение

Принимаемые параметры

q* – строка с поисковым запросом. По умолчанию подбор результатов производится по широким критериям поиска (при этом минимальная длина поискового запроса – 3 символа).
Но если вам известно точное название серии, то можно осуществить строгий поиск, указав дополнительный параметр strict="exact". В этом случае минимальная длина поискового запроса – 1 символ.
strict – критерии поиска. Возможные значения:

  • no (по умолчанию) – широкие критерии поиска, при которых в названиях серий ищется вхождение каждого-либо слова из поискового запроса. Например, по запросу «луна» будут найдены: «Червивая Луна», «Лунатик исчезает в полночь» и др.
  • start – поиск только по сериям, начало названия которых точно совпадает с поисковым запросом. Например, по запросу «луна» будет найден «Лунатик исчезает в полночь», а вот «Червивая Луна» в ответ уже не попадет.
  • exact – поиск серий, название которых полностью совпадает с поисковым запросом.

limit – ограничение на количество возвращаемых серий. Работает аналогично инструкции limit в MySQL и в запросе представлен массивом из двух чисел N,M либо одного числа. Если limit указан­ – возвращается M серий, начиная с серии N (у первой номер 0). Если limit не задан – значение по умолчанию «0,20»;
top_n_arts – если в ответе для каждой серии необходимо вывести информацию о самых рейтинговых книгах серии, то в этом параметре указывается необходимое количество книг. Например, если значение «3», то в ответе у каждой серии в узле top_arts будет от 0 до 3-х книг;
top_n_genres – если в ответе для каждой серии необходимо вывести информацию о жанрах, наиболее широко представленных в этой серии, то в этом параметре указывается необходимое количество жанров (не более трех).
descr – если параметр присутствует в запросе и имеет значение «1», то в ответе к найденным сериям будут добавлены описания (см. description_html);

Возвращаемые значения

sequences* – массив, содержащий информацию о всех найденных сериях:

  • match_weight* – степень релевантности найденной серии (значение от 0 до 100, где 100 – максимально релевантно; 0 – наименее релевантно);
  • id* – ID серии;
  • name* – название серии;
  • description_html – строка, в которой будет фрагмент HTML с описанием серии. Присутствует в случае если текст описания имеется в базе и если в запросе был передан параметр descr;
  • arts_n* ­– количество книг, входящих в найденную серию.
  • reviews_n – общее количество отзывов (рецензий), оставленных к серии и одобренных модераторами;
  • top_arts ­– массив из наиболее рейтинговых книг, входящих в текущую серию. Данный массив появляется в ответе только если в запросе был передан параметр top_n_arts. Каждая книга содержит:
    • id* – ID книги;
    • name* – название книги;
    • cover – URL до обложки книги (может быть полным, с доменом, либо относительным);
    • marks* – пользовательский рейтинг книги (значение от 0 до 10, например «7.21»);
  • top_genres ­– массив из жанров, наиболее широко представленных в текущей серии. Данный массив появляется в ответе только если в запросе был передан параметр top_n_genres. Каждый жанр содержит:
    • id* – идентификатор жанра;
    • name* – название жанра;

Если не было найдено ни одной серии, удовлетворяющей поисковому запросу, то массив sequences будет пустым.

Возможные ошибки

error_code

error_message

Описание

101069

Слишком короткий поисковый запрос

Не допускаются поисковые запросы (параметр q) менее одного символа при strict="exact" и менее 3-х символов при других значениях strict.

101070

Недопустимое значение в критериях поиска

В параметре strict допустимы только следующие значения:

  • no
  • start
  • exact

101071

Недопустимое значение в лимите возвращаемых элементов

В параметре limit должен передаваться массив из двух целых не отрицательных чисел.

101075

Недопустимое значение в топе по книгам

В параметре top_n_arts допустимы только целые положительные числа от 1 до 10.

101076

Недопустимое значение в топе по жанрам

В параметре top_n_genres допустимы только целые положительные числа от 1 до 3.

101081

Некорректный флаг описания

В параметре descr указано значение, отличное от «1».

Пример запроса на сервер

{
   "app": "1",
   "time": "2014-11-07T16:21:02+03:00",
   "sha": "b79d8e9993d20da6abe78838d3c7fbf640a4c52956569bef3c685d3453316b5c",
   "sid": "7bad5f2fb752ee957a4ab74aaac7711g",
   "requests": [
           {
                 "func": "r_search_sequences",
                 "id": "search_sequences",
                 "param": {
                   "q": "доз",
                   "strict": "start",
                   "limit": ["0","100"],
                   "top_n_arts": "3",         
                   "top_n_genres": "3",         
                   "descr": "1"
                 }
           }
   ]
}

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

{
  "success": true,
  "time": "2014-11-07T16:21:02+03:00",
  "search_sequences" : {
    "success" : true,
    "sequences" : [
        {
          "match_weight": "90",
          "id": "81715",
          "name": "Сколково. Хронотуризм",
          "description_html": "<p>Ученые наукограда Сколково совершили революционное открытие. Прорыв, равного которому не было от сотворения мира! Отныне история – открытая книга. Людям стало подвластно само время. Открытие не стали прятать за заборами секретных лабораторий. Гостеприимно распахнула двери государственная компания «Сколково. Хронотуризм». Покупайте путевку в прошлое и в путь!</p>",
          "arts_n": "32",
          "reviews_n": "1",
          "top_arts": [
            {
              "id": "8604574",
              "name": "Сказки Пушкина",
              "cover": "http://www.litres.ru/pub/c/cover/11399521.jpg",
              "marks": "9.9"
            },
            {
              ...
            }
          ],
          "top_genres": [
            {
              "id": "193",
              "name": "Поэзия"
            },
            {
              ...
            }
          ],
                  }, 
        {
          ...
        }
    ]
  }
}