Concept de Recherche Fédérée


(Claude Garceau) #1

Je prépare un concept de recherche fédérée pour une audience et des contenus internes, donc non public.

Pour résumer, il s'énonce comme suit:
Un ensemble de services permettant de collecter des documents sur des référentiels sources et de les indexer dans le but de permettre à un utilisateur de les rechercher à partir d’un point unique. Ils permettent aussi de diriger des requêtes formulées par les utilisateurs sur d’autres engins de recherche pointant sur des dépôts documentaires non indexés dans l’index de la Recherche fédérée et d’en obtenir les résultats.

La nature ''Fédérée'' du projet consiste donc à pouvoir interroger d'autres engins de recherche que Elasticsearch à partir d'une même requête utilisateur. Cependant, je ne sais pas encore comment cette requête pourrait être ainsi distribuée.

J'ai déjà identifié Nutch pour la collecte et Tika pour l'extraction et l'analyse des textes des documents bureautiques et pages web. Je viens de voir que vous avez publié un FS crawler sur GitHub...Intéressant... Le contenu des serveurs de fichiers (file system) doivent aussi êtres collectés et analysés pour l'indexation dans Elasticsearch. Mais si je prends FS Crawler, il me manquera toujours un outil de collecte pour les pages de mon site web intranet, c'est pourquoi je ciblais peut-être Nutch car il collecte les FS et les sites web. Enfin, vous me direz votre suggestion ! DA'utre part, si je comprends bien l'outil Logstash,ce dernier est surtout conçue pour les logs et non pour collecte des pages web de mon intranet des fichiers sur des disques partagés

Elasticsearch est ciblé pour l'indexation et la recherche. Nous aurons besoin d'une application web en tant qu'interface utilisateur. Il faut donc prendre Kibana ou la bâtir (j'ai pensé à une SPA construite avec Angular2)

Est-ce que Kibana peut servir d'interface utilisateur pour formuler des requêtes de ce type ? Kibana me semble davantage un outil d'analytique alors que tout ce dont j'ai besoin c'est d'une liste de résultats que je peux filtrer avec facettes

Voici donc une série de critères essentiels pour nous et je cherche à savoir si Elasticsearch peut y répondre, si le produit a cette capacité:

  1. La solution permet de collecter les autorisations d'accès de chacun des documents
  2. La solution permet d'extraire les autorisations d'accès de chacun des documents
  3. La solution permet de transmettre une même requête simultanément sur plusieurs engins de recherche externes et d'en recevoir les résultats (par ex.: des systèmes de GED et des sites de partage de fichiers sur infonuagique)
  4. La solution permet d'uniformiser les syntaxes de requêtes en fonction des engins de recherche des référentiels sources
  5. La solution permet de retrouver des éléments comportant des mots apparentés à ceux inscrits dans la requête (ex.: matière résiduelle, compost, recyclage. collecte sélective)
  6. La solution permet de retrouver des éléments comportant des mots antonymes aux mots inscrits dans la requête
  7. La solution permet de filtrer les résultats de recherche en fonction des référentiels sources
  8. La solution doit être multiplateforme, c.-à-d. accessible à partir de multiples outils mobiles (téléphones intelligents, tablettes électroniques) et de postes de travail fixes
  9. La solution supporte la langue française dans ses paramètres régionaux (par ex.: les formats de date et de nombre)

Salutations,


(David Pilato) #2

Je vois bien le genre. C'était le but du projet que j'avais commencé en 2012: http://www.scrutmydocs.org/
Mais pas eu le temps de le poursuivre malheureusement. J'ai juste continué à travailler sur une de ses briques de base: FSCrawler (ex FSRiver).

Moi non plus. Mais idéalement, tout indexer dans elasticsearch dans des index différents et hop, on a avec elasticsearch un recherche fulltext sur toutes les données de l'entreprise, quelque soit la source !

Je n'ai jamais testé Nutch. J'en entends parler en effet. Si ça fonctionne et si la connection vers elasticsearch est bonne, pourquoi pas.

En effet je ne pense pas que logstash ait quelque chose comme cela. Un webcrawling-beats serait super mais je ne pense pas que cela existe.

Kibana est l'interface utilisateur d'Elasticsearch. Nous allons (bientôt ?) sortir ce qui s'appellerait le Kibana UI Framework qui permet de disposer de composants graphiques super faciles à mettre dans une application Kibana.
Mais sinon, oui. Pourquoi pas AngularJS 2 or React. Nous nous orientons sur ce dernier dans l'équipe Kibana visiblement.

Oui. Mais il faut faire une application Kibana. Kibana étant à voir comme un framework permettant d'implémenter son besoin. C'est la petite idée que j'ai en tête pour faire revivre scrutmydocs. Mais il n'y a aucune obligation à utiliser Kibana. On peut faire beaucoup plus simple sans. Un peu ce qu'on faisait ici: https://github.com/scrutmydocs/scrutmydocs/tree/master/src/main/webapp

FSCrawler collecte ce qui est possible (groupId, userId). Mais pas les droits. Juste le nom du propriétaire.

Non. Elasticsearch n'interroge que Elasticsearch. Il faut voir Elasticsearch comme un base de données Oracle. Est-ce que lorsqu'on fait un SELECT * FROM table dans Oracle, on va chercher d'autres sources ? Non évidemment. Donc soit on met tout dans elasticsearch (mon conseil), soit on traite cette multi interrogation dans l'application métier/cliente.

Oui. Utiliser des synonymes pour cela. Attention, c'est à vous de définir ces synonymes.
En utilisant le même principe de synonymes mais pour les antonymes, on peut chercher des termes et trouver des documents contenant leur contraire.

Oui. Si c'est indexé dans elasticsearch.

Oui. C'est du REST/Json. L'interface est de votre responsabilité donc à vous de la rendre compatible.

Si c'est au niveau IHM, encore une fois ce n'est pas la responsabilité d'elasticsearch. Si c'est pour une recherche, c'est un peu plus délicat. Il y aura à mon avis du traitement à faire côté client.


(system) #3

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.