Πώς να δημιουργήσετε δείκτες ελαστικής αναζήτησης

How Create Elasticsearch Indices



Το Elasticsearch είναι ένα μέρος της δημοφιλούς στοίβας ELK που χρησιμοποιείται για την ανάλυση αρχείων καταγραφής και την αναζήτηση. Οι εφαρμογές και τα συστήματα καταγράφουν συνεχώς δεδομένα που μπορεί να είναι πολύ χρήσιμα για την αντιμετώπιση προβλημάτων και την παρακολούθηση προβλημάτων. Χρησιμοποιώντας τη στοίβα ELK, έχετε τα καλύτερα εργαλεία για να εκτελέσετε αυτές τις εργασίες γρήγορα και πολύ εύκολα.

Σε αυτό το γρήγορο σεμινάριο, θα εξετάσουμε το Elasticsearch, συγκεκριμένα πώς να δημιουργήσουμε δείκτες στη μηχανή Elasticsearch. Παρόλο που δεν χρειάζεστε ολοκληρωμένη γνώση σχετικά με τη στοίβα ELK για να ακολουθήσετε αυτό το σεμινάριο, η βασική κατανόηση των ακόλουθων θεμάτων μπορεί να είναι επωφελής:







  • Χρησιμοποιώντας το τερματικό, συγκεκριμένα, cURL
  • Βασικές γνώσεις API και JSON
  • Υποβολή αιτήματος HTTP

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



Τι είναι οι Δείκτες Elasticsearch;

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



Όπως αναφέρθηκε σε προηγούμενη ανάρτηση, οι δείκτες Elasticsearch είναι αντικείμενα JSON - θεωρούνται η βασική μονάδα αποθήκευσης στο Elasticsearch. Αυτά τα σχετικά έγγραφα JSON αποθηκεύονται σε μία μονάδα που αποτελεί ένα ευρετήριο. Σκεφτείτε τα έγγραφα Elasticsearch ως πίνακες σε μια σχεσιακή βάση δεδομένων.





Ας συσχετίσουμε έναν δείκτη Elasticsearch ως βάση δεδομένων στον κόσμο της SQL.

  • MySQL => Βάσεις δεδομένων => Πίνακες => Στήλες/σειρές
  • Elasticsearch => Ευρετήρια => Τύποι => Έγγραφα JSON με Ιδιότητες

Πώς να δημιουργήσετε ένα ευρετήριο ελαστικής αναζήτησης

Το Elasticsearch χρησιμοποιεί ένα ισχυρό και διαισθητικό REST API για να εκθέσει τις υπηρεσίες του. Αυτή η λειτουργικότητα σάς επιτρέπει να χρησιμοποιείτε αιτήματα HTTP για την εκτέλεση λειτουργιών στο σύμπλεγμα Elasticsearch. Επομένως, θα χρησιμοποιήσουμε το API δημιουργίας ευρετηρίου για να δημιουργήσουμε ένα νέο ευρετήριο.



Για αυτόν τον οδηγό, θα χρησιμοποιήσουμε το cURL για να στείλουμε τα αιτήματα και να διατηρήσουμε την ακεραιότητα και τη χρηστικότητα για όλους τους χρήστες. Ωστόσο, εάν αντιμετωπίσετε σφάλματα με το cURL, σκεφτείτε να χρησιμοποιήσετε την Κονσόλα Kibana.

Η σύνταξη για τη δημιουργία ενός νέου ευρετηρίου στο σύμπλεγμα Elasticsearch είναι:

ΒΑΖΩ /

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

Μπορείτε επίσης να καθορίσετε διάφορα χαρακτηριστικά του ευρετηρίου, όπως στο σώμα ευρετηρίου:

  • Οι ρυθμίσεις για το ευρετήριο
  • Ευρετήριο ψευδωνύμων
  • Αντιστοιχίσεις για πεδία ευρετηρίου

Το όνομα ευρετηρίου είναι μια απαιτούμενη παράμετρος. Διαφορετικά, θα λάβετε ένα σφάλμα για το URIL (/)

curl -X PUT localhost: 9200
{'error': 'Λάθος μέθοδος HTTP για uri [/] και μέθοδος [PUT], επιτρέπεται: [DELETE, HEAD, GET]', 'status': 405}

Για να δημιουργήσουμε ένα νέο ευρετήριο με το όνομα single_index, περνάμε το αίτημα:

PUT /single_index

Για cURL, χρησιμοποιήστε την εντολή:

curl -X PUT 'localhost: 9200/single_index? pretty'

Αυτή η εντολή θα πρέπει να έχει ως αποτέλεσμα την κατάσταση HTTP 200 OK και ένα μήνυμα με αναγνωρισμένο: true ως:

{
αναγνωρισμένο: αλήθεια,
'shards_acknowledged': true,
'index': 'single_index'
}

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

Ευρετήριο κανόνων ονοματοδοσίας

