EGRUL FTS API - сервис по работе с юридическими лицами из ЕГРЮЛ. Применяется как источник знаний для CRM-систем. Сведения о ликвидированных организациях не обрабатываются.
Установить проект:
git clone https://github.com/PrudyvusP/egrul_fts_api.git && cd "$(basename "$_" .git)"
Создать файл с переменными окружения, (пример тут):
nano infra/.env
Перейти в директорию infra и запустить последовательно следующие команды от пользователя с правами root:
cd infra/
docker-compose up --build --d
docker-compose exec web python3 manage.py migrate
docker-compose exec web python3 manage.py collectstatic
Перейти по адресу и убедиться в работоспособности сервиса.
Документация по стандарту OPENAPI доступна в виде Redoc или Swagger.
Сведения из ЕГРЮЛ предоставляются ФНС России в формате XML
установленным порядком.
Сервис поддерживают обработку сведений из ЕГРЮЛ по форматам 405, 406 и 407.
Для этого используется команда fill_egrul
.
docker-compose exec web python3 manage.py fill_egrul egrul_data/<path_to_dir_with_xml> -n <proc_num> [--update]
egrul_data/<path_to_dir_with_xml> - путь до директории с файлами XML; в текущем
виде конфига
egrul_data монтируется в /tmp/.
<proc_num> - количество процессов парсера.
--update - признак обновления сведений.
Для демонстрации работы сервиса предусмотрена команда, которая создаст N вымышленных организаций
docker-compose exec web python3 manage.py fill_test_data <N>
Опытным путем на выборке из 3,2 млн записей в ЕГРЮЛ установлено, что более 80% организаций в ЕГРЮЛ - это
общества с ограниченной ответственностью, поэтому такие слова как "общество", "ограниченной" и "ответственностью"
были исключены из функции ts_vector
при построении индекса, что позволило сократить память на хранение индекса на 24%.
При этом другие слова, например, "муниципальная" или "районная" или "государственное" нет смысла отбрасывать, так как
они могут нести физический смысл и на размер индекса сильно не влияют.