[Allegro] Himmelfahrtskommando 2010: Solr power for allegro

Bernhard Eversberg ev at biblio.tu-bs.de
Fr Mai 14 09:48:39 CEST 2010


Solr power for allegro

                        Für Eilige:
                        Die knappe Handlungsanleitung steht weiter unten.

Wie haben wir zu Himmelfahrt
viel Aufwand oft getrieben,
und Mühsal nicht, nicht Witz gespart
von früh bis abends sieben.

Doch dies Jahr sollt' am Okerstrand
die Sache anders laufen:
Man aalt sich dort in weißem Sand
und Bier gibt's auch zu kaufen:       http://okercabana.de

Da lebt sich's wohl, da strebt man hin
an schönen Feiertagen,
anstatt mit ernstem Fachmannssinn
zu lösen schwere Fragen...

Ja, hätte denn nur wetteronline.de mitgespielt! Notgedrungen hatte
daher Plan B in Kraft zu treten.

Zu Himmelfahrt sollte, das war ja das Kernvorhaben, dies Jahr mal eine
ruhige Kugel geschoben werden. Statt aus der Verbrennung eigenen
Gehirnschmalzes, einer allzu knappen Ressource, hätte man gern
potentialreiche Energie bezogen aus der Strahlkraft des Zentralgestirns.
Heute kann so etwas aber, fällt die herkömmliche Sonne aus, auch
erledigt werden durch mühe- und kostenfreies Herabladen von
energetischem Rohstoff aus den Wolken des weltumspannenden Netzes.
Und so geschah's.

Was allegro noch fehlte, zur Sache jetzt, war Suchmaschinentechnik.

Ein Suchsystem braucht einen Einwurfschlitz, in den man, was immer an
Wortmünzen zur Hand ist, einwirft und - schwupp - kommt was raus.
Man schaut sich das an und - bei Nichtgefallen - nächster Versuch.
Soo läuft doch das heute! Nicht mehr betulich Register wälzen
und kabbalistische Kombinationen ausknobeln. Das Suchen darf keine Zeit
mehr brauchen, weder im Hirn noch in der Maschine, und der Endnutzer
fordert das Einebnen der Lernschwellen, den intuitionsbasierten Zugang.

Suchmaschinentechnik, die gibt's zum Glück umsonst! Marktführer in den
Open-Source-Gefilden ist Solr (früher Lucene) von Apache. Dieses
Zentralgestirn strahlt von folgendem Ort aus
   http://lucene.apache.org/solr/
rund um die Uhr Energie ab - fangen wir sie auf!

Wir wollten konkret wissen, ob man Zeit und Mühe für das Einrichten und
Anflanschen von Solr an allegro auf ein Minimum reduzieren kann.
Wir hatten ja bereits eine VuFind-Implementierung vorgestellt:
    http://kronos.biblio.etc.tu-bs.de/vufind/
Leider frißt diese deutlich mehr Zeit für ihre Einrichtung als Null.
Das liegt jedoch weniger an Solr als an der Oberfläche, die ein
kunstreiches Konfigurieren verlangt. Die Oberfläche aber, die ist nicht
der wahre Knackpunkt, wenn wir sagen, wir brauchen Suchmaschinen-
technik! Warum solche nicht *direkt* einschleusen in a99/alcarta und
in die Weboberflächen, die wir längst haben? Es kann doch nicht ums
Abschaffen unserer Errungenschaften gehen, sondern eine weitere, ganz
andersartige soll hinzutreten, unser Arsenal vergrößern statt
verdrängen. Eine, die es nicht immer so genau nimmt, die ein wenig
"fuzzy" arbeiten kann, die mit Phrasen und "proximity" und ranking
operiert und was dergleichen mehr der Mittel, Moden und Methoden
heuer sein mögen.
Und all sowas hat eben Solr zu bieten. Und skalieren tut es, skalieren!
Bis hinauf in hohe Millionenmengen. Register kann es nicht (was da
gelegentlich gemacht wird, sind sehr aufwendige Zusatzkonstruktionen)
aber Register haben wir ja. Eingeben und Bearbeiten von Daten geht
auch nicht, aber auch das haben wir. Geschäftsgänge programmieren,
wohldurchdachte Manipulationen mit Daten ausführen, dazu wären bei
Solr komplizierte Programme zu schreiben in Java und XSLT, aber dazu
haben wir FLEX, mit dem man flink und flüssig zum Ziel kommt und
ohne Informatikstudium.
Ärmel hoch, hieß es also, machen wir mit Solr das absolute Minimum und
kein Jota mehr, um seine Stärke mit den unseren paßgenau zu koppeln.

Es stellte sich raus, daß dafür ein Feiertagsvormittag vollauf reichte,
und für Sie als Nachnutzer wird noch deutlich weniger reichen, eine
Werktags-Personenstunde vielleicht, mehr nicht.
Zwar belegt das Solr-Paket 142 MB mit 4500 Dateien, aber wirklich tun
muß man daran, und das war das Erstaunliche, absolut *nichts*. Das
meiste davon wird man eh gar nicht brauchen, das liegt da nur so rum.
(Man *kann* natürlich viel tun, wenn man auf den Geschmack kommt,
aber was wir unbedingt brauchen, das erfordert Null Eingriff.)

Handlungsanleitung
------------------
Langer Rede kurzer Sinn, so geht's, in 7 leichten Schritten:
(Nur zum Ausprobieren, alles auf einem Windows-PC)

