Comme mon titre l'explique, je souhaite ferme une requête Select qui me récupère les documents où 2 colonnes ont la même valeur.
En effet, j'ai essayé via :
mais cela va me recupére les documents où colonne1 a pour valeur colonne2. Et moi je souhaite récupérer les documents où la valeur de colonne1 et colonne2 est identique.
Je suis nouveau, je n'ai pas trouvé de réponse à mon problème, veuillez m'excuser si ma question est facile.
With the exception of script fields which are executed once per search hit, scripts used in search and aggregations will be executed once for every document which might match a query or an aggregation. Depending on how many documents you have, this could mean millions or billions of executions: these scripts need to be fast!
L'idéal est de calculer ça au moment de l'indexation. Avec un script ou pas. En tout cas ça sera plus rapide ensuite à la recherche.
D'accord, merci pour ta réponse, je vais quand même regarder au niveau des scripts.
Aurais-tu par hasard une idée de comment le réaliser ? sans doute avec doc['colonne1'] mais je ne comprends comment je pourrais faire comprendre au script que doc['colonne1']=doc['colonne2']
Juste une autre facon de faire mais vraiment spécifique, si t'as pas besoin de requeter en temps réel et t'utilises des données dont tu connais déjà le mapping que t'as définie dans un template.
Tu peux utiliser "_reindex" pour mettre à jour les documents avec ta condition, un exemple en dessous:
deux documents dont un à le champ name == name_common
POST user_data/doc/
{
"name": "Party",
"name_common": "Party"
}
POST user_data/doc/
{
"name": "Party",
"name_common": "Patrol"
}
Si tu regardes dans l'index user_data_equal t'auras tes documents recopié avec dans le premier document la colonne is_equal. Y'a meme moyen de faire plus compliqué suivant tes besoins en utilisant ingest....
Le mieux et le plus simple c'est comme dit David, c'est de le faire à l'indexation mais si t'as déjà tes données et tu peux pas les modifier avant d'indexer.
Ca fait plein de si, mais dans un cas precis ca peux aider.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.