XML - результаты поиска/Поиск туров — различия между версиями

Материал из TourClient - Руководство пользователя
Перейти к: навигация, поиск
м (Описание интерфейса)
 
(не показаны 39 промежуточные версии 3 участников)
Строка 1: Строка 1:
== Описание интерфейса ==
 
  
* [[XML_экспорт/Поиск_туров/Сервис_-_Результаты_поиска|Сервис - Результаты поиска]]
+
== Назначение сервиса ==
* [[XML_экспорт/Поиск_туров/Сервис_-_Статус_поиска|Сервис - Статус поиска]]
+
=== Импорт данных в систему клиента ===
 +
Импорт данных в систему клиента может производиться для получения каких-то статистических показателей. Например расчета минимальных по каким-то параметрам. Или же организации каких-то своих сервисов.
  
* [[XML_экспорт/Описание_объектов|Описание объектов]]
+
В этом случае используется [[XML_-_результаты_поиска/Поиск_туров/Тип_поиска_-_БД|Тип поиска - БД]].
  
<br>
+
=== Организация поиска на сайте клиента ===
 +
Используется для организации сервиса подобного нашему модулю [[Поиск туров - результаты поиска]], когда клиент хочет самостоятельно управлять его работой. Позволяет получить результат в текущий момент наиболее соответствующий данным в системах туроператоров.
  
== Назначение сервиса ==
+
В этом случае используется [[XML_-_результаты_поиска/Поиск туров/Тип_поиска_-_Комбинированный|Тип поиска - комбинированный]].
Сервис предназначен для:
+
* импорта данных в систему клиента
+
* организации поиска на сайте клиента
+
  
  
В зависимости от выбранного клиентом способа использования администрацией TourClient выставляется соответствующая настройка сервиса - '''тип поиска'''. Клиенту изменение данной настройки недоступно.
+
В зависимости от выбранного клиентом способа использования сервиса, администрацией TourClient выставляется соответствующая настройка сервиса - '''тип поиска'''. Клиенту изменение данной настройки недоступно.  
 
+
 
 
Тип поиска определяет поведение сервиса и предоставляемые им данные.
 
Тип поиска определяет поведение сервиса и предоставляемые им данные.
  
 +
<br>
  
=== Импорт данных в свою систему ===
+
== Описание интерфейсов ==
Импорт данных в свою систему может производиться для получения каких-то статистических показателей.  Например расчета минимальных по каким-то параметрам. Или же организации каких-то своих сервисов.
+
  
'''Тип поиска: БД'''
+
* [[XML_-_результаты_поиска/Поиск_туров/Интерфейс_-_Результаты_поиска|Результаты поиска]]
 +
* [[XML_-_результаты_поиска/Поиск_туров/Интерфейс_-_Статус_поиска|Статус поиска]]
 +
* [[XML_-_результаты_поиска/Поиск_туров/Интерфейс_-_Результаты_поиска_по_отелю|Результаты поиска по отелю]]
 +
* [[XML_-_результаты_поиска/Поиск_туров/Интерфейс_-_Сводный_прайс_по_ночам|Сводный прайс по ночам]]
  
  
'''Сервис предоставляет только те данные которые в текущий момент сохранены в нашей БД.'''
+
Результаты возвращаемые сервисом содержат общие для системы объекты, описанные в
 
+
* [[XML_экспорт/Описание_объектов|Описании объектов]]
 
+
'''Обратите внимание:''' сервис не предназначен для полной синхронизации БД клиента с нашей (из-за большого объема данных и очень интенсивной скорости обновления нашей БД). Архитектура получения данных в текстовом формате через xml-шлюз маленькими блоками не позволит работать с такими объемами данных, пропускной способности будет недостаточно для оперативного обновления данных (потенциально базу выкачать возможно, но она тут же устарает, и не будет успевать обновляться по данной технологии).
+
 
+
 
+
Сервис рекомендуется использовать для получения данных в рамках какого-то среза ограничивающего возможный объем данных: по ограниченному набору отелей, на ближайшие даты, по нескольким странам и т.п.
+
+
==== Особенности работы ====
+
* максимально быстрая скорость получения результата
+
* ответ на запрос формируется сразу полностью
+
* минимальная цена точная (та которая в текущий момент минимальна в нашей БД по данным параметрам)
+
* по непопулярным запросам можно получить данных меньше чем в комбинированном поиске, если они в текущий момент не присутствуют в нашей БД (принципы работы комбинированного поиска не позволяют использовать его для выгрузки данных)
+
* ответы сервиса не кешируются, на каждый последующий запрос потенциально можно получить разные данные если они успели измениться
+
 
+
==== Ограничения ====
+
* Количество данных возвращаемое одним запросом: не более 2500 туров.
+
* Макс. допустимое количество запросов в сутки: не регламентировано (определяется индивидуально в случае создания клиентом высокой нагрузки на сервис).
+
  
 
<br>
 
<br>
  
=== Организация поиска на сайте клиента ===
+
== Дополнительная информация ==
Используется для организации сервиса подобного нашему модулю [[Поиск туров - результаты поиска]], когда клиент хочет самостоятельно управлять его работой. Позволяет получить результат в текущий момент наиболее соответствующий данным в системах туроператоров.
+
  
'''Тип поиска: комбинированный'''
+
* [[XML_-_результаты_поиска/Поиск_туров/Буфер_поиска|Буфер поиска]]
 
