Elasticsearch Επιλέξτε συγκεκριμένα πεδία

Elasticsearch Epilexte Synkekrimena Pedia



Το Elasticsearch θα επιστρέψει από προεπιλογή όλα τα πεδία ενός εγγράφου κατά την εκτέλεση ενός ερωτήματος αναζήτησης. Αυτό ορίζεται από την παράμετρο _source, η οποία περιέχει όλα τα δεδομένα που είναι αποθηκευμένα στην εγγραφή κατά τη διάρκεια της ευρετηρίασης.

curl -XGET 'http://localhost:9200/netflix/_doc/HXYz_IIBLbuC0z3qKeN2?pretty' -H 'kbn-xsrf: αναφορά'

Παραγωγή:







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



Επιλογή Elasticsearch Fields

Η παράμετρος πεδία μας επιτρέπει να ανακτήσουμε συγκεκριμένα πεδία σε ένα αίτημα αναζήτησης. Επιπλέον, η παράμετρος πεδίου θα μας επιτρέψει να ανακτήσουμε μεμονωμένα ή πολλαπλά πεδία. Μπορείτε επίσης να μορφοποιήσετε ημερομηνίες και τύπους χωρικών δεδομένων χρησιμοποιώντας την παράμετρο πεδίων.



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





curl -XGET 'http://localhost/netflix/_search' -H 'kbn-xsrf: αναφορά' -H 'Content-Type: application/json' -d'
{
'ερώτημα': {
'αγώνας': {
'_id': 'HXYz_IIBLbuC0z3qKeN2'
}
},
'πεδία': [
'δείκτης',
'ταυτότητα',
'τίτλος',
'έτος_έκδοσης',
'listed_in',
'διάρκεια',
'εκτίμηση'
],
'_source': ψευδής

}'

Στο παραπάνω αίτημα, χρησιμοποιούμε το API αναζήτησης για να πραγματοποιήσουμε αναζήτηση στο έγγραφο με το καθορισμένο αναγνωριστικό στην παράμετρο αντιστοίχισης.

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



Σημειώστε ότι το Elasticsearch θα περιλαμβάνει από προεπιλογή την παράμετρο _source, που αποτελείται από όλα τα πεδία εγγράφου. Για να διασφαλίσουμε ότι λαμβάνουμε μόνο τα καθορισμένα πεδία, απενεργοποιούμε την παράμετρο _source:

Το παραπάνω αίτημα θα πρέπει να επιστρέψει μια απάντηση όπως φαίνεται:

{
'πήρε': 1,
'timed_out': ψευδής,
'_shards': {
'σύνολο': 1,
'επιτυχής': 1,
'παράλειψη': 0,
'απέτυχε': 0
},
'χτυπήματα': {
'σύνολο': {
'αξία': 1,
'σχέση': 'ισοδύναμο'
},
'max_score': 1,
'χτυπά': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_score': 1,
'πεδία': {
'listed_in': [
'Ντοκιμαντέρ'
],
'διάρκεια': [
'90 λεπτά'
],
'release_year': [
2020
],
'εκτίμηση': [
'PG-13'
],
'τίτλος': [
«Ο Ντικ Τζόνσον είναι νεκρός»
]
}
}
]
}
}

Μπορείτε επίσης να χρησιμοποιήσετε την παράμετρο _source για να ορίσετε ποια πεδία θα επιστρέψετε από ένα ερώτημα αναζήτησης. Ένα παράδειγμα φαίνεται παρακάτω:

curl -XGET 'http://localhost:9200/netflix/_search' -H 'kbn-xsrf: αναφορά' -H 'Content-Type: application/json' -d'
{
'_source': ['title', 'release_year', 'rating', 'duration'],
'ερώτημα': {
'term': {
'_id': {
'value': 'HXYz_IIBLbuC0z3qKeN2'
}
}
}

}'

Σε αυτήν την περίπτωση, καθορίζουμε τα πεδία που θέλουμε να ανακτήσουμε ως πίνακας στην παράμετρο πηγής. Το παραπάνω αίτημα θα πρέπει να επιστρέψει την απάντηση όπως φαίνεται:

{
'πήρε': 0,
'timed_out': ψευδής,
'_shards': {
'σύνολο': 1,
'επιτυχής': 1,
'παράλειψη': 0,
'απέτυχε': 0
},
'χτυπήματα': {
'σύνολο': {
'αξία': 1,
'σχέση': 'ισοδύναμο'
},
'max_score': 1,
'χτυπά': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_score': 1,
'_source': {
'διάρκεια': '90 λεπτά',
'έτος_έκδοσης': 2020,
'βαθμολόγηση': 'PG-13',
'title': 'Ο Ντικ Τζόνσον είναι νεκρός'
}
}
]
}

}

συμπέρασμα

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

Για να μάθετε περισσότερα σχετικά με το Elasticsearch και τις δυνατότητές του, ανατρέξτε στους οδηγούς μας σχετικά με το θέμα. Είναι σίγουρο ότι θα βρείτε κάτι χρήσιμο.

Ευχαριστώ για την ανάγνωση και θα σας πιάσουμε στο επόμενο!!