CLOUD CONCEPT
Νερατζιωτίσσης 15, Μαρούσι, Αθήνα, 15124, Αττική
+30 211 8005 401
info@c2.gr
Η Solr είναι μια πλατφόρμα μηχανής αναζήτησης που βασίζεται στην Apache Lucene. Έχει γραφτεί σε Java και χρησιμοποιεί το Lucene Library για να μπορεί να εφαρμόσει λειτουγίες indexing. Μπορούμε να αποκτήσουμε πρόσβαση στην Solr μέσω διάφορων API,πχ. τα XML και JSON. Μαζί θα εγκαταστήσουμε την Solr σε ένα σύστημα Debian 8.
Πριν την εγκατάσταση
Για να συνεχίσουμε με την εγκατάσταση πρέπει να έχουμε:
‘Εναν Virtual Host με τουλάχστον 1 GB μνήμης
‘Εναν non-root-sudo χρήστη
Εγκατάσταση
Επειδή η Solr είναι γραμμένη σε Java, πρέπει πρώτα να την εγκαταστήσουμε:
Πρώτα χρησιμοποιούμε την aptget για να κάνουμε install τα python-software-properties:
sudo apt-get install python-software-properties
‘Επειτα προσθέσουμε στο source της aptget ένα repository της java:
sudo add-apt-repository ppa:webupd8team/java
Κάνουμε update την apt get:
sudo apt-get update
Τέλος, κάνουμε install την java:
sudo apt-get install oracle-java8-installer
Πρώτα βρίσκουμε το link της τελευταίδας έκδοσης απο εδώ, και κάνουμε download με την wget:
cd ~
wget http://apache.mirror1.spango.com/lucene/solr/5.2.1/solr-5.2.1.tgz
Κάνουμε extract:
tar xzf solr-5.2.1.tgz solr-5.2.1/bin/install_solr_service.sh --strip-components=2
Κάνουμε εγκατάσταση:
sudo bash ./install_solr_service.sh solr-5.2.1.tgz
Τέλος εκτελούμε την ακόλουθη εντολή για να δούμε οτι έγινε η εγκατάσταση επιτυχώς:
sudo service solr status
Πρέπει να πάρουμε την ακόλουθη έξοδο:
Found 1 Solr nodes: Solr process 2750 running on port 8983 . . .
Η Solr μπορεί να χρησιμοποιεί διάφορα collections (συλλογές), αλλά στην προκειμένη περίπτωση θα χρησιμοποιήσουμε μόνο ένα ως παράδειγμα. Τα collections είναι κάτι σαν πίνακες. Το κομμάτι του collection που βρίσκεται σε έναν server λέγεται core.
Για να δημιουργήσουμε ένα νέο collection θα τρέξουμε την εντολή:
sudo su - solr -c "/opt/solr/bin/solr create -c gettingstarted -n data_driven_schema_configs"
Ας δούμε λιγο το κομμάτι της εντολής: gettingstarted -n
Το gettingstarted είναι το όνομα που ορίσαμε για το collection και το -n είναι το configset. Μπορούν να χρησιμοποιηθούν διάφορα configsets. Το -n λέγεται schemaless δηλαδή κάθε πεδίο μπορεί να συμπληρωθεί με οποιαδήποτε δεδομένα και ο τύπος τους θα βρεθεί αυτόματα.
Τώρα έχουμε δημιουργήσει ένα νέο collection και μπορούμε να προσθέσουμε δεδομένα σε αυτό. Κάθε collection έχει μόνο ένα default πεδίο το ID. ‘Ολα τα άλλα πεδία είναι δυναμικά.
Για να δούμε το web interface της Solr, ανοίγουμε ένα browser και βάζουμε την διεύθυνση:
http://your_server_ip:8983/solr
Τα collections μοιράζονται σε cores. Τη δεδομένη στιγμή to collection gettingstarted περιέχει μόνο ένα core, και αυτό με όνομα gettingstarted. Στα αριστερά υπάρχει ένα dropdown menu με όνομα CoreSelector. Διαλέγουμε το gettingstarted για να δούμε περισσότερες πληροφορίες. ‘Eπειτα επιλέγουμε τα Documents. Τα documents περιέχουν τα δεδομένα τα οποία θα μπορεί να αναζητήσει το Solr. Επειδή έχουμε διαλέξει schemaless configuration μπορούμε να εισάγουμε δεδομένα σε κάθε πεδίο.
Ας δοκιμάσουμε να προσθέσουμε ένα νέο document. Ως παράδειγμα στο πεδίο του document θα προσθέσουμε τα παρακάτω:
{
"number": 1,
"president": "George Washington",
"birth_year": 1732,
"death_year": 1799,
"took_office": "1789-04-30",
"left_office": "1797-03-04",
"party": "No Party"
}
Πατάμε το Submit. Μετα απο λίγα δεύτερα πρέπει να δούμε το εξής:
Output after adding Document
Status: success
Response:
{
"responseHeader": {
"status": 0,
"QTime": 509
}
}
Τώρα. για να κάνουμε query το document που μόλις προσθέσαμε, πατάμε στα αριστερά της οθόνης Query και μετά Execute Query με τις default ρυθμίσεις.
Ως έξοδο θα πάρουμε το παρακάτω:
Query output
{
"responseHeader": {
"status": 0,
"QTime": 58,
"params": {
"q": "*:*",
"indent": "true",
"wt": "json",
"_": "1436827539345"
}
},
"response": {
"numFound": 1,
"start": 0,
"docs": [
{
"number": [
1
],
"president": [
"George Washington"
],
"birth_year": [
1732
],
"death_year": [
1799
],
"took_office": [
"1789-04-30T00:00:00Z"
],
"left_office": [
"1797-03-04T00:00:00Z"
],
"party": [
"No Party"
],
"id": "1ce12ed2-add9-4c65-aeb4-a3c6efb1c5d1",
"_version_": 1506622425947701200
}
]
}
}
Αυτά είναι τα βασικά όσον αφορά την Solr.
Μάθετε περισσότερα για τις υπηρεσίες μας εδώ.
Ακολουθήστε μας σε LinkedIn, Facebook & Instagram για να μένετε ενημερωμένοι!