Code Monkey home page Code Monkey logo

recherche-entreprises's Introduction

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

recherche-entreprises's People

Contributors

bobylito avatar johangirod avatar lionelb avatar pom421 avatar renovate[bot] avatar rmelisson avatar socialgroovybot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.