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

Άποψη: 7839|Απάντηση: 0

Επιλογή μηχανών αναζήτησης: Elasticsearch vs Solr

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 11/12/2018 1:42:36 μ.μ. | | | |
Ερευνητικό έγγραφο επιλογής μηχανών αναζήτησης

Εισαγωγή στο Elasticsearch*


Το Elasticsearch είναι μια κατανεμημένη μηχανή αναζήτησης και ανάλυσης σε πραγματικό χρόνο. Σας βοηθά να επεξεργάζεστε δεδομένα μεγάλης κλίμακας πιο γρήγορα από ποτέ.

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

Το Elasticsearch είναι μια μηχανή αναζήτησης που βασίζεται στη μηχανή αναζήτησης πλήρους κειμένου Apache Lucene™, η οποία μπορούμε να πούμε ότι είναι το πιο προηγμένο και αποτελεσματικό πλαίσιο μηχανών αναζήτησης ανοιχτού κώδικα με πλήρεις δυνατότητες που είναι διαθέσιμο σήμερα.

Αλλά το Lucene είναι απλώς ένα πλαίσιο και για να επωφεληθείτε πλήρως από τις δυνατότητές του, πρέπει να χρησιμοποιήσετε JAVA και να ενσωματώσετε το Lucene στο πρόγραμμά σας. Χρειάζεται πολλή εκμάθηση για να καταλάβεις πώς λειτουργεί και το Lucene είναι πραγματικά περίπλοκο.

Το Elasticsearch χρησιμοποιεί το Lucene ως εσωτερική μηχανή του, αλλά όταν το χρησιμοποιείτε για αναζήτηση πλήρους κειμένου, χρειάζεται μόνο να χρησιμοποιήσετε ένα ενοποιημένο API χωρίς να κατανοήσετε τις περίπλοκες αρχές λειτουργίας του Lucene πίσω από αυτό.

Φυσικά, το Elasticsearch δεν είναι τόσο απλό όσο το Lucene, αλλά όχι μόνο περιλαμβάνει λειτουργίες αναζήτησης πλήρους κειμένου, αλλά μπορεί επίσης να εκτελέσει τις ακόλουθες εργασίες:

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

Με τόσες πολλές δυνατότητες ενσωματωμένες σε έναν διακομιστή, μπορείτε εύκολα να επικοινωνήσετε με το RESTful API της ES μέσω του προγράμματος-πελάτη ή οποιασδήποτε από τις προτιμώμενες γλώσσες προγραμματισμού σας.

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

Είναι εγκατεστημένο και έτοιμο για χρήση και μπορεί να είναι πολύ παραγωγικό με μικρό κόστος εκμάθησης.

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

Περιπτώσεις χρήσης:

  • Η Wikipedia χρησιμοποιεί το Elasticsearch για να κάνει αναζητήσεις πλήρους κειμένου και να επισημάνει λέξεις-κλειδιά, καθώς και προτάσεις αναζήτησης όπως search-as-you-type και did-you-mean.
  • Ο Guardian χρησιμοποιεί το Elasticsearch για την επεξεργασία των αρχείων καταγραφής επισκεπτών, έτσι ώστε οι συντάκτες να μπορούν να ενημερώνονται για τις αντιδράσεις του κοινού σε διαφορετικά άρθρα σε πραγματικό χρόνο.
  • Το StackOverflow συνδυάζει την αναζήτηση πλήρους κειμένου με τη γεωγραφική τοποθεσία και τις σχετικές πληροφορίες για να παρέχει μια αναπαράσταση ερωτήσεων που σχετίζονται με περισσότερα παρόμοια.
  • Το GitHub χρησιμοποιεί το Elasticsearch για να ανακτήσει περισσότερες από 130 δισεκατομμύρια γραμμές κώδικα.
  • Κάθε μέρα, η Goldman Sachs το χρησιμοποιεί για την ευρετηρίαση δεδομένων 5 TB και πολλές επενδυτικές τράπεζες το χρησιμοποιούν για να αναλύσουν τις κινήσεις του χρηματιστηρίου.

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

Πλεονεκτήματα και μειονεκτήματα του Elasticsearch**:

