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

ID функции

r_search

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

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

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

atype – необязательный параметр; супертип для запроса книг определенных типов:

  • 1 – электронные книги (ebook и pdf);
  • 2 – аудио-книги;

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

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

limit – ограничение на количество возвращаемых книг. Работает аналогично инструкции limit в MySQL и в запросе представлен одним числом либо массивом из двух чисел N,M. Если limit указан­ – возвращается M книг, начиная с книги N (у первой книги номер 0). Если limit не задан – значение по умолчанию «0,20»;
anno – если параметр имеет значение «1», то в ответе к найденным книгам будут добавлены аннотации (см. annotation);
currency – валюта, в которой необходимо возвращать цены InApp'ов на книги. Если параметр не передан информация по InApp'ам (inapp_price, inapp_name) не возвращается. Допустимые значения:

  • RUB – российские рубли (по умолчанию);
  • USD – доллары США;
  • EUR – евро;
  • PLN – польские злотые;

top_n_arts – если в ответе у персоны, серии, коллекции, жанра, тега или издательства необходимо вывести информацию о самых рейтинговых книгах, то в этом параметре указывается необходимое количество книг. Не может быть больше 10.
only_arts – флаг, если равен 1, то нужно найти только арты по поисковому запросу q.

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

result* – массив объектов, содержащий найденные книги, серии, коллекции, персоны, жанры, теги, издательства. Информация о найденных единицах контента в целом идентична приходящей в ответах на r_search_arts, r_search_persons, r_search_genres, r_search_sequences, r_search_collections, но содержит дополнительный параметр:

  • item_type – параметр, указывающий на сущность найденной единицы. Возможные значения:
    • art – книга. Остальная возвращаемая информация соответствует ответу на запрос r_search_arts. Дополнительно в информации о книге может присутствовать атрибут region_restriction – ограничение на показ/продажу книги в стране или регионе, где книга запрещена (определяется по GeoIP запросившего пользователя). Может принимать следующие значения:
      • 1 – запрещена продажа книги. Карточка книги, в том числе её обложка, рецензии, цитаты и т. д. будут показаны пользователю, но будет отсутствовать возможность купить такую книгу. Возвращается в виде строки;
      • 2 – запрещен показ книги. Книгу с таким ограничением пользователь не увидит. Возвращается в виде строки;
    • author – автор. Остальная возвращаемая информация соответствует ответу на запрос r_search_persons;
    • serie – серия. Остальная возвращаемая информация соответствует ответу на запрос r_search_sequences;
    • collection – коллекция. Остальная возвращаемая информация соответствует ответу на запрос r_search_collections;
    • genre – жанр. Остальная возвращаемая информация соответствует ответу на запрос r_search_genres;
    • tag – тег. Сопутствующие параметры:
      • id – ID тега;
      • title – название тега;
      • match_weight – степень релевантности тега;
    • copyright_page – издатель.

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

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

error_code

error_message

Описание

101069

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

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

101070

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

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

  • no;
  • start;
  • exact;

101071

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

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

101072

Некорректный флаг аннотации

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

101073

Указана некорректная валюта

В параметре currency допустимы только следующие валюты:

  • RUB – российские рубли;
  • USD – доллары США;
  • EUR – евро;
  • PLN – польские злотые.

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

{
   "app": "1",
   "time": "2014-11-07T16:21:02+03:00",
   "sha": "b79d8e9993d20da6abe78838d3c7fbf640a4c52956569bef3c685d3453316b5c",
   "sid": "7bad5f2fb752ee957a4ab74aaac7711g",
   "requests": [
           {
                 "func": "r_search_arts",
                 "id": "search_arts",
                 "param": {
                   "q": "гарри поттер",
                   "limit": ["0","5"],       
                   "currency": "RUB"
                 }
           }
   ]
}

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

{
  "time": "2017-07-04T20:54:14+03:00",
  "success": true,
  "search": {
    "success": true,
    "result": [
      {
        "item_type": "tag",
        "match_weight": "20810400",
        "title": "Гарри Поттер",
        "id": "193070"
      },
      {
        "id": "526",
        "match_weight": "4544160",
        "title": "Гарри Поттер",
        "reviews_n": "7",
        "item_type": "serie"
      },
      {
        "isbn": "978-1-78110-188-9",
        "first_time_sale": "2017-05-25T15:01:57+03:00",
        "publisher": "Pottermore",
        "my": "1",
        "mark_1": "93",
        "percent": "100",
        "type": "0",
        "final_price": "199.20",
        "genres": [
          {
            "id": "92825",
            "is_tag": "1",
            "name": "волшебные существа"
          },
          {
            "id": "5218",
            "name": "зарубежное фэнтези"
          },
          {
            "id": "5226",
            "name": "книги про волшебников"
          },
          {
            "is_tag": "1",
            "name": "магическая школа",
            "id": "11605"
          },
          {
            "name": "магические артефакты",
            "is_tag": "1",
            "id": "42275"
          },
          {
            "id": "28445",
            "is_tag": "1",
            "name": "опасные приключения"
          },
          {
            "name": "пророчества и предсказания",
            "is_tag": "1",
            "id": "57845"
          },
          {
            "name": "смертельная ловушка",
            "is_tag": "1",
            "id": "12585"
          },
          {
            "name": "тайны прошлого",
            "is_tag": "1",
            "id": "17195"
          },
          {
            "is_tag": "1",
            "name": "темная магия",
            "id": "65465"
          },
          {
            "id": "8125",
            "name": "экранизации",
            "is_tag": "1"
          }
        ],
        "base_price": "249.00",
        "reviews_n": "26",
        "last_release": "2017-05-26T13:55:36+03:00",
        "mark_2": "4",
        "owned": 1,
        "mark_5": "50",
        "images": "6",
        "available_date": "2017-05-25T15:00:00+03:00",
        "mark_3": "4",
        "year": "1997",
        "drm": "0",
        "lang": "rus",
        "title": "Гарри Поттер и философский камень",
        "minage": "6",
        "cover": "http://www.litres.ru/pub/c/cover/28151325.jpg",
        "subtitle": "",
        "uuid": "75ca2569-da52-4aaf-a919-c8a08da48b01",
        "chars": "418257",
        "mem": "text",
        "can_preorder": "0",
        "sequences": [
          {
            "reviews_n": "7",
            "arts_n": "8",
            "id": "526",
            "name": "Гарри Поттер",
            "sequence_number": "1"
          }
        ],
        "match_weight": "1581980",
        "id": "121626",
        "persons": [
          {
            "lvl": "4",
            "type": "0",
            "id": "54058",
            "img": "http://www.litres.ru/static/authors/100/00/05/40/00054058.jpg",
            "full_name": "Дж. К. Роулинг"
          },
          {
            "full_name": "Мария Спивак",
            "id": "46012",
            "lvl": "1",
            "type": "1"
          },
          {
            "full_name": "Литагент Pottermore limited",
            "disabled": "1",
            "type": "2",
            "lvl": "1",
            "id": "11227978"
          }
        ],
        "mark_4": "5",
        "last_update": "2017-05-26T13:55:36+03:00",
        "item_type": "art",
        "year_written": "1997",
        "cover_h": "858",
        "lvl": "4",
        "cover_w": "570",
        "release_file": "28151325",
        "available": "1"
      }
    ]
  }
}