Κατά τη δημιουργία ονομάτων για τους δείκτες Elasticsearch, πρέπει να τηρείτε τα ακόλουθα πρότυπα ονοματοδοσίας:

  1. Το όνομα ευρετηρίου πρέπει να είναι μόνο με πεζά γράμματα.
  2. Τα ονόματα ευρετηρίου δεν μπορούν να ξεκινούν με παύλα (-), υπογράμμιση (_) ή πρόσημο προσθήκης (+)
  3. Τα ονόματα δεν μπορούν να είναι. ή ..
  4. Τα ονόματα ευρετηρίου δεν μπορούν να περιλαμβάνουν ειδικούς χαρακτήρες όπως: , /, *,?,,, |, '(Κενός χαρακτήρας), ,, #
  5. Το μήκος των ονομάτων ευρετηρίου πρέπει να είναι μικρότερο από 255 byte. Οι χαρακτήρες πολλών byte θα υπολογίζονται στο συνολικό μήκος του ονόματος ευρετηρίου. Για παράδειγμα, εάν ένας χαρακτήρας έχει μήκος 8 byte, το συνολικό υπόλοιπο μήκος του ονόματος είναι 255 - 8
  6. Στην τελευταία έκδοση του Elasticsearch, ονόματα που ξεκινούν με α. προορίζονται για κρυφούς δείκτες και εσωτερικούς δείκτες που χρησιμοποιούνται από τα πρόσθετα Elasticsearch.

Πώς να δημιουργήσετε ένα σώμα ευρετηρίου

Όταν χρησιμοποιείτε το αίτημα PUT για δημιουργία ευρετηρίου, μπορείτε να περάσετε διάφορα ορίσματα που καθορίζουν τις ρυθμίσεις για το ευρετήριο που θέλετε να δημιουργήσετε. Οι τιμές που μπορείτε να καθορίσετε στο σώμα περιλαμβάνουν:

  • Aliευδώνυμα: Καθορίζει ονόματα ψευδωνύμων για το ευρετήριο που θέλετε να δημιουργήσετε. αυτή η παράμετρος είναι προαιρετική.
  • Ρυθμίσεις: Αυτό ορίζει τις επιλογές διαμόρφωσης για το ευρετήριο που θέλετε να δημιουργήσετε. Εάν δεν καθορίσετε τυχόν παραμέτρους, το ευρετήριο δημιουργείται χρησιμοποιώντας προεπιλεγμένες διαμορφώσεις.
  • Αντιστοιχίσεις: Αυτό καθορίζει την αντιστοίχιση πεδίων στο ευρετήριο. Οι προδιαγραφές που μπορείτε να συμπεριλάβετε στις αντιστοιχίσεις περιλαμβάνουν:
    • Το όνομα του πεδίου
    • Ο τύπος δεδομένων
    • Η παράμετρος χαρτογράφησης

Για παράδειγμα δημιουργίας ευρετηρίου με διαμορφώσεις σώματος, εξετάστε το παρακάτω αίτημα:

PUT /single_index_with_body
{
'Ρυθμίσεις': {
'number_of_shards': 2,
'number_of_replicas': 2
},
αντιστοιχίσεις: {
'ιδιότητες': {
'field1': {'type': 'object'}
}
}
}

Για ισοδύναμο αίτημα cURL:

curl -XPUT 'http: // localhost: 9200/single_index_with_body' -H 'Content -Type: application/json' -d '{' settings ': {' number_of_shards ': 2,' number_of_replicas ': 2},' mappings ' : {{properties ': {' field1 ': {' type ':' object '}}}}'

Το παραπάνω αίτημα δημιουργεί ένα νέο ευρετήριο με το όνομα single_index_with_body με 2 αριθμούς θραυσμάτων και 2 αντίγραφα. Δημιουργεί επίσης μια αντιστοίχιση με ένα πεδίο με όνομα πεδίου1 και τύπο ως αντικείμενο JSON.

Μόλις στείλετε το αίτημα, θα λάβετε μια απάντηση με την κατάσταση του αιτήματος ως:

{
αναγνωρισμένο: αλήθεια,
'shards_acknowledged': true,
'index': 'single_index_with_body'
}

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

Πώς να δείτε το ευρετήριο Elasticsearch

Για να δείτε τις πληροφορίες σχετικά με το ευρετήριο που δημιουργήσατε, χρησιμοποιήστε ένα παρόμοιο αίτημα με αυτό της δημιουργίας ενός ευρετηρίου, αλλά χρησιμοποιήστε τη μέθοδο HTTP αντί για PUT ως:

GET /single_index_with_body

Για cURL,

curl -XGET http: // localhost: 9200/single_index_with_body

Αυτή η εντολή θα σας δώσει λεπτομερείς πληροφορίες σχετικά με το ζητούμενο ευρετήριο ως:

{
'single_index_with_body': {
'ψευδώνυμα': {},
'αντιστοιχίσεις': {
'ιδιότητες' : {
'field1': {
'type': 'object'
}
}
},
'Ρυθμίσεις' : {
'index': {
'δρομολόγηση': {
'κατανομή': {
'περιλαμβάνω' : {
'_tier_preference': 'data_content'
}
}
},
'number_of_shards': '2',
'provided_name': 'single_index_with_body',
'ημερομηνία_δημιουργίας': '1611045687208',
'number_of_replicas': '2',
'uuid': '3TRkO7xmQcSUOOGtb6pXVA',
'εκδοχή' : {
'δημιουργήθηκε': '7100299'
}
}
}
}
}

συμπέρασμα

Αυτός ο οδηγός συζήτησε πώς να συνεργαστείτε με την Elasticsearch για τη δημιουργία API ευρετηρίου για τη δημιουργία νέων δεικτών. Συζητήσαμε επίσης πώς να δημιουργήσουμε κατάλληλα ονόματα για τους δείκτες και τις ρυθμίσεις διαμόρφωσης.

Χρησιμοποιώντας αυτόν τον οδηγό, μπορείτε τώρα να δημιουργήσετε και να δείτε δείκτες χρησιμοποιώντας το Elasticsearch API.