Elasticsearch Αφαίρεση πεδίου

Elasticsearch Aphairese Pediou



'Όταν εργάζεστε με δείκτες Elasticearch, μπορεί να συναντήσετε μια περίπτωση όπου πρέπει να αφαιρέσετε ένα πεδίο από ένα υπάρχον έγγραφο. Δυστυχώς, το Elasticsearch δεν παρέχει ένα εγγενές αίτημα που μπορούμε να χρησιμοποιήσουμε για να εκτελέσουμε την εν λόγω ενέργεια.

Μπορούμε, ωστόσο, να χρησιμοποιήσουμε το API ενημέρωσης εγγράφων και να περάσουμε ένα σενάριο που μας επιτρέπει να καταργήσουμε ένα πεδίο με βάση το όνομά του.'







ΣΗΜΕΙΩΣΗ : Αυτή η διαδικασία απαιτεί να έχετε βασικές γνώσεις σχετικά με τη δέσμη ενεργειών Elasticsearch και το API ενημέρωσης εγγράφων. Μη διστάσετε να εξερευνήσετε τα έγγραφα ή τους οδηγούς μας σχετικά με το θέμα για να μάθετε περισσότερα.



Ας βουτήξουμε.



Ελέγξτε εάν υπάρχει έγγραφο

Πριν αφαιρέσετε ένα πεδίο από ένα συγκεκριμένο έγγραφο, είναι καλό να βεβαιωθείτε ότι το έγγραφο προορισμού υπάρχει εντός του ευρετηρίου.





Μπορούμε να χρησιμοποιήσουμε το API αναζήτησης για να ανακτήσουμε το έγγραφο προορισμού.

Για παράδειγμα, ας υποθέσουμε ότι έχουμε το ευρετήριο kibana_sample_logs_data. Μπορούμε να αναζητήσουμε στο ευρετήριο ένα έγγραφο που περιέχει μια συγκεκριμένη IP.



ΣΗΜΕΙΩΣΗ : Το παραπάνω παράδειγμα χρησιμοποιείται μόνο για λόγους επεξήγησης. Μπορείτε να χρησιμοποιήσετε διάφορες μεθόδους για να επαληθεύσετε εάν ένα συγκεκριμένο έγγραφο είναι διαθέσιμο στο ευρετήριο.

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_search' -H 'kbn-xsrf: αναφορά' -H 'Content-Type: application/json' -d'
{
'μέγεθος': 0,
'query': {'match': {
'ip': '171.24.97.162'
}}
}'

Προκύπτουσα έξοδος:

{
'πήρε': 3,
'timed_out': ψευδής,
'_shards': {
'σύνολο': 1,
'επιτυχής': 1,
'παράλειψη': 0,
'απέτυχε': 0
},
'χτυπήματα': {
'σύνολο': {
'αξία': 17,
'σχέση': 'ισοδύναμο'
},
'max_score': null,
'χτυπήματα': []
}

}

Στη συνέχεια, ένα απλό σενάριο μπορεί να αφαιρέσει ένα πεδίο προορισμού από το έγγραφο. Ξεκινήστε κάνοντας είσοδο στην κονσόλα Kibana και εκτελέστε την εντολή:

curl -XPOST 'http://localhost:9200/kibana_sample_data_logs/_update/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: αναφορά' -H 'Content-Type: application/json' -d'
{
'script': 'ctx._source.remove('\''ip'\'')'
}'

Το παραπάνω αίτημα χρησιμοποιεί μια ανώδυνη δέσμη ενεργειών περιβάλλοντος για να ενημερώσει το έγγραφο και να αφαιρέσει το πεδίο 'ip' με το καθορισμένο αναγνωριστικό.

Παραγωγή:

{
'_index': 'kibana_sample_data_logs',
'_id': '5pA49IIBkTjaZ6TtsiB5',
'_version': 2,
'αποτέλεσμα': 'ενημερώθηκε',
'_shards': {
'σύνολο': 2,
'επιτυχής': 2,
'απέτυχε': 0
},
'_seq_no': 14074,
'_primary_term': 1
}

Μόλις ενημερωθεί το έγγραφο, μπορείτε να επαληθεύσετε εκτελώντας το ερώτημα.:

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_doc/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: αναφορά'

Το παραπάνω αίτημα θα πρέπει να επιστρέψει τα δεδομένα που είναι αποθηκευμένα στο έγγραφο με το καθορισμένο αναγνωριστικό.

Μπορούμε να επαληθεύσουμε ότι το πεδίο IP δεν υπάρχει πλέον στο έγγραφο.

συμπέρασμα

Σε αυτό το άρθρο, μάθατε πώς να χρησιμοποιείτε τις δυνατότητες δέσμης ενεργειών του Elasticsearch για να καταργήσετε ένα πεδίο από ένα υπάρχον έγγραφο.

Ευχαριστώ για την ανάγνωση!!