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 .