Κοινό ερώτημα Bool: πρέπει, πρέπει, must_not
Αν θέλουμε να ζητήσουμε κάτι παρόμοιο με το "περιεχόμενο με BMW, αλλά όχι σε ετικέτα", πρέπει να χρησιμοποιήσουμε bool federated query.
Το κοινό ερώτημα θα χρησιμοποιήσει τρεις λέξεις-κλειδιά: πρέπει, πρέπει, must_not.
Αυτά τα τρία μπορούν να γίνουν κατανοητά με αυτόν τον τρόπο
must: Το έγγραφο πρέπει να ταιριάζει ακριβώς με τις συνθήκες
should: πρέπει να έχει περισσότερες από μία προϋποθέσεις, και εάν πληρούται τουλάχιστον μία προϋπόθεση, το παρόν έγγραφο θα πληροί
must_not:Το έγγραφο δεν πρέπει να πληροί τα κριτήρια
Εισαγωγή επίσημης ιστοσελίδας:https://www.elastic.co/guide/cn/ ... bining-filters.html
Ερώτημα DSL
match_all Ερώτημα
Όλα τα έγγραφα μπορούν να ερωτηθούν και είναι η προεπιλεγμένη δήλωση χωρίς συνθήκες ερωτήματος.
Αυτό το ερώτημα χρησιμοποιείται συχνά για τη συγχώνευση φίλτρων. Για παράδειγμα, πρέπει να ανακτήσετε όλα τα γραμματοκιβώτια και όλη η συνάφεια του εγγράφου είναι η ίδια, επομένως η _score που λαμβάνετε είναι 1.
Ερώτημα αντιστοίχισης
Ένα ερώτημα αντιστοίχισης είναι ένα τυπικό ερώτημα που χρησιμοποιείται βασικά είτε χρειάζεστε ένα ερώτημα πλήρους κειμένου είτε ένα ακριβές ερώτημα.
Εάν χρησιμοποιήσετε το match για να υποβάλετε ερώτημα σε ένα πεδίο πλήρους κειμένου, θα χρησιμοποιήσει τον αναλυτή για να αναλύσει τους χαρακτήρες του ερωτήματος πριν από το πραγματικό ερώτημα:
Εάν καθορίσετε μια ακριβή τιμή κάτω από την αντιστοίχιση, θα αναζητήσει τη δεδομένη τιμή σας όταν συναντήσει έναν αριθμό, ημερομηνία, δυαδική τιμή ή συμβολοσειρά not_analyzed:
Συμβουλή: Όταν κάνετε μια αναζήτηση ακριβούς αντιστοίχισης, είναι καλύτερο να χρησιμοποιείτε δηλώσεις φίλτρου, επειδή οι δηλώσεις φίλτρου αποθηκεύουν δεδομένα στην κρυφή μνήμη.
Ένα ερώτημα αντιστοίχισης μπορεί να αναζητήσει μόνο μια ακριβή τιμή που καθορίζει ένα ακριβές πεδίο και το μόνο που έχετε να κάνετε είναι να καθορίσετε το σωστό όνομα πεδίου για να αποφύγετε συντακτικά σφάλματα.
multi_match Ερώτημα
multi_match ερώτημα σάς επιτρέπει να κάνετε αναζήτηση σε πολλά πεδία ταυτόχρονα με βάση ένα ερώτημα αντιστοίχισης και να αναζητήσετε ένα σε πολλά πεδία ταυτόχρονα:
ερώτημα bool
Τα ερωτήματα bool είναι παρόμοια με το φιλτράρισμα bool και χρησιμοποιούνται για τη συγχώνευση πολλών ρητρών ερωτημάτων. Η διαφορά είναι ότι το φίλτρο bool μπορεί να δώσει απευθείας εάν η αντιστοίχιση είναι επιτυχής, ενώ το ερώτημα bool υπολογίζει το _score (βαθμολογία συσχέτισης) κάθε ρήτρας ερωτήματος.
must:: 查询指定文档一定要被包含。 must_not:: Τα έγγραφα που καθορίζονται από το ερώτημα δεν πρέπει να περιλαμβάνονται.
should:: 查询指定文档,有则可以为文档相关性加分。
Το παρακάτω ερώτημα θα διαπιστώσει ότι το πεδίο τίτλου περιέχει "πώς να κερδίσετε εκατομμύρια" και το πεδίο "ετικέτα" δεν έχει επισημανθεί ως ανεπιθύμητο. Εάν έχουν επισημανθεί ως "με αστέρι" ή έχουν ημερομηνία κυκλοφορίας πριν από το 2014, τότε αυτά τα έγγραφα που ταιριάζουν θα είναι σε υψηλότερο επίπεδο από παρόμοιους ιστότοπους:
Συμβουλή: Εάν δεν υπάρχει ρήτρα must κάτω από το ερώτημα bool, θα πρέπει να υπάρχει τουλάχιστον μία ρήτρα should. Αλλά αν υπάρχει ρήτρα must, τότε το ερώτημα μπορεί επίσης να γίνει χωρίς τη ρήτρα ανάγκης.
Ερώτημα χαρακτήρων μπαλαντέρ
Χρήση τυπικών ερωτημάτων μπαλαντέρ κελύφους
Το παρακάτω ερώτημα αντιστοιχεί σε έγγραφα που περιέχουν W1F 7HW και W2F 8HW:
Για παράδειγμα, το ακόλουθο ερώτημα για το όνομα κεντρικού υπολογιστή ταιριάζει με τον ακόλουθο χαρακτήρα μπαλαντέρ κελύφους:
ερώτημα regexp
Ας υποθέσουμε ότι θέλετε να αντιστοιχίσετε μόνο ταχυδρομικούς κώδικες που ξεκινούν με W ακολουθούμενο από αριθμούς. Η χρήση ερωτημάτων regexp σάς επιτρέπει να γράφετε πιο σύνθετα μοτίβα:
Αυτή η κανονική έκφραση καθορίζει ότι η καταχώριση πρέπει να ξεκινά με W, ακολουθούμενη από έναν αριθμό από το 0 έως το 9, ακολουθούμενο από έναν ή περισσότερους άλλους χαρακτήρες.
Το παρακάτω παράδειγμα είναι όλες οι κανονικές εκκινήσεις με wxopen
ερώτημα προθέματος
Με ποιον χαρακτήρα ξεκινά, μπορείτε να χρησιμοποιήσετε το πρόθεμα πιο απλά, όπως στο παρακάτω παράδειγμα:
Αντιστοίχιση φράσης
Όταν πρέπει να βρείτε μερικές λέξεις σε κοντινή απόσταση, χρησιμοποιείτε match_phrase ερώτημα:
Παρόμοια με τα ερωτήματα αντιστοίχισης, match_phrase ερώτημα αναλύει πρώτα τη συμβολοσειρά ερωτήματος για να δημιουργήσει μια λίστα όρων. Θα αναζητήσει όλες τις καταχωρήσεις, Ωστόσο, διατηρούνται μόνο έγγραφα που περιέχουν όλους τους όρους αναζήτησης και οι θέσεις των όρων πρέπει να είναι γειτονικές. Ένα ερώτημα για τη φράση Quick Fox δεν θα ταιριάζει οποιαδήποτε από τις τεκμηρίωσή μας, καθώς καμία τεκμηρίωση δεν περιέχει γρήγορες καταχωρήσεις και καταχωρήσεις κουτιού η μία δίπλα στην άλλη. match_phrase ερώτημα μπορεί επίσης να γραφτεί ως ερώτημα αντιστοίχισης τύπου φράσης:
|