Rechercher des articles et exposés des motifs du Sénat
Rechercher dans les contenus Akoma Ntoso des textes Sénat indexés par Tisseuse, puis vérifier leur état documentaire, leur étape et leur source institutionnelle.
Contenu de la recette
Cette recette est indexée par Moulineuse et peut servir de point de départ pour vos explorations SQL, Typesense ou scripts agents.
Objectif
Cette recette recherche dans les articles et exposés des motifs des états documentaires du Sénat. Un résultat décrit un document senat.dosleg_texte identifié par texcod, à une date, une lecture et une étape données. Il ne décrit pas le droit en vigueur ni un texte unique par dossier.
La projection tisseuse.senat_text_search est alimentée depuis l’Akoma Ntoso institutionnel conservé dans tisseuse.senat_document_content. Les rapports, amendements et débats ne font pas partie de ce corpus : utiliser leurs recettes et tables spécialisées.
Recherche générale
Utiliser query_sql avec le schéma tisseuse. $1 est la requête utilisateur et $2 la limite, entre 1 et 100.
WITH search_query AS (
SELECT websearch_to_tsquery('french', $1) AS value
)
SELECT
s.texcod,
s.item_kind,
s.item_label,
s.item_title,
s.article_number,
s.article_anchor,
s.document_number,
s.document_title,
s.document_type_label,
s.document_date,
s.dossier_code,
s.dossier_signet,
s.dossier_title,
s.lecture_label,
s.stage_code,
s.stage_assembly,
s.public_url,
s.source_url AS akoma_ntoso_url,
ts_headline(
'french',
s.content,
search_query.value,
'StartSel=<mark>, StopSel=</mark>, MaxWords=35, MinWords=15'
) AS extrait,
ts_rank_cd(
ARRAY[0.05, 0.1, 0.4, 1.0],
s.text_search,
search_query.value,
32
) AS score
FROM tisseuse.senat_text_search AS s
CROSS JOIN search_query
WHERE s.text_search @@ search_query.value
ORDER BY score DESC, s.document_date DESC NULLS LAST, s.texcod, s.item_id
LIMIT $2;
Toujours annoncer le type de fragment :
article: dispositif du texte à cette étape ;expose_des_motifs: texte explicatif du préambule, à ne pas confondre avec le dispositif.
Pour ouvrir un article dans Exploratrice, construire le chemin :
/senat/documents/texte-<texcod>/contenu#<article_anchor>
Si article_anchor est nul, ouvrir la page du document sans ancre.
Restreindre au dossier, au type ou à une période
Ajouter les filtres nécessaires, sans déduire une version « finale » à partir du seul classement :
WITH search_query AS (
SELECT websearch_to_tsquery('french', $1) AS value
)
SELECT
s.texcod,
s.item_kind,
s.item_label,
s.document_title,
s.document_date,
s.document_type_label,
s.dossier_code,
s.lecture_label,
s.stage_assembly,
s.public_url,
ts_rank_cd(s.text_search, search_query.value) AS score
FROM tisseuse.senat_text_search AS s
CROSS JOIN search_query
WHERE s.text_search @@ search_query.value
AND ($2::text IS NULL OR s.dossier_code = $2)
AND ($3::text IS NULL OR s.document_type_code = $3)
AND ($4::date IS NULL OR s.document_date >= $4::date)
AND ($5::date IS NULL OR s.document_date <= $5::date)
AND ($6::text IS NULL OR s.item_kind = $6)
ORDER BY score DESC, s.document_date DESC NULLS LAST, s.texcod, s.item_id
LIMIT $7;
Paramètres :
$2: codedosleg_loi.loicoddu dossier ;$3: codedosleg_texte.typtxtcod;$4,$5: bornes documentaires ;$6:articleouexpose_des_motifs;$7: limite bornée.
Vérifier un résultat
Avant toute conclusion juridique ou procédurale :
- contrôler
texcod, titre, date et URL publique ; - vérifier dossier, lecture, étape et chambre ;
- ouvrir la source institutionnelle
public_urlou l’Akomasource_urlsi la formulation exacte compte ; - si la question porte sur les amendements ou le texte après séance, compléter avec
senat.ameli_txt_ameli,senat.ameli_amdet les recettessenat_identifier_texte_supportousenat_comparer_texte_support_et_texte_adopte.
Une absence de résultat ne prouve pas que le Sénat n’a pas traité le sujet : le document peut ne pas disposer d’Akoma Ntoso, être hors du corpus, employer une autre formulation ou appartenir à un rapport ou un débat.
Contrôler la couverture et les erreurs d’acquisition
Ne pas modifier les files depuis Moulineuse. Pour un diagnostic en lecture seule :
SELECT
status,
count(*)::integer AS documents,
min(updated_at) AS plus_ancien
FROM tisseuse.senat_document_content
GROUP BY status
ORDER BY status;
Un statut autre que available signifie que le contenu n’est pas indexable. Les principales causes sont : URL absente (no_url), URL hors senat.fr (unsupported_source), réponse non-Akoma (no_akoma), erreur réseau (fetch_error) ou erreur de parsing (parse_error).
Recettes liées
Poursuivez l'exploration avec des recettes proches : celles citées par cette page wiki et celles qui la référencent.
Recettes qui citent celle-ci
Recettes qui renvoient vers cette page depuis leur propre contenu.
À propos de ces recettes
Les recettes Moulineuse documentent des requêtes et des méthodes réutilisables pour analyser les données juridiques et parlementaires avec les outils Tricoteuses. Elles servent aussi directement au serveur MCP Moulineuse pour guider les usages et les extractions possibles.
Voir le serveur MCP Moulineuse