Suche nach dem Buch
Inzwischen hatten viele von Ihnen die Gelegenheit, die durchsuchbare Online-Version des Lucidworks Reference Guide for Solr 1.4 zu nutzen. In diesem Beitrag beschreibe ich, wie wir die ursprüngliche Dokumentversion des Referenzhandbuchs in eine Online-Ressource verwandelt haben , die von Solr durchsucht werden kann.
Ich hoffe, dass Sie dies nützlich finden, wenn Sie einen ähnlichen, online durchsuchbaren Dienst aus vorhandenen Dokumenten erstellen möchten.
Der Inhalt
Das Referenzhandbuch selbst wurde in OpenOffice Writer (OOW) verfasst und bearbeitet, das nicht zuletzt wegen seiner Open-Source-Herkunft ausgewählt wurde. Obwohl das primäre Ziel darin bestand, eine einzige herunterladbare PDF-Datei des vollständigen Referenzhandbuchs zu erstellen, bot uns die Verwendung von OOW einen hilfreichen Ausgangspunkt für die Umwandlung in das durchsuchbare Gegenstück.
Jedes Kapitel des Leitfadens wurde als einzelnes OOW-Dokument geschrieben (z.B. Kapitel1.sxw, Kapitel2.sxw, usw.). Um einen wirklich nützlichen Index des Buches zu erstellen und die Navigation durch den Inhalt zu vereinfachen, beschlossen wir, jedes Kapitel nicht als ein einziges Dokument zu indexieren, sondern jeden Abschnitt als unabhängige Textdokumente. So sollte Kapitel 2 als die folgenden 12 Dokumente indexiert werden:
|
|
Dokument-Pipeline
Der erste Schritt der Konvertierungssequenz bestand darin, HTML-Dateien zu erstellen. Wir verwendeten writer2latex, ein Open-Source-Programm, um xhtml-Dateien zu erzeugen. Writer2latex wandelt ein LaTex- oder OpenOffice-Dokument in eine navigierbare Webseitenfolge um. Die Seiten enthalten Html-Seitentitel, Schaltflächen für Vorheriges/Nächstes/Aufwärts und grundlegende Formatierungen. Wir haben für jeden Abschnitt des Buches separate xhtml-Seiten erstellt.
Als Nächstes mussten wir einige Zeit damit verbringen, die Konfiguration von writer2latex so zu verändern, dass sie unserem Zweck entsprach. Das Programm macht verschiedene Standardannahmen über seine Ausgabe, die auf seiner Aufgabe beruhen, Web-Pageflows zu erstellen, die nicht mit unserer Absicht übereinstimmten. Letztendlich mussten wir jede Seite nachbearbeiten, um sie an unsere Zwecke anzupassen. (Mehr über das endgültige Ausgabeformat später).
Als wir die nachbearbeitete Ausgabe in der Hand hatten, indizierten wir sie mit grundlegendem Solr. Wir hatten nun einen einfachen Solr-Index, der die gewünschten Dokumente auf der Grundlage von Standard-Solr-Abfragen genau wiedergeben konnte.
Die Suchanwendung
Als Nächstes mussten wir die Solr-Anwendung in eine vollwertige Webanwendung umwandeln, die die indizierte HTML-Datei abruft und sie in der Präsentationsschicht darstellt, die Sie jetzt auf der Suchanzeigeseite sehen (unser interner Name für diese Anwendung ist LucidFind). Als Nächstes mussten wir die Solr-Anwendung in eine vollwertige Webanwendung umwandeln, die die indizierte HTML-Datei abruft und sie innerhalb der Präsentationsschicht, die Sie jetzt auf der Suchanzeigeseite sehen, wiedergibt (unser interner Name für diese Anwendung ist LucidFind). Und da LucidFind bereits Facetten enthält, haben wir die grundlegenden Facettenfunktionen von Solr genutzt, um Facetten für die LWCDRG zusammen mit unseren Website-Inhalten und Blogbeiträgen hinzuzufügen.
Nun gab es einige Herausforderungen bei der Formatierung der Dokumente, die einige Nachbearbeitung erforderten. Es waren einige umfangreiche Skript- und HTML-Änderungen erforderlich, um das gewünschte, visuell konsistente Verhalten bei der Tabellenformatierung, der Einrahmung von Bildern und der Erstellung von CSS zu erreichen; zu den Problemen gehörten Absatzabstände, Schriftgrößen und ähnliche Probleme bei der HTML-Präsentation. Wir sind auch auf einen Fehler in Writer2LaTeX gestoßen, bei dem das Tool die Kapitelnummern aus den OOW-Metadaten nicht richtig erfasst hat; als wir den Autor kontaktierten, hat er das Problem für uns behoben (man muss Open Source einfach lieben !).
Einige Herausforderungen bei der Verwaltung von Inhalten
Wir haben auch die Bilder des Buches in einem Verzeichnis für statische Inhalte untergebracht. Dies erforderte ein wenig zusätzliche Arbeit, da das ursprüngliche LWCDRG-Design diesen zentralen Ansatz nicht berücksichtigte; für die Bearbeitung des Buches und die Erstellung der PDF-Datei ist es bequemer, die Bilder in jedes Kapitel einzubinden, obwohl wir dies im Nachhinein vielleicht auch mit einem Mechanismus unter Verwendung externer Links hätten erreichen können.
Die ID des Dokuments enthält die Kapitelnummer und die Abschnittsnummer. Der eigentliche Text des Dokuments ist der Text des xhtml-Body-Elements ohne den umgebenden
<body></body>
Dies macht es einfach, die übergeordneten Abschnitte zu ziehen und sie für den Kontext einzubinden, indem die Abschnitte in eine große HTML-Seite eingepackt werden. Zum Testen hat ein xsl-Skript genau dies getan.
Lance Norskog ist ein Suchingenieur bei Lucid Imagination.