Aller au menu du forum Aller au contenu du forum Aller à la recherche dans le forum
Logo Khaganat
Menu principal

Moteur de recherche interne à Khaganat, Searx, araignées

Zatalyz

Neodarz nous avait préparé une installation de searx pour faire de la recherche globale sur plusieurs sites autour de Khaganat, Ryzom, Ryzom core (trouver la doc !) : https://git.khaganat.net/neodarz/ryzomcore_searx

Le besoin d'un méta-moteur continue de se poser. Certaines parties de notre site ne sont pas bien indexées par les moteurs traditionnels, et si vous cherchez "site:khaganat.net brumes" sur votre moteur préféré, vous ne verrez rien venir du forum par exemple (alors que la recherche interne du forum ne marche pas trop mal). Si vous chercher un nom d'utilisateur sur le gitlab... vous n'allez pas avoir son profil, la liste de ses projets, ses contributions, ses issues... ou alors un peu, si vous avez de la chance. Le moteur de recherche interne de gitlab est pourri et c'est une volonté : le "bon" moteur est dans la version payante.

Searx répond au besoin d'agglomérer les résultats des divers moteurs internes, mais il n'a pas de crawler interne (ou araignée, c'est plus joli). Donc ça ne résous pas le souci de gitlab. Il faudrait donc ajouter un crawler, que Searx peut ensuite interroger ; ou faire un crawler qui récupère tous les sites.

J'ai commencé à regarder un peu https://scrapy.org/ , qui est en python. Je vous avoue que j'ai mis de côté les crawlers en java, peut-être à tort.

Je ne peux pas tester beaucoup plus avant, j'ai cassé Nuxru pour le moment et ma vm de test était dessus. De votre côté, si vous avez déjà croisé des trucs de ce genre, si vous connaissez des solutions à cette problématique, laissez vos infos ici :)

neodarz

Salut,

Techniquement searx intègre déjà un crawler maison (de ce qu'ai je compris à l'arrache lors de la création de mes crawlers perso pour le searx de khaganat) afin d'aller chercher les infos des moteurs de recherches.

Je vais voir comment fonctionne scrapy mais il y a des chances que searx intègre scrapy dans son crawler maison, il faut que je me renseigne à ce sujet.

Dans l'idée il faudrait un soft qui permet de crawler + indexer les résultats. J'ai testé YACY (https://yacy.net/fr/) qui fait ce genre sur deux/trois des sites de khaganat et ça marchait plutot bien mais j'ai pas trop réussi à le faire fonctionner comme je souhaitais...

Pourquoi indexer ? On va éviter de crawler tous les sites à chaque recherche non ?  :smiley2:

Ah et YACY c'est fait en JAVA donc je suis pas trop pour, j'ai pas envie de jouer avec du JAVA...

Zatalyz

Oui, en effet, il faut aussi indexer ce qu'on trouve  :D

Si searx a déjà un truc, c'est cool ; je n'ai rien trouvé lors de mes recherches et sur l'IRC de Searx on m'a dit qu'il n'y avait rien, mais je ne sais pas trop quel était la validité de la personne qui m'a répondu. La solution a l'air bien complète, donc avec un peu de chance...

Vu que nuxru est réparé, je vais pouvoir doucement reprendre des tests, voir au moins comment intégrer ton travail actuel sur le nouveau site en django ; ça ferait déjà une belle avancée. Mais bon, j'avance pas vite  ^^

neodarz

Bon finalement j'ai trouvé un soft qui permet d'indexer et de faire des recherches sur ce qui à été indexé \o/

J'en ai checker plusieurs mais je suis tombé sur : https://xapian.org qui est toujours maintenu et qui est utilisé par des projets comme Debian. (Plus d'infos ici : https://xapian.org/users)

Il y as pas longtemps j'ai fait un dump du site nevrax.org et je viens de faire un test dessus : rapide et efficace :)

Bon l'interface est moche, il n'y presque pas de css, mais on peut brancher searx dessus pour faire le taf.

Y'a plus qu'a documenté tous ça car lors de l'installation sur archlinux il manquait des bouts...

Zatalyz

Bonne nouvelle ça :)

L'aspect moche est effectivement secondaire ; passer par searx me semble une assez bonne idée parce que certains moteurs internes sont déjà très efficaces (dokuwiki pour ne pas le citer). Mais même si on fait tout passer via xapian, modifier le css n'est pas le plus compliqué. Enfin je dis ça mais quand on voit les soucis de mon dernier thème... bref en tout cas, ça fait un truc à tenter !

Si tu as le temps de commencer à documenter les particularités de l'installation, c'est super.


Zatalyz

Le gitlab me gonfle très légèrement aux entournures ; son indexation interne n'est pas parfaite, mais son indexation par les robots externes est un peu trop bonne. Cela veut dire que des pages de projet gitlab se sont retrouvées mieux référencées que le reste du site dans certains moteurs de recherche ; j'hésitais sur le fait de le laisser ou non et accessoirement à retravailler les autres parties du site pour améliorer leur référencement (genre faire notre sitemap... un jour). Ça, ça semble réglé, au moins sur DDG ou sur un agrégateur comme Framabee : il est probable que les indexeurs aient jugé que gitlab était du bruit, et je ne peux pas leur donner tord. Par contre, ça a permis à des robots spammeurs de nous trouver... Si c'est pas référencé, ils nous embêtent moins, et vérifier le spam sur gitlab est insupportable. Bref, je vais mettre ceci :
User-Agent: *
Disallow: /


Mais cela peut te poser souci pour notre indexation interne. En principe tu peux simplement ignorer le robots.txt (c'est entre nous !), mais si ce n'est pas si simple, il me suffit de savoir quel est le nom du bot que je dois laisser passer, et je le mettrais dans le fichier.

neodarz

En effet vu que c'est à nous, on s'en fiche. Il me semble que le fichier robots.txt de gitlab avant modifications était celui par défaut, si c'était pas le cas ça sera cool que tu le poses quelque part car je l'utilisais...

Et je peux aussi dire d'ignorer le fichier robots.txt, pas besoin de rajouter le nom du crawler dans le fichier robots.txt ça change pas grand-chose mise à part la propreté du système (et le respect des normes par la même occasion ^^).

Pour l'histoire des robots spammeur ils ignorent totalement l'existence du robots.txt donc bon...

Zatalyz

Les robots spammeurs s'en moquent, mais ils trouvent le site plus facilement si google les aide... et google respecte publiquement le robots.txt :)

Le robots.txt est celui par défaut (plus ces deux modifs), je te le met ici si besoin :

# See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
#
# To ban all spiders from the entire site uncomment the next two lines:
User-Agent: *
Disallow: /

# Add a 1 second delay between successive requests to the same server, limits resources used by crawler
# Only some crawlers respect this setting, e.g. Googlebot does not
# Crawl-delay: 1

# Based on details in https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/routes.rb, https://gitlab.com/gitlab-org/gitlab-ce/blob/master/spec$
User-Agent: *
Disallow: /autocomplete/users
Disallow: /search
Disallow: /api
Disallow: /admin
Disallow: /profile
Disallow: /dashboard
Disallow: /projects/new
Disallow: /groups/new
Disallow: /groups/*/edit
Disallow: /users
Disallow: /help

# Global snippets
User-Agent: *
Disallow: /s/
Disallow: /snippets/new
Disallow: /snippets/*/edit
Disallow: /snippets/*/raw

# Project details
User-Agent: *
Disallow: /*/*.git
Disallow: /*/*/fork/new
Disallow: /*/*/repository/archive*
Disallow: /*/*/activity
Disallow: /*/*/new
Disallow: /*/*/edit
Disallow: /*/*/raw
Disallow: /*/*/blame
Disallow: /*/*/commits/*/*
Disallow: /*/*/commit/*.patch
Disallow: /*/*/commit/*.diff
Disallow: /*/*/compare
Disallow: /*/*/branches/new
Disallow: /*/*/tags/new
Disallow: /*/*/network
Disallow: /*/*/graphs
Disallow: /*/*/milestones/new
Disallow: /*/*/milestones/*/edit
Disallow: /*/*/issues/new
Disallow: /*/*/issues/*/edit
Disallow: /*/*/merge_requests/new
Disallow: /*/*/merge_requests/*.patch
Disallow: /*/*/merge_requests/*.diff
Disallow: /*/*/merge_requests/*/edit
Disallow: /*/*/merge_requests/*/diffs
Disallow: /*/*/project_members/import
Disallow: /*/*/labels/new
Disallow: /*/*/labels/*/edit
Disallow: /*/*/wikis/*/edit
Disallow: /*/*/snippets/new
Disallow: /*/*/snippets/*/edit
Disallow: /*/*/snippets/*/raw
Disallow: /*/*/deploy_keys
Disallow: /*/*/hooks
Disallow: /*/*/services
Disallow: /*/*/protected_branches
Disallow: /*/*/uploads/


neodarz

En effet google peut les aider !

Merci pour l'ancien robots.txt !

Licences Mentions légales Accueil du site Contact