J'ai deux index
{"Code": 1, "Nom": XYZ, "Ville": "Mumbai"} Code> Li>
- transaction_data
{"Code": 1, "Mois": Juin ", Paiement: 78000} Code> Li>
ol> je veux troisième index comme celui-ci
3) join_index p>
{"code": 1, "nom": xyz, "ville": "mumbai", "mois": juin ", paiement: 78000} code>
Comment c'est possible ?? p> J'essaie en LOGSTHESH P>
index => "join1"
}
3 Réponses :
Tant que je sache, cela ne peut pas être arrivé à l'aide d'API d'Elasticsearch. Pour gérer cela, vous devez définir un identifiant unique pour des documents pertinents. Par exemple, le code que vous avez mentionné dans votre question peut être un bon identifiant pour les documents. Vous pouvez donc réindexer le premier index au troisième et utiliser l'API de mise à jour pour les mettre à jour en lisant des documents à partir du deuxième index et les mettre à jour par leurs identifiants dans le troisième index. J'espère que je pourrais aider. P>
En fait, j'essaie de la recherche élastique de Logstash
Vous pouvez utiliser Elasticsearch Entrée forte> sur Employé_data em> dans vos filtres, utilisez le filtre Elasticssearch fort> sur transaction_data em > p> et envoyer votre nouveau document à votre troisième index avec l'Elasticsearch Sortie forte> p> Vous aurez 3 recherches élastiques connexion et le résultat peut être un peu lent.
Mais ça marche. P> p>
Il ne me donne que le nom, l'âge et le salaire
Entrée {élasticsearch {hosts => ["localhost"] index => "Employé_data" Query => '{"Query": {"match_all": {}}}' Scroll => "5m" Docinfo => True}} Filtre {elasticsearch {hosts => ["localhost"] index => "transaction_data" Query => '{"Query": {"Match": {"Code": "1"}}}' Champs => {"Moth" => "mois" "Paiement" => "Paiement"}}} Sortie {Elasticsearch {hosts => ["localhost"] index => "join32"}}}}}}}
Données de transaction: "_index": "transaction_data", "_type": "_doc", "_doc": "0lritxqbbyoi5xzyofx-", "_score": 1.0, "_source": {"Code": 1, "Moth": " Juin "," Paiement ": 32080
Désolé mais votre commentaire est très difficile. Je suppose que certains champs sont manquants. Vous devez déclarer chaque champ dans les instructions "champs" de votre filtre élastique elastic.co/guide/fr/logstash/Current/.../a>
champs => {"Paiement" => "Paiement"}
Aucun mappage trouvé pour [@TMESTAMTAMN] pour trier est l'erreur
Ok c'est mieux. Par défaut, le filtre ElasticSeSearch vous envoie le premier résultat de votre ordre de requête par horodatage. Ajoutez simplement ce code et il devrait fonctionner Trier => Code: Desc »ou commandez-le comme vous le souhaitez. Je viens de modifier ma réponse
@Abhishek Si la réponse vous aide s'il vous plaît valider et uppote
Y a-t-il un moyen de filtrer uniquement l'index comme chez les employés_data, je souhaite filtrer des enregistrements de la ville comme ville: Mumbai
Stackoverflow.com/Questtions/64097516/...
Vous n'avez pas besoin de la rampe d'entreprise pour faire cela, Elasticsearch lui-même soutient qu'en tirant parti de la Processeur enrich code>
.
Premièrement, vous devez créer une stratégie enrichie (utilisez l'index le plus petit, disons que c'est alors vous pouvez exécuter cette stratégie afin de créer un index d'enrichissement p> lorsque le L'indice d'enrichissement a été créé et peuplé, la prochaine étape vous oblige à créer un pipeline Ingest qui utilise la stratégie / index enrichi ci-dessus: P> Employés_Data ): p>
{
"_index" : "join1",
"_type" : "_doc",
"_id" : "0uA8dXMBU9tMsBeoajlw",
"_score" : 1.0,
"_source" : {
"code":1,
"name": "xyz",
"city": "Mumbai",
"Month": "June",
"payment": 78000
}
}
merci Val j'apprécie vraiment votre approche, mais je veux le faire de LOGSTH
Ok, ce n'était pas clair, il fallait passer par Logstash. Mais bien, alors qu'est-ce que @jaycreation suggère une façon d'aller ...