+
* [[XML_-_результаты_поиска/Поиск_туров/Тип_поиска_-_БД|Тип поиска - БД]]
 
+
* [[XML_-_результаты_поиска/Поиск туров/Тип_поиска_-_Комбинированный|Тип поиска - комбинированный]]
'''Сервис предоставляет данные полученные в текущий момент из всех возможных источников: сохраненные в БД, полученные "на лету" из системы туроператора, а также некоторыми другими способами.'''
+
 
+
 
+
'''Обратите внимание:''' данный тип поиска предназначен для обработки запросов от конечных пользователей, и не предназначен для обработки автоматических запросов. Ограничение вызвано тем что запросы в конечном счете передаются в системы туроператоров, которые зачастую не адаптированы к большой нагрузке. Для автоматических запросов должен использоваться тип поиска '''БД поиск'''.
+
 
+
==== Алгоритм организации поиска ====
+
[http://wiki.tourclient.ru/w/images/d/d6/Search_tour.svg <img src="http://wiki.tourclient.ru/w/images/d/d6/Search_tour.svg" width="200px" style="float: right">]
+
 
+
# Приложение формирует поисковый запрос и отправляет его сервису '''Результаты поиска'''.
+
# Сервис инициирует новый поиск.
+
# Приложение ожидает ответа от сервиса.
+
# Сервис возвращает данные по запрошенной странице, данные о количестве найденных туров и ключ поиска.
+
# Сервис в фоновом режиме продолжает поиск до нахождения всех данных для запроса.
+
# Приложение периодически опрашивает сервис '''Статус поиска''', для обновления найденного количества туров и проверки что поиск не завершен.
+
# Получив информацию что поиск завершен приложение может:
+
#* сообщить пользователю что поиск завершен
+
#* предложить обновить результаты поиска (т.к. могли быть найдены новые данные)
+
#* обновить результаты поиска автоматически
+
# Для обновления результатов поиска приложение отправляет сервису '''Результаты поиска''' поисковый запрос, идентичный тому что был отправлен ранее.
+
  
 
<br>
 
<br>
 
==== Особенности работы ====
 
===== Время поиска =====
 
* Т.к. в момент поиска приходится ждать ответа из разных систем, полный поиск может занимать продолжительное время.
 
* Ограничение на время полного поиска 30 сек., после этого в результаты поиска попадают туры найденные за это время.
 
* Приложение должно запрашивать у сервиса нужную ему страницу данных. Страница определяется параметрами dataLimit, dataOffset.
 
* После запроса сервис возвращает данные в момент когда:
 
** либо найдено достаточное количество данных для формирования запрошенной страницы
 
** либо истек таймаут
 
* Таймаут на возврат запрошенной страницы 10 сек. По истечении таймаута сервис вернет все найденные на этот момент предложения.
 
* Таймаут может быть автоматически увеличен до 30 сек, если за это время ни одного предложения не найдено, но все еще ожидается ответ от медленного поставщика данных.
 
 
===== Минимальная цена =====
 
* При возврате запрошенной страницы первым туром будет тур с минимальной ценой из всех найденных в текущий момент.
 
* Если на момент возврата страницы таймаут еще не истек, это тур с минимальной ценой по данному запросу.
 
* Если страница возвращена из-за таймаута, то потенциально в процессе поиска могут быть найдены туры с ценой меньше. Они будут доступны по данному запросу после окончания поиска.
 
 
===== Кеширование =====
 
* Результаты всех запросов кешируются.
 
* Последующий запрос с аналогичными параметрами (без учета dataLimit, dataOffset) будет возвращен из кеша.
 
* Время жизни кеша 15 минут.
 
* В случае если при обращении к сервису с определенными параметрами поиск по таким параметрам уже идет, то:
 
** если данные для формирования запрошенной страницы уже найдены, будет возвращен результат
 
** если данные для формирования запрошенной страницы еще найдены, результат будет возвращен как только будут найдены данные
 
 
==== Ограничения ====
 
* Количество данных возвращаемое одним запросом: не более 2500 туров.
 
* Макс. допустимое количество запросов в сутки: 3000
 
 
 
'''Обратите внимание:''' Большее число запросов необходимо согласовывать индивидуально, и может повлечь за собой увеличение тарифов. Если не было соответствующей договоренности, то при превышении нагрузки сервис может быть отключен без предварительного предупреждения.
 

Текущая версия на 16:54, 22 июня 2017

Назначение сервиса

Импорт данных в систему клиента

Импорт данных в систему клиента может производиться для получения каких-то статистических показателей. Например расчета минимальных по каким-то параметрам. Или же организации каких-то своих сервисов.

В этом случае используется Тип поиска - БД.

Организация поиска на сайте клиента

Используется для организации сервиса подобного нашему модулю Поиск туров - результаты поиска, когда клиент хочет самостоятельно управлять его работой. Позволяет получить результат в текущий момент наиболее соответствующий данным в системах туроператоров.

В этом случае используется Тип поиска - комбинированный.


В зависимости от выбранного клиентом способа использования сервиса, администрацией TourClient выставляется соответствующая настройка сервиса - тип поиска. Клиенту изменение данной настройки недоступно.

Тип поиска определяет поведение сервиса и предоставляемые им данные.


Описание интерфейсов


Результаты возвращаемые сервисом содержат общие для системы объекты, описанные в


Дополнительная информация