Comparatif d'index


(Laurentf60) #1

Bonjour à tous,

Je suis confronté à un problème de comparaison d'index. Je m'explique :
J'ai un script php qui parcours un index afin d'en extraire une liste de doc. Ici en l'occcurence des informations d'erreurs envoyées via logstash par des machines un peu partout dans le monde.

A partir de ce lot de résultats je dois comparer les données avec un autrre index afin de savoir si une ou plusieurs erreurs (doc) du premier index ont été enregistrées dans le second.

Pour les doc absents du second index mon script envoi une notification par mail et enregistre l'erreurs dans le second index (en gros : mail envoyé).

Hors mon problème est dans le volume des résultats de la 1er requête. Celle-ci renvoi assez souvent plus de 1000 documents. Donc impossible de construire une requete (sur l'index 2) basée sur des (ou... ou...).

Existe-t-il avec Es une possibilité pour ce genre de chose. Sachant qu'ES ne dispose de système de jointure comme les SGBD.

En espérant avoir été assez clair dans mes explications.

Merci d'avance pour vos réponses.

Laurent F


(David Pilato) #2

A part faire cela de façon itérative comme tu le fais, je ne vois pas trop.

L'idéal serait de le faire au moment de l'indexation et non après coup mais je ne sais pas si cela est possible dans ton cas.


(Guillaume Dufrenne) #3

Tu peux faire une ou plusieurs agrégations pour lister tout tes résultat par un élément idenfiable . Puis tu fait le même genre de requête sur le second index .
En php tu pourra facilement comparer les deux resultat .
Sinon tu peux essayer le module SQL query de elasticsearch .


(Laurentf60) #4

Merci David,
je vais continuer sur ma lancé. Malheureusement je n'ai pas la main sur l'organistaion des données indexées.


(Laurentf60) #5

Merci Guillaume pour ta réponse,
je vais regarder du coté de SQL Query.