τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Συγγραφέας: από το ElasticΤζεφ Βέσταλ, Τζακ Κόνραντσον
Στο 8.14, το Elastic παρουσίασε μια νέα δυνατότητα αναζήτησης που ονομάζεται "retrievers" στο Elasticsearch. Διαβάστε παρακάτω για να μάθετε για την απλότητα και την αποτελεσματικότητά τους και πώς μπορούν να βελτιώσουν τις λειτουργίες αναζήτησής σας.
Τα Retriever είναι ένα νέο επίπεδο αφαίρεσης που προστίθεται στο API αναζήτησης στο Elasticsearch. Παρέχουν τη δυνατότητα διαμόρφωσης αγωγών ανάκτησης πολλαπλών σταδίων σε μία κλήση API _search. Αυτή η αρχιτεκτονική απλοποιεί τη λογική αναζήτησης στην εφαρμογή σας εξαλείφοντας την ανάγκη για πολλαπλές κλήσεις API Elasticsearch για πολύπλοκα ερωτήματα αναζήτησης. Μειώνει επίσης την ανάγκη για λογική από την πλευρά του πελάτη, η οποία συχνά απαιτεί συνδυασμό αποτελεσμάτων από πολλαπλά ερωτήματα.
Τρεις τύποι ριτρίβερ περιλαμβάνονται στην αρχική έκδοση. Κάθε retriever έχει σχεδιαστεί για έναν συγκεκριμένο σκοπό και όταν συνδυαστεί, μπορεί να εκτελέσει σύνθετες αναζητήσεις.
Οι διαθέσιμοι τύποι περιλαμβάνουν:
Για τα παραδοσιακά ερωτήματα, το ερώτημα αποτελεί μέρος μιας συνολικής κλήσης API αναζήτησης. Τα Retriever διαφέρουν στο ότι έχουν σχεδιαστεί ως ανεξάρτητες οντότητες που μπορούν να χρησιμοποιηθούν μεμονωμένα ή εύκολα να συνδυαστούν. Αυτή η αρθρωτή προσέγγιση παρέχει μεγαλύτερη ευελιξία κατά το σχεδιασμό στρατηγικών αναζήτησης.
Τα Retriever σχεδιάζονται ως μέρος ενός "δέντρου retriever", μιας ιεραρχικής δομής που ορίζει τις λειτουργίες αναζήτησης διευκρινίζοντας τη σειρά και τη λογική τους. Αυτή η δομή κάνει τις σύνθετες αναζητήσεις πιο διαχειρίσιμες, πιο κατανοητές από τους προγραμματιστές και επιτρέπει την εύκολη προσθήκη νέων λειτουργιών στο μέλλον.
Τα Retriever υποστηρίζουν τη δυνατότητα σύνθεσης, επιτρέποντάς σας να δημιουργήσετε αγωγούς και να ενσωματώσετε διαφορετικές στρατηγικές ανάκτησης. Αυτό επιτρέπει την εύκολη δοκιμή διαφορετικών συνδυασμών ανάκτησης. Παρέχουν επίσης περισσότερο έλεγχο στον τρόπο βαθμολόγησης και φιλτραρίσματος των εγγράφων. Για παράδειγμα, μπορείτε να καθορίσετε ένα ελάχιστο όριο βαθμολογίας, να εφαρμόσετε σύνθετα φίλτρα χωρίς να επηρεάσετε τη βαθμολογία και να χρησιμοποιήσετε παραμέτρους όπως το terminate_after για βελτιστοποίηση απόδοσης.
Διατηρεί συμβατότητα προς τα πίσω με στοιχεία ερωτήματος παλαιού τύπου, μετατρέποντάς τα αυτόματα σε κατάλληλα retriever.
Ας δούμε μερικά παραδείγματα χρήσης ριτρίβερ. Χρησιμοποιούμε το δείγμα δεδομένων του IMDB.
Μπορείτε να εκτελέσετε το συμπεριλαμβανόμενο σημειωματάριο jupyter, εισαγάγετε δεδομένα IMDB στο έργο αναζήτησης χωρίς διακομιστή και εκτελέστε μόνοι σας τα ακόλουθα παραδείγματα!
Οι ρυθμίσεις υψηλού επιπέδου είναι:
- GET /imdb_movies/_search?pretty
- {
- "retriever": {
- "standard": {
- "query": {
- "term": {
- "overview": "clueless"
- }
- }
- }
- },
- "size": 3,
- "fields": [
- "names",
- "overview"
- ],
- "_source": false
- }
- GET /imdb_movies/_search?pretty
- {
- "retriever": {
- "knn": {
- "field": "overview_dense",
- "query_vector_builder": {
- "text_embedding": {
- "model_id": ".multilingual-e5-small_linux-x86_64",
- "model_text": "clueless slackers"
- }
- },
- "k": 5,
- "num_candidates": 5
- }
- },
- "size": 3,
- "fields": [
- "names",
- "overview"
- ],
- "_source": false
- }
- GET /imdb_movies/_search?pretty
- {
- "retriever": {
- "standard": {
- "query": {
- "text_expansion": {
- "overview_sparse": {
- "model_id": ".elser_model_2_linux-x86_64",
- "model_text": "clueless slackers"
- }
- }
- }
- }
- },
- "size": 3,
- "fields": [
- "names",
- "overview"
- ],
- "_source": false
- }
- GET /imdb_movies/_search?pretty
- {
- "retriever": {
- "rrf": {
- "retrievers": [
- {
- "standard": {
- "query": {
- "term": {
- "overview": "clueless slackers"
- }
- }
- }
- },
- {
- "knn": {
- "field": "overview_dense",
- "query_vector_builder": {
- "text_embedding": {
- "model_id": ".multilingual-e5-small_linux-x86_64",
- "model_text": "clueless slackers"
- }
- },
- "k": 5,
- "num_candidates": 5
- }
- },
- {
- "standard": {
- "query": {
- "text_expansion": {
- "overview_sparse": {
- "model_id": ".elser_model_2_linux-x86_64",
- "model_text": "clueless slackers"
- }
- }
- }
- }
- }
- ],
- "rank_window_size": 5,
- "rank_constant": 1
- }
- },
- "size": 3,
- "fields": [
- "names",
- "overview"
- ],
- "_source": false
- }
Το retriever έρχεται με ορισμένους περιορισμούς που πρέπει να γνωρίζουν οι χρήστες. Για παράδειγμα, η χρήση ενός σύνθετου retriever επιτρέπει την αναζήτηση μόνο στοιχείων. Αυτό επιβάλλει σαφέστερο διαχωρισμό των ανησυχιών και αποτρέπει την πολυπλοκότητα που συνοδεύει την υπερβολική ένθεση ή την ανεξάρτητη διαμόρφωση. Επιπλέον, τα παιδιά ριτρίβερ δεν πρέπει να χρησιμοποιούν στοιχεία που περιορίζουν ένα σύνθετο ριτρίβερ να είναι μέρος ενός δέντρου ριτρίβερ.
Αυτοί οι περιορισμοί βελτιώνουν την απόδοση και τη δυνατότητα σύνθεσης ακόμη και όταν χρησιμοποιούνται πολύπλοκες στρατηγικές ανάκτησης.
Το retriever κυκλοφορεί αρχικά ως προεπισκόπηση τεχνολογίας, επομένως το API του υπόκειται σε αλλαγές
Οι ερευνητές αντιπροσωπεύουν ένα σημαντικό βήμα προς τα εμπρός στη λειτουργικότητα αναζήτησης και τη φιλικότητα προς τον χρήστη του Elasticsearch. Μπορούν να αλυσοδευτούν με έναν τρόπο διοχέτευσης, με κάθε retriever να εφαρμόζει τη λογική του και να περνά τα αποτελέσματα στο επόμενο στοιχείο της αλυσίδας. Τα Retriever μπορούν να βελτιώσουν σημαντικά την εμπειρία αναζήτησης επιτρέποντας πιο δομημένες, ευέλικτες και αποτελεσματικές λειτουργίες αναζήτησης.
Οι παρακάτω πόροι παρέχουν περισσότερες λεπτομέρειες σχετικά με τα retriever.
Δοκιμάστε μόνοι σας τον παραπάνω κωδικό!Μπορείτε να τρέξετεσυνοδευτικό σημειωματάριο jupyter, εισάγετε δεδομένα IMDB στο έργο Elastic Serverless Search!
Είστε έτοιμοι να το δοκιμάσετε μόνοι σας;αρχήΔωρεάν δοκιμή。
Θέλετε να αποκτήσετε πιστοποίηση Elastic;Μάθετε την επόμενη φοράΕκπαίδευση μηχανικών ElasticsearchΠότε να ξεκινήσετε!