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
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) |
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
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.
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.
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.
Des workflows GitHub permettent de mettre à jour les index et sont lancés manuellement
- Annuaire-entreprises : https://annuaire-entreprises.data.gouv.fr
- API Entreprise : https://entreprise.api.gouv.fr/catalogue/