...
Блок кода |
---|
|
# название справочника
# наш пример — справочник сотрудников
name: employees
# настройки чтения CSV файла
# необязательно, значения по умолчанию описаны ниже
csv:
quote: '"'
delimiter: ','
endOfLine: '\n'
encoding: UTF-8
# какие есть поля и как их использовать
fields:
# Исправлять латинскую раскладку, по умолчанию true
switch_layout: false
# какие поля участвуют в поиске по идентификаторам
# необязательно, по умолчанию не задано
ids:
hid: ~
inn: ~
# какие поля участвуют в полнотекстовом поиске (обязательно хотя бы одно)
# для полей можно указать параметр boost — вес для ранжирования
# чем больше вес, тем «весомее» считается совпадение по этому полю
# например, если вес по fullname = 10, а по email = 1,
# то совпадение по ФИО считается весомее, чем по адресу эл. почты
# по умолчанию вес = 1
search:
fullname:
boost: 10
email: ~
phone: ~
# по каким полям фильтровать
# необязательно, по умолчанию не задано
filter:
department: ~
# по какому полю ранжировать
# необязательно, по умолчанию не задано
# чем больше значение, тем выше ранжируется соответствующая запись справочника
# если указано несколько полей, то значения умножаются
# по умолчанию вес = 1
boost:
salary: ~
# по какому полю сортировать
# необязательно, по умолчанию равно настройке fields.value + ALPHA_NUMERIC
# принцип сортировки:
# ALPHA_NUMERIC - по алфавиту (с честной сортировкой чисел)
# TOKEN_COUNT - по количеству слов (чем меньше слов, тем выше позиция)
sort:
fullname: TOKEN_COUNT
department: ALPHA_NUMERIC
# какое поле показывать в списке (suggestion.value, обязательно)
value: fullname
# какое поле содержит полное значение одной строкой
# необязательно, по умолчанию равно настройке fields.value
unrestricted_value: fullname_with_position
# какие поля возвращать в объекте подсказки (suggestion.data)
# необязательно, по умолчанию не задано (suggestion.data == null)
data:
name: ~
surname: ~
patronymic: ~
email: ~
phone: ~
position: ~
department: ~ |
Начиная с версии 19.11 имеется возможность поиска ближайшего объекта по географическим координатами. Для включения геолокации необходимо в конфигурационном файле задать поля, содержащие широту и долготу:
Блок кода |
---|
|
fields:
...
geolocate:
latitude: {название колонки}
longitude: {название колонки}
... |
Начиная с версии 19.11 можно явно указать тип полей справочника. Поддерживаются типы: int, float, bool, str.
Блок кода |
---|
|
fields:
...
data:
postal_code: str
is_closed: bool
address_qc: int
geo_lat: float
... |
По умолчанию для boost и geolocate полей устанавливается тип float, для всех остальных полей – string. Для boost полей тип может быть только float или int, а для geolocate полей тип может быть только float.
Скопировать на сервер
Конфигурацию:
- Сохранить конфигурацию в файл
{name}.yaml
, где {name}
— название справочника, как указано в самом первом параметре конфигурации.
Для нашего примера это employees.yaml
- Создать на сервере каталог
/SGT_ROOT/configuration/outward/
и скопировать в него файл конфигурации.
Для нашего примера итоговый путь к файлу будет /data/configuration/outward/employees.yaml
...
Без форматирования |
---|
POST /suggestions/api/4_1/rs/findById/employees HTTP/1.1
Host: suggestions.evercorp.ru
Content-Type: application/json
{
"query": "1024"
} |
Геолокация (с версии 19.11 если заданы координаты, параметр geolocate в конфигурации справочника). Работает аналогично геолокации для адресов – возвращает ближайшие объекты по заданным координатам.
Без форматирования |
---|
POST /suggestions/api/4_1/rs/geolocate/postal_unit HTTP/1.1
Host: suggestions.evercorp.ru
Content-Type: application/json
{
"lat": 55.763938, "lon": 37.637281, "radius_meters": 10000, "count": 15
} |
Без форматирования |
---|
GET /suggestions/api/4_1/rs/geolocate/postal_unit?lat=55.763938&lon=37.637281 HTTP/1.1
Host: suggestions.evercorp.ru |
Параметр | Обязательный? | Описание |
---|
lat
| да | Географическая широта |
lon | да | Географическая долгота |
count | нет | Включить страницу |
---|
| _count_server |
---|
| _count_server |
---|
|
|
radius_meters | нет | Радиус поиска в метрах (по умолчанию – 100, максимум – 10000) |
jQuery-плагин
В плагине всё как обычно, только в поле type
указывается название справочника:
...