αξία

  • Το Elasticsearch διανέμεται. Δεν απαιτούνται άλλα στοιχεία και η διανομή γίνεται σε πραγματικό χρόνο, γνωστή ως "Push replication".
  • Το Elasticsearch υποστηρίζει πλήρως την αναζήτηση σχεδόν σε πραγματικό χρόνο με το Apache Lucene.
  • Ο χειρισμός της πολυμίσθωσης δεν απαιτεί ειδική διαμόρφωση, ενώ το Solr απαιτεί πιο προηγμένες ρυθμίσεις.
  • Το Elasticsearch χρησιμοποιεί την έννοια της πύλης για να διευκολύνει τη δημιουργία αντιγράφων ασφαλείας.
  • Κάθε κόμβος σχηματίζει μια ίση δομή δικτύου και όταν ορισμένοι κόμβοι αποτυγχάνουν, άλλοι κόμβοι ανατίθενται αυτόματα να εργαστούν στη θέση τους.


έλλειψη

  • Μόνο ένας προγραμματιστής (ο τρέχων οργανισμός Elasticsearch GitHub είναι κάτι περισσότερο από αυτό, έχει ήδη αρκετά ενεργούς συντηρητές)
  • Δεν είναι αρκετά αυτόματο (δεν είναι κατάλληλο για το τρέχον νέο Index Warmup API)


Σχετικά με τη Solr*

Το Solr (προφέρεται "ηλιακό") είναι μια πλατφόρμα αναζήτησης επιχειρήσεων ανοιχτού κώδικα για το έργο Apache Lucene. Τα κύρια χαρακτηριστικά του περιλαμβάνουν αναζήτηση πλήρους κειμένου, σήμανση επισκέψεων, πολύπλευρη αναζήτηση, δυναμική ομαδοποίηση, ενοποίηση βάσεων δεδομένων και επεξεργασία εμπλουτισμένου κειμένου (π.χ. Word, PDF). Το Solr είναι εξαιρετικά επεκτάσιμο και παρέχει κατανεμημένη αναζήτηση και αναπαραγωγή ευρετηρίου. Το Solr είναι η πιο δημοφιλής μηχανή αναζήτησης εταιρικού επιπέδου και το Solr4 προσθέτει επίσης υποστήριξη NoSQL.

Το Solr είναι ένας αυτόνομος διακομιστής αναζήτησης πλήρους κειμένου γραμμένος σε Java που εκτελείται σε ένα κοντέινερ servlet όπως το Apache Tomcat ή το Jetty. Το Solr χρησιμοποιεί τη βιβλιοθήκη αναζήτησης Lucene Java ως πυρήνα για ευρετηρίαση και αναζήτηση πλήρους κειμένου και διαθέτει API HTTP/XML και JSON τύπου REST. Οι ισχυρές δυνατότητες εξωτερικής διαμόρφωσης του Solr καθιστούν εύκολη την προσαρμογή σε πολλούς τύπους εφαρμογών χωρίς κωδικοποίηση Java. Το Solr διαθέτει αρχιτεκτονική προσθηκών για την υποστήριξη πιο προηγμένης προσαρμογής.

Λόγω της συγχώνευσης των έργων Apache Lucene και Apache Solr το 2010, τα δύο έργα δημιουργήθηκαν και υλοποιήθηκαν από την ίδια ομάδα ανάπτυξης του Apache Software Foundation. Όταν πρόκειται για τεχνολογία ή προϊόντα, το Lucene/Solr ή το Solr/Lucene είναι το ίδιο.

Πλεονεκτήματα και μειονεκτήματα του Solr:

αξία

  • Η Solr έχει μια μεγαλύτερη και πιο ώριμη κοινότητα χρηστών, προγραμματιστών και συντελεστών.
  • Υποστήριξη προσθήκης ευρετηρίων σε πολλαπλές μορφές, όπως HTML, PDF, μορφές λογισμικού του Microsoft Office και μορφές απλού κειμένου όπως JSON, XML, CSV κ.λπ.
  • Το Solr είναι σχετικά ώριμο και σταθερό.
  • Η αναζήτηση κατά την ευρετηρίαση δεν λαμβάνεται υπόψη και η ταχύτητα είναι μεγαλύτερη.


έλλειψη

  • Όταν δημιουργηθεί το ευρετήριο, η αποτελεσματικότητα αναζήτησης μειώνεται και η αποτελεσματικότητα αναζήτησης ευρετηρίου σε πραγματικό χρόνο δεν είναι υψηλή.


