Récupérer l'id du document dans un script_score


(Christophe Boucaut) #1

Bonjour,

Depuis 2 heures, je m'arrache les cheveux à tenter de récupérer l'id du document dans mon script pour mon script_score.

Je donne en paramètre de mon script un tableau qui contient des valeurs pour faire varier le score. La valeur à utiliser est déterminée par l'id du document. Mais impossible de récupérer l'id du document courant. J'ai essayé doc['id'].value mais ça ne retourne pas l'id du document mais une autre valeur que je n'arrive pas à identifier.

Il y a bien le doc['_uid'].value mais on a pas le droit d'utiliser org.elasticsearch.index.mapper.Uid.DELIMITER (securityException) pour éventuellement faire une regex et ne récupérer que l'id du document ...

J'ai du mal à croire que ça soit impossible ou si compliqué donc je pense que je rate quelque chose et je vous remercie par avance pour toutes aides que vous pourrez m'apporter.

EDIT : Mon but final est de faire le même type de sort que sur cette issue Github mais certaines propositions ne semble plus valides.


(David Pilato) #2

Je ne vais pas répondre exactement mais expliquer un principe.

Si tu as besoin de faire des choses sur un id relatif à ton document, met cet id dans ton document.
D'une manière générale, ne pas utiliser des propriétés techniques d'elasticsearch comme _id, _type...

Si tu as un besoin fonctionnel, il faut le résoudre avec un moyen fonctionnel et non technique.


(Christophe Boucaut) #3

Okey. Merci pour la réponse. Je voulais éviter de dupliquer l'information entre l'id elasticsearch et un id dans le document en lui même mais je vais suivre ton conseil du coup ^^'.


(system) #4