fglabarta / recherche-entreprises

API de recherche d'entreprises Françaises

Home Page:https://recherche-entreprises.fabrique.social.gouv.fr

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

recherche-entreprises

Ce projet permet de générer un index Elastic Search qui regroupe toutes les informations utiles pour rechercher une entreprise par établissement, raison sociale, code postal, ville, siret/siren, effectif, convention collective...

Les données sont issues de plusieurs jeux de données data.gouv.fr et de kali-data.

Le dossier api présente un exemple d'implémentation d'API NodeJS qui exploite cet index Elastic Search avec différentes requêtes.

Un frontend de démo est disponible ici : https://recherche-entreprises.fabrique.social.gouv.fr

Et vous pouvez utiliser librement l'API disponible sur https://api-recherche-entreprises.fabrique.social.gouv.fr cf documentation API

Exemple : /api/v1/search?q=plume&a=paris

Étapes :

Données :

Dataset usage
geo-sirene Version géocodée du stock des établiseement
insee-sirene Base Sirene des entreprises et de leurs établissements
siret2idcc Lien vers la convention collective
kali-data Informations sur les conventions collectives
codes-naf Liste des codes NAF (Nomenclature d’activités française)

Lancer le projet

Pré-requis

Pour lancer les différentes parties du projet, un certain nombre d'outil doivent être présent sur la machine:

  • node
  • yarn
  • docker et docker-compose
  • wget
  • sqlite3

Assemblage des données

Le script sqlite.sh permet de permet de télécharger les CSV puis aggréger les données pour les re-exporter dans CSV "plat".

Le fichier ./data/assembly.csv fait +6Go avec plus de 30 millions de lignes.

Cette opération dure environ 45 minutes.

Indexation dans Elastic Search

Cette étape permet de mettre à jour les données dans l'index ElasticSearch à partir du fichier assembly.csv généré à l'étape précédente.

Cette étape se déroule dans le répertoire index.

La mise à jour exploite la fonctionnalité alias d'ElasticSearch pour éviter les downtimes.

Pour lancer une indexation :

yarn
ELASTICSEARCH_URL=https://elastic_url:9200 ELASTICSEARCH_API_KEY=key_with_writing_rights ASSEMBLY_FILE=./data/assembly.csv yarn start

Le script scripts/create-es-keys.sh permet de créer des tokens pour lire/écrire sur ces index. Cette étape n'est pas nécessaire pour le développement local.

Lancement de l'API

Cette étape permet de lancer l'API de démo qui va servir les requêtes jusqu'à ElasticSearch.

# En partant de la racine du projet
cd api

yarn install
yarn build

ELASTICSEARCH_URL=http://localhost:9200 yarn start

Le temps d'indexation est d'environ 1h.

Wokflows GitHub

Des workflows GitHub permettent de mettre à jour les index et sont lancés manuellement

Projets relatifs

About

API de recherche d'entreprises Françaises

https://recherche-entreprises.fabrique.social.gouv.fr


Languages

Language:Jupyter Notebook 75.3%Language:TypeScript 18.6%Language:JavaScript 2.1%Language:HTML 2.0%Language:Shell 1.5%Language:Dockerfile 0.5%Language:CSS 0.0%