0. Man braucht ab Schritt 4 diese 4 Dateien:
    (Die ersten zwei, ganz klein alle beide, sind alles, was wirklich
     für uns zu tun war! Sie liegen im SVN unter flex bzw. software)
    asksolr.flx   (erstellt den Suchbefehl und laesst ihn ausfuehren)
    expsolr.flx   (evtl. erweitern, falls mehr Datenfelder gewünscht)
    e-unicod.apr  (evtl. umbenennen in z.B. e-unicod.xpr)
    e-unihtm.apr  (evtl. umbenennen in z.B. e-unihtm.xpr)

1. Dasein und laufen muß ein Webserver, am besten Apache.
    Wenn Java (mindestens 1.5) nicht vorhanden, dann aktuelles Java
    installieren. Das gibts auf  http://java.com/de/download/

2. Solr-Paket in  c:\programme\solr  einfach nur entpacken
    (Downzuloaden von  http://lucene.apache.org/solr/ )

3. DOS-Fenster aufmachen und Jetty starten: (ist mit im Solr-Paket)
    Befehl  java -jar start.jar   auf  c:\programme\solr\example
    (Dieses DOS-Fenster dann minimieren)

4. Daten aus allegro mit  expsolr.flx  exportieren
    Erg.Menge machen, dann  X expsolr  eingeben und abwarten.
    Es entsteht  c:\programme\solr\example\exampledocs\katalog.xml

5. Weiteres DOS-Fenster aufmachen.
    Auf c:\programme\solr\example\exampledocs diesen Befehl:
    java -jar post.jar katalog.xml
    Es entsteht  c:\programme\solr\example\solr\data\index\
    Dort liegen dann die Indexdaten von Solr
    (Es dauert bei 100.000 Datensätzen weniger als 2 Minuten)

6. Schon kann's losgehen! In a99 eingeben:
    X asksolr            [oder dies auf einen FlipButton legen]
    In das Eingabefeld dann geeignete Suchwörter eingeben, die
    automatisch mit AND verknüpft werden

7. "Enter" drücken und  asksolr.flx  tut sein Werk.
    Binnen kurzem erscheint eine Ergebnismenge, die von Solr produziert
    wurde. Damit kann man umgehen wie mit jeder Erg.Menge. Nicht anders
    als hätte man sie z.B. mit PRESTO gemacht (externe Erg.Menge).

Jetzt mögen Sie zwar mit Goethe Bedenken tragen angesichts der
Veloziferik unserer Tage (Wilhelm Meisters Wanderjahre, Kap.40), aber
das sagte der Mann vor 200 Jahren! Auf ein paar Jährchen mehr kann's
denn wohl nicht ankommen...   (*)

Als Zugabe noch einige Tips:

Solr-Datenbank erneuern:
o  Server stoppen (im Fenster von Schritt 3.: Strg+c)
o  Verzeichnis ../solr/data  löschen  (s. Schritt 5.)
o  Schritte 3 - 5 wiederholen

Solr Doku: Die ist mit im Paket, geben Sie im Browser ein:
   c:/programme/solr/docs/index.html

Die Funktionsweise ist nicht immer transparent, doch welcher Endnutzer
verlangt das denn? Das ist eben so bei fuzzy-Suchtechnik, die leistet
sich einige Schnurren:
Wenn man etwa "Gdansk" sucht, einmal mit und einmal ohne den Akut auf
dem n, wird ohne ihn das Wort NUR gefunden, wenn es ohne Akut im Satz
steht, aber mit Akut wird auch die Schreibweise ohne gefunden. Das ist
z.B. bei Héritage dann aber nicht so, das wird bei dieser Eingabe nur
so gefunden, nicht wenn es im Satz ohne Akzent steht.

Zur Suchbefehls-Syntax:
 
http://wiki.apache.org/solr/SearchHandler?action=show&redirect=StandardRequestHandler

Selber was konfigurieren kann man unter
   c:\programme\solr\example\solr\conf
vor allem in der Datei  schema.xml,
z.B.   <solrQueryParser defaultOperator="OR"/>
Ferner liegen dort  stopwords.txt  und  synonyms.txt.
Aber wie gesagt: An alledem mußten wir *nullkommanix* tun!

In  .../solr/example/logs/  bildet sich, für Neugierige, eine Logdatei.

Einige Fragen tun sich sofort auf: Mehrere Datenbanken? Updating?
Sätze löschen? Feldspezifisch suchen? Zugriff mit PHPAC und a30?
Andere Anordnung der Ergebnismenge? ...
Ja Himmel nochmal, ein Himmelfahrtsvormittag ist sooo lang ja nun
auch wieder nicht. Und im Sinne von OpenSource sind jetzt Sie dran.

-----------------------------------------------------------------------
(*)
... und so springt's von Haus zu Haus, von Stadt zu Stadt, von Reich zu
Reich und zuletzt von Weltteil zu Weltteil, alles veloziferisch.
So wenig nun die Dampfmaschinen zu dämpfen sind, so wenig ist dies auch
im Sittlichen möglich; die Lebhaftigkeit des Handels, das Durchrauschen
des Papiergelds, das Anschwellen der Schulden, um Schulden zu bezahlen,
das alles sind die ungeheuern Elemente, auf die gegenwärtig ein junger
Mann gesetzt ist.
      http://gutenberg.spiegel.de/index.php?id=5&xid=883&kapitel=40





Mehr Informationen über die Mailingliste Allegro