Elasticsearch εναντίον Solr*

Το Solr είναι πιο γρήγορο όταν απλώς αναζητάτε υπάρχοντα δεδομένα.




Κατά την ευρετηρίαση σε πραγματικό χρόνο, το Solr θα προκαλέσει αποκλεισμό IO και κακή απόδοση ερωτημάτων, κάτι που το Elasticsearch έχει ένα σαφές πλεονέκτημα.



Καθώς ο όγκος των δεδομένων αυξάνεται, η αποτελεσματικότητα αναζήτησης του Solr μειώνεται, ενώ το Elasticsearch δεν αλλάζει σημαντικά.



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

Δοκιμές παραγωγής σε πραγματικές συνθήκες*

Το παρακάτω σχήμα δείχνει μια αύξηση 50 φορές στη μέση ταχύτητα ερωτήματος μετά τη μετάβαση από το Solr στο Elasticsearch.




Σύνοψη της σύγκρισης Elasticsearch εναντίον Solr

  • Και τα δύο είναι εύκολο να εγκατασταθούν.
  • Η Solr αξιοποιεί το Zookeeper για κατανεμημένη διαχείριση, ενώ η ίδια η Elasticsearch έχει κατανεμημένη διαχείριση ενορχήστρωσης.
  • Το Solr υποστηρίζει περισσότερες μορφές δεδομένων, ενώ το Elasticsearch υποστηρίζει μόνο μορφές αρχείων JSON.
  • Το Solr παρέχει επίσημα περισσότερες δυνατότητες, ενώ το ίδιο το Elasticsearch εστιάζει περισσότερο στις βασικές λειτουργίες και οι προηγμένες λειτουργίες παρέχονται κυρίως από προσθήκες τρίτων.
  • Το Solr ξεπερνά το Elasticsearch στις παραδοσιακές εφαρμογές αναζήτησης, αλλά είναι σημαντικά λιγότερο αποτελεσματικό από το Elasticsearch όταν χειρίζεται εφαρμογές αναζήτησης σε πραγματικό χρόνο.
  • Το Solr είναι μια ισχυρή λύση για παραδοσιακές εφαρμογές αναζήτησης, αλλά το Elasticsearch είναι πιο κατάλληλο για αναδυόμενες εφαρμογές αναζήτησης σε πραγματικό χρόνο.


Άλλες λύσεις μηχανών αναζήτησης ανοιχτού κώδικα που βασίζονται στο Lucene*


1: Χρησιμοποιήστε απευθείας το Lucene

Σημείωση: Το Lucene είναι μια βιβλιοθήκη αναζήτησης JAVA που δεν αποτελεί ολοκληρωμένη λύση από μόνη της και απαιτεί πρόσθετη προσπάθεια ανάπτυξης.

Πλεονεκτήματα: Ώριμη λύση με πολλές επιτυχημένες περιπτώσεις. Έργα ανώτατου επιπέδου Apache που συνεχίζουν να εξελίσσονται με ταχείς ρυθμούς. Μεγάλη και ενεργή κοινότητα ανάπτυξης, μεγάλος αριθμός προγραμματιστών. Είναι απλώς μια βιβλιοθήκη τάξης, με αρκετό χώρο για προσαρμογή και βελτιστοποίηση: μετά από απλή προσαρμογή, μπορεί να καλύψει τις πιο κοινές ανάγκες. Βελτιστοποιημένο για υποστήριξη 1 δισεκατομμυρίου+ αναζητήσεων.

Μειονεκτήματα: Απαιτεί πρόσθετη προσπάθεια ανάπτυξης. Όλη η κλιμάκωση, η διανομή, η αξιοπιστία κ.λπ. πρέπει να εφαρμοστούν μόνοι σας. Σε μη πραγματικό χρόνο, υπάρχει μια χρονική καθυστέρηση μεταξύ της ευρετηρίασης και της αναζήτησης και η επεκτασιμότητα του τρέχοντος σχήματος αναζήτησης "Lucene Near Real Time search" πρέπει να βελτιωθεί περαιτέρω

Η σύνδεση με υπερσύνδεσμο είναι ορατή.

2:Κάττα

Σημείωση: Υποστήριξη με βάση το Lucene κατανεμημένο, επεκτάσιμο, ανεκτικό σε σφάλματα, σχήμα αναζήτησης σχεδόν σε πραγματικό χρόνο.

Πλεονεκτήματα: Διανέμεται από το κουτί με το Hadoop. Διαθέτει μηχανισμό κλιμάκωσης και ανοχής σφαλμάτων.

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

Η σύνδεση με υπερσύνδεσμο είναι ορατή.

3:Συνεισφορά/ευρετήριο Hadoop

Σημείωση: Η λειτουργία Map/Reduce, μια κατανεμημένη λύση ευρετηρίασης, μπορεί να χρησιμοποιηθεί με το Katta.

Πλεονεκτήματα: Κατανεμημένη ευρετηρίαση και επεκτασιμότητα.

Μειονεκτήματα: Μόνο το σχήμα ευρετηρίασης, όχι η υλοποίηση αναζήτησης. Λειτουργεί σε λειτουργία δέσμης με κακή υποστήριξη για αναζήτηση σε πραγματικό χρόνο.

Η σύνδεση με υπερσύνδεσμο είναι ορατή.

4: Η λύση ανοιχτού κώδικα του LinkedIn

Περιγραφή: Μια σειρά λύσεων που βασίζονται στο Lucene, όπως το Zoie για αναζήτηση σχεδόν σε πραγματικό χρόνο, το Bobo για αναζήτηση όψεων, το Decomposer για αλγόριθμους μηχανικής μάθησης, το Krati για αποθετήρια σύνοψης, το Sensei για αναδίπλωση σχήματος βάσης δεδομένων και πολλά άλλα

Πλεονεκτήματα: Αποδεδειγμένη λύση που υποστηρίζει κατανεμημένη, επεκτάσιμη και πλούσια εφαρμογή χαρακτηριστικών

Μειονεκτήματα: Πολύ στενά συνδεδεμένο με την εταιρεία LinkedIn και κακή δυνατότητα προσαρμογής

Η σύνδεση με υπερσύνδεσμο είναι ορατή.

5: Λουκάντρα

Σημείωση: Με βάση το Lucene, το ευρετήριο υπάρχει στη βάση δεδομένων cassandra

Πλεονεκτήματα: Ανατρέξτε στα πλεονεκτήματα της Κασσάνδρας

Μειονεκτήματα: Ανατρέξτε στα μειονεκτήματα της Κασσάνδρας. Επίσης, αυτό είναι απλώς ένα demo και δεν έχει επαληθευτεί σε μεγάλο βαθμό

Η σύνδεση με υπερσύνδεσμο είναι ορατή.

6: HBasene

Σημείωση: Με βάση το Lucene, ο δείκτης υπάρχει στη βάση δεδομένων HBase

Οφέλη: Ανατρέξτε στα πλεονεκτήματα της HBase

Μειονεκτήματα: Ανατρέξτε στα μειονεκτήματα της HBase. Επίσης, στην υλοποίηση, οι όροι lucene αποθηκεύονται ως σειρές, αλλά οι λίστες ανάρτησης που αντιστοιχούν σε κάθε όρο αποθηκεύονται ως στήλες. Καθώς αυξάνεται ο αριθμός των λιστών ανάρτησης για έναν μόνο όρο, η ταχύτητα του ερωτήματος θα επηρεαστεί σε μεγάλο βαθμό


Η σύνδεση με υπερσύνδεσμο είναι ορατή.

7: Xunsearch

Σημείωση: Το Xunsearch υιοθετεί έναν δομημένο ιεραρχικό σχεδιασμό, συμπεριλαμβανομένων των υπηρεσιών back-end και των πακέτων ανάπτυξης front-end, με σαφείς ιεραρχίες και χωρίς διασταυρώσεις. Το backend είναι ένας δαίμονας γραμμένος σε C/C++, ενώ το frontend χρησιμοποιεί PHP, την πιο δημοφιλή γλώσσα δέσμης ενεργειών, η οποία είναι πιο βολική για έργα αναζήτησης ιστού. Για λεπτομέρειες, δείτε: Αρχιτεκτονική Σχεδίαση.

Η σύνδεση με υπερσύνδεσμο είναι ορατή.






Προηγούμενος:Κιτ ανάπτυξης EOS Blockchain PHP
Επόμενος:Centos 7 Εγκατάσταση Java JDK Tutorial
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com