Bonjour'nal
L'outil de recherche integre a linuxfr est decevant. La population linuxfr gronde, en temoigne ce journal: computingfroggy/journaux/recherche-sur-dlfp. Les reproches sont nombreuses: impossible de retrouver un article lu recemment. Une recherche sur 0ad. renvoie un article de 2009 comme premier resultat, une recherche par les tags omet des articles recents aleatoirement. Et il y a plein d'autres problemes.
Certains utilisateurs desesperes se tournent meme vers "le grand mechant" (ref).
Considerant tout ceci, je propose de crowdsourcer un nouvel outil de recherche. Outre la configuration d'un outil de recherche de texte tel que grep, Postgres ou ElasticSearch, il nous faut un data pipeline qui va scrawler linuxfr, parser les pages et les rendre traitable par notre outil de recherche.
C'est par ce data pipeline que je propose de commencer. On pourrait l'ecrire dans le style pipes and filters qui fait la gloire d'unix. Chacun pourra s'attaquer au probleme qui lui plait le mieux dans le language qui lui plait. Il faut juste qu'on s'entende sur les interfaces pour faciliter la reutilisation des composants.
Le pipeline sera compose de 3 executables distincts. Voici un exemple d'utilisation du data pipeline et les interfaces et les composants que je propose pour commencer.
$ linuxfrReader -type "journal" -dateStart "2018-07-21" -dateEnd "2018-07-22" | pageParser | documentWriter
- linuxfrReader:
- [input]:
- type: type de document a rapatrier. journal, forum, depeche
- dateStart: date minimale du document a lire
- dateEnd: date maximale du document a lire
- [output]:
- texte, json
- utf-8
- un document par ligne (pour le traitement en flux continu)
- exemple:
{
"type": "journal/depeche/forum/lien",
"date": "YYYY-MM-DD",
"html_content": "<html>Full content</html>"
}
- pageParser:
- [input] = output de linuxfrReader
- [output]:
- json
- utf-8
- un document par ligne
{
"type": "journal/depeche/forum/lien",
"date": "YYYY-MM-DD",
"author": "j_m",
"score": 21,
"title": "Some title",
"body": "corps de texte sans tag"
}
- documentWriter:
- [input] = output du pageParser
- [output]: au choix
- ElasticSearch
- MySQL
- Postgres
Je ne sais pas si c'est tres important d'avoir un outil de recherche. Mais je suis curieux de voir si on peut crowdsourcer un developpement :-)
# Commentaire supprimé
Posté par mikita . Évalué à -10. Dernière modification le 22 juillet 2018 à 19:20.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Merci !
Posté par j_m . Évalué à 7.
Mon dieu. J'ai attire des spammeurs.
Ca doit etre a cause des buzzwords. J'aurai du me relire :-/
# Source des données
Posté par dadoonet (site web personnel) . Évalué à 6.
Plutôt que de crawler des pages web (ce qui peut être fait avec GOPA: https://github.com/infinitbyte/gopa), n'est il pas possible d'avoir accès à la source qui génère les pages (genre une base de données) ou mieux à l'application qui écrit ces données en base ?
Developer | Evangelist at elastic
[^] # Re: Source des données
Posté par barmic . Évalué à 1.
Il faut pour ça que les admins de linuxfr nettoient la base de données. Ils peuvent le faire, mais ça prend du temps (et ce n'est pas particulièrement amusant).
L'objectif c'est d'avoir des données, le code qui les produit ne sert à rien dans ce contexte.
Pour répondre à la dépêche, je ne trouve pas que le problème est pris dans le bon sens. AMHA il faut limiter le crawling de linuxfr.
Il vaut mieux le faire une fois et fournir une archive (ça pourrait même être mis à dispo par l'équipe de manière (bi ?)mensuelle). À partir de là tout ceux que ça intéresse peuvent monter leur propre solution.
[^] # Re: Source des données
Posté par Benoît Sibaud (site web personnel) . Évalué à 3. Dernière modification le 23 juillet 2018 à 17:02.
Cf la discussion sur l'entrée de suivi https://linuxfr.org/suivi/dump-anonymise-de-la-base-de-donnees#comment-1744512
[^] # Re: Source des données
Posté par j_m . Évalué à 2. Dernière modification le 23 juillet 2018 à 20:13.
Je suis d'accord. J'ai commence la premiere partie, qui doit downloader les pages de linuxfr et je fais mes tests de parsing localement sur une copie de page qui est dans le repertoire resources de mes unit tests.
Si quelqu'un d'autre travaille sur cette partie, j'espere qu'elle fait de meme.
Oui, parser une fois, pour avoir des donnees de test ca sera bon.
[^] # Re: Source des données
Posté par cassoslesptitsgars . Évalué à 0.
pour le crawl il y a plein d outils.
j'avais eu des expériences réussies avec scrapy (python) il y a quelques années,
pour un besoin perso.
si tu parviens à une archive, peux tu y donner accès? cela limiterait le crawl.
je ne sais pas s'il faut ou pas limiter l'accès à cette archive ni comment.
[^] # Re: Source des données
Posté par j_m . Évalué à 2. Dernière modification le 23 juillet 2018 à 20:56.
Pourquoi pas. C'est bien configurable?
Tu penses qu'on peut tout remplacer avec ca? Extraire les dates de creation et tout ce qu'on veut?
Moi je vais continuer sur le truc que j'ai propose mais si tu avances dans cette direction ou quelqu'un d'autres, je participerai volontier a ameliorer les requetes ES pour avoir quelque chose d'un peu mieux que Duck Duck go.
[^] # Re: Source des données
Posté par dadoonet (site web personnel) . Évalué à 1.
Je ne l'ai jamais utilisé.
Mais c'est pour cette raison que je conseille de partir de la source.
Sinon si il y a un dump local de toutes les pages web, mon projet FSCrawler indexera ça correctement je pense. https://github.com/dadoonet/fscrawler
Developer | Evangelist at elastic
# Faire appel aux utilisateurs de weboob
Posté par Nonolapéro . Évalué à 5.
Il existe une fonctionnalité pour suivre le site comme une liste de diffusion. Peut-être que quelqu'un pourrait t'envoyer une copie de son dossier d'archive.
http://weboob.org/applications/monboob.html
[^] # Re: Faire appel aux utilisateurs de weboob
Posté par barmic . Évalué à 3.
Ou juste réutiliser le parseur qu'ils ont fait.
[^] # Re: Faire appel aux utilisateurs de weboob
Posté par j_m . Évalué à 2.
Il faut un format qui contient les dates de créations et les urls.
Et pour que ca soit utile il faut que ca soit plus facile à parser que linuxfr lui-même.
De ce que j'ai essayé pour l'instant linuxfr a l'air déjà plutôt facile.
[^] # Re: Faire appel aux utilisateurs de weboob
Posté par cassoslesptitsgars . Évalué à 1.
il faudrait que tu ajoutes un champ "url" à ton linuxfrReader dans ton journal.
ainsi, l'association url/donnée ne serait pas perdue.
je fais un truc de mon côté aussi.
j'aurais voulu pondre un truc en c pour la beauté mais pff pas la maîtrise.
ca sera un langage de script, donc.
une fois au moteur de recherche, j'aimerais bcp pouvoir échanger.
as tu ouvert une source accessible en ligne?
[^] # Re: Faire appel aux utilisateurs de weboob
Posté par j_m . Évalué à 2.
Bien vu. On ne peut malheureusement pas editer un journal. Mais c'est note.
Tu fais comme tu veux. On n'est pas presse.
J'ai cree un tchat sur framateam: https://framateam.org/linuxfr-search/
Et j'ai cree un projet framagit: https://framagit.org/j_m/linuxfr-reader
Pour l'instant c'est le desordre. J'ai ecris quelque methodes dans les units tests et je les mettrais proprement dans le code de production quand j'aurais reflechis a l'organisation du code.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.