Scriptcase und SOLR – schnelle Volltextsuche

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/

SOLR Administrations-Oberfläche

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:
SOLR data-config.xml Beispiel
In schema.xml die Felder, Typen, Indizes anlegen und definieren, ob auch die Feldinhalte gespeichert werden sollen. Beispiel:
SOLR schema.xml 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:

Sucheingabe

Suchergebnis in Scriptcase Grid

Suchergebnis in Scriptcase Grid

 


Neue WebSite für PHP & Scriptcase Tipps und kostenlose Lösungen   Tipp: Ich habe deine neue, zusätzliche Site für
PHP & Scriptcase Tipps
fertige Lösungen in open source
hier klicken