Mit SOLR eine schnelle Volltextsuche in Scriptcase Projekte integrieren
SOLR / Lucent der Server von Apache
SOLR ist ähnlich wie der Apache Internet Server ein kostenloses Projekt der gleichen Gruppe. Mit SOLR kann man großen Datenbestände indizieren und dann sehr schnell nach Worten, Teilworten oder anderen Suchbegriffen durchsuchen.
Verglichen mit der Volltextsuche von mySQL, o.ä. ist SOLR sehr schnell und vor allem auch großzügig skalierbar bis auf mehrere Server und gigantische Datenbestände. Außerdem liefert SOLR auch Ergebnisse zu Such-Kombinationen, -Einschränkungen und Ergebnissen in Zahlen praktisch in Echtzeit.
Scriptcase das RAD-System
Scriptcase ist ein Entwicklungssystem, mit dem man schnell und ohne große Programmierkenntnisse Web-Projekte erstellen kann. Das reicht von der einfachen Adressenverwaltung über komplette Warenwirtschaftssysteme bis zu vernetzten Inter- und Intranet Anwendungen. Dabei kann Scriptcase auf praktisch alle gängigen Datenbanken (Access, mySQL, Oracle, MSsql, …) zugreifen.
Die automatisch generierten Anwendungen laufen als PHP, CSS, HTML4, JS-Code auf den üblichen Webservern unter Unix-/Linux oder Windows.
Installation von SOLR
SOLR ist eine Server-Anwendung, deren Installation je nach Betriebssystem unterschiedlich erfolgt.
Als Beispiel eine Anleitung für Ubuntu 14.04: Tutorial
Es sollte immer die aktuellste freigegebene Version installiert werden.
SOLR bringt eine Web-Oberfläche mit, die i.d.R über den folgenden URL gestartet wird: http://[IP-Adresse]:8983/solr/
Tipps:
Prüfen, ob SOLR korrekt läuft (Command Line): sudo service solr status
Nach der Änderung von solrconfig.xml, data-config.xml oder schema.xml mit der Server neu gestartet werden: sudo service solr restart
Komplettes Löschen aller Daten via Web-Oberfläche: <delete><query>*:*</query></delete><commit/>
Daten in SOLR einspielen / updaten
Soll z.B. eine MySQL Tabelle in SOLR indiziert werden, ist es am einfachsten den Erstbestand über die SOLR Web-Oberfläche zu importieren.
Davor den Java-Connector (je nach Version mysql-connector-java-5.1.38-bin.jar) z.B. in /opt/solr-5.4.1/lib kopieren und SOLR neu starten.
In data-config.xml die zu verwendende Schnittstelle eingeben, die SQL-Abfrage definieren und die Feldzuweisungen anlegen. Beispiel:
In schema.xml die Felder, Typen, Indizes anlegen und definieren, ob auch die Feldinhalte gespeichert werden sollen. Beispiel:
Die Updates der Daten können durch einen regelmäßigen CronJob erfolgen. Beispiel:
http://[IP-Adresse]:8983/solr/mysql_test/dataimport?command=full-import&entity=availabilities_data&clean=false&commit=true
Einbinden der Suche in Scriptcase
Eine Möglichkeit ist es, eine Grid-Application zu erstellen, in der die Suchergebnisse angezeigt werden.
In der SQL-Anweisung wird eine entsprechende Zeile hinzugefügt: WHERE [REF_WHERE]
Die Eingabe des eigentlichen Suchfeldes kann in einer Control-Application erfolgen, die ein freies Eingabefeld enthält und im Event OnValidate die Suche auf dem SOLR-Server via file_get_contents() ausführt.
Am besten läßt man dabei bereits von SOLR ein gültiges [REF_WHERE] erzeugen das über den Primär-Index der MySQL Tabelle ein schnelles Laden der Daten in der Grid-Applikation erlaubt.
Beispiele
Gerne sende ich Ihnen auf Anfrage Beispiele der Scriptcase-Implementierung zu.
Beispiel aus einem Projekt für die Distribution von digitalen Produkten:
Tipp: Ich habe deine neue, zusätzliche Site für PHP & Scriptcase Tipps fertige Lösungen in open source hier klicken |