ElasticSearch Install
Die ElasticSearch Install Prozedur ist nicht zu schwierig. Dennoch erfordert sie an einige Punkten die absolute Aufmerksamkeit des Admins. Wir haben die ElasticSearch-Install-Prozedur hier für euch dokumentiert. Lest euch mal rein und wenn ihr Fragen habt, sprecht uns an.
Die ElasticSearch-Install-Prozedur
Die ElasticSearch benötigt auf dem Laufzeitsystem einige Komponenten, die wir zuallererst bereitstellen müssen. Hierzu zählen:
- Java 1.7
- MySQL und
- Symfony
1. Schritt: Java 1.7 für den ElasticSearch-Install bereitstellen
Eventuell ist Java 1.7 ja bereits installiert. Deswegen prüft man am Besten zuerst einfach mal, ob es bereits vorhanden ist. Folgende Eingabe auf der Console ist dabei nötig:
$ java -version
Dann sollte folgende Meldung (oder ähnlich) ausgegeben werden:
java version "1.7.0_65"
OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-0ubuntu0.12.04.1)
OpenJDK Client VM (build 24.65-b04, mixed mode, sharing)
Damit haben wir geprüft, ob Java 1.7 auf der Maschine vorhanden ist. Wenn Java 17 nicht vorhanden ist, muss man es JETZT zuerst installieren, bevor man mit dem ElasticSearch Install Prozedere fortfährt.
2. Schritt: ElasticSearch herunterladen und auspacken
Das Zip-File von der ElasticSearch laden wir jetzt erstmal herunter.
$ wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.4.0.zip
Und wenn das Package heruntergeladen ist, entpacken wir es auch gleich mit der folgenden Anweisung.
$ unzip elasticsearch-1.4.0.zip
3. Schritt: ElasticSearch starten
Nachdem die ElasticSearch entpackt ist, können wir eigentlich gleichloslege. Die ElasticSearch kann jetzt direkt von der Command Line gestartet werden. Hierzu gibt man einfach den nachfolgenden Befehl ein.
$ ./elasticsearch-1.4.0/bin/elasticsearch
4. Schritt: ElasticSearch testen
Jetzt würde es noch Sinn machen, zu prüfen, ob die ElasticSearch schon läuft. Die Funktionsweise der ElasticSearch kann man ganz einfach einem kleinen Test unterziehen. Das ist mit der folgenden Anweisung möglich.
$ curl -XGET 'http://localhost:9200'
Der Befehl sollte dann ein Ergebnis der folgenden Art zurückgeben:
{
"status" : 200,
"name" : "Firefrost",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "1.4.0",
"build_hash" : "bc94bd81298f81c656893ab1ddddd30a99356066",
"build_timestamp" : "2014-11-05T14:26:12Z",
"build_snapshot" : false,
"lucene_version" : "4.10.2"
},
"tagline" : "You Know, for Search"
}
5. Schritt: MySQL-Anbindung beim ElasticSearch Install
Um die MySQL-Anbindung bereitzustellen nutzt man am Besten das JDBC-Plugin. Dieses steht über das packe aus dem ElasticSearch Install zur Verfügung. Mit der folgenden Anweisung kann man das JDBC-Plugin bemühen.
$ ./elasticsearch-1.4.0/bin/plugin --install jdbc --url http://xbib.org/repository/org/xbib/elasticsearch/plugin/elasticsearch-river-jdbc/1.4.0.3.Beta1/elasticsearch-river-jdbc-1.4.0.3.Beta1-plugin.zip
Bei der Benutzung des JDBC-Plugins sollte man beachten, dass die Version des Plugins zur Version der ElasticSearch passt. In einem weiteren Step fügen wir eine zusätzliche benötigte Komponente zu unserem System hinzu. Es ist der MySQL-Driver. Mit der folgenden Anweisung laden wir den MySQL-Driver herunter.
$ wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.34.zip
Die Zip-Datei sollte noch entpackt werden. Hierzu benutzt man die folgende Anweisung.
$ unzip mysql-connector-java-5.1.34.zip
Zur Installation des MySQL-Drivers sollte man die nachfolgende Anweisung benutzen.
$ cp mysql-connector-java-5.1.34/mysql-connector-java-5.1.34-bin.jar elasticsearch-1.4.0/plugins/jdbc/
Damit dürfte die Installation des MySQL-Plugins im Rahmen des ElasticSearch Install erfolgreich abgeschlossen sein.
6. Schritt: Plugins für Suchoptimierung bereitstellen
Zwei weitere Plugins werden für die Suchoptimierung benötigt. Diese kann man wie folgt aktivieren.
vagrant@precise32:~/elasticsearch-1.4.0$ bin/plugin -install com.yakaz.elasticsearch.plugins/elasticsearch-analysis-combo/1.5.1
vagrant@precise32:~/elasticsearch-1.4.0$ bin/plugin -install elasticsearch/elasticsearch-analysis-icu/2.4.1
Nun muss noch eine Datei ins Home-Verzeichnis verschoben werden.
~/elasticsearch-1.4.0/config/elasticsearch.yml
Eine zusätzliche Datei muss noch erstellt werden.
~/elasticsearch-1.4.0/config/elasticsearch.json
Die oben genannte Datei muss mit folgendem Inhalt erstellt werden.
{
"index" : {
"analysis" : {
"char_filter" : {
"my_mapping" : {
"type" : "mapping",
"mappings" : ["ü=>ü", "ä=>ä", "ö=>ö", "Ä=>Ä", "Ü=Ü", "Ö=>ö", "ß=>ß"]
}
},
"filter" : {
"germansnow" : {
"language" : "German2",
"type" : "snowball"
}
},
"analyzer" : {
"custom_with_char_filter" : {
"tokenizer" : "standard",
"char_filter" : ["my_mapping"]
},
"german" : {
"filter" : [
"germansnow",
"icu_folding"
],
"type" : "custom",
"tokenizer" : "icu_tokenizer"
},
"default" : {
"sub_analyzers" : [
"custom_with_char_filter",
"standard",
"german"
],
"type" : "combo"
}
}
}
}
}
7. Schritt: Datenbank indizieren lassen
Mit der nachfolgenden Anweisung kann man ein periodisches Indizieren der Datenbank veranlassen. In diesem Fall ist als Rhythmus “stündlich” eingetragen. In der Anweisung müssen natürlich die jeweils gültigen Adressen und Anmeldekennungen eingetragen werden.
curl -XPUT 'localhost:9200/_river/offersarticlesriver/_meta' -d '{
"type" : "jdbc",
"jdbc" : [{
"url" : "jdbc:mysql://192.168.50.59:3306/sfspw2",
"user" : "root",
"password" : "#### hier das Passwort eintragen ####",
"sql" : [
"select concat(\"offer_\",offer.id) as _id, offer.id, offer.type, \"offer\" as table_name, offer.published as published, offer.title, offer.body_description, offer.usage_description, provider.title as provider_title from offer LEFT JOIN provider ON (offer.provider_id = provider.id) where offer.type in (\"voucher\",\"bargain\",\"freebie\") AND offer.published <= NOW() AND offer.publication_status = 1 AND offer.status = 1 AND provider.locale=\"de\" ORDER BY offer.published DESC;",
"select concat(\"article_\",article.id) as _id, article.id, article.type, \"article\" as table_name, article.published as published, article.title, article.sub_title, article.teaser_description, article.body_description, adminuser.first_name, adminuser.last_name from article LEFT JOIN adminuser ON (article.created_user_id = adminuser.id) where article.type in (\"guide\") AND article.published <= NOW() AND article.publication_status = 1 ORDER BY article.published DESC;"
],
"schedule" : "0 0 * * * ?",
"strategy" : "simple",
"index" : "offersarticles"
}
]
}'
Damit sollte der ElasticSearch Install erfolgreich abgeschlossen sein.
Bildnachweis: © shutterstock – Titelbild Andreas G. Karelias, #1 + #2 schwarzer.de
Auch Interessant:
30. September 2024
Code-Doku nur für Tools zur Codequalität-Analyse ist voll für die Füße
In der Welt der Software-Entwicklung wird häufig…
23. September 2024
Wissen mit anderen teilen ist nur was für Feiglinge
In der Welt der Softwareentwicklung gibt es eine…
18. September 2024
Barrierefreiheitsstärkungsgesetz – Nerviges Regularienmonster für Webauftritte oder sinnvoll fürs Marketing?
Das Gesetz verlangt von den meisten Unternehmen,…