Eigene Suchmaschine betreiben mit Apache Solr oder Elastic Search

Grundlagen und Methoden zum Betrieb eigener Suchmaschinen mit Open Source Software und Einführung in den Suchmaschinenbetrieb mit den Open Source Suchmaschinen - Frameworks Apache Lucene / Solr oder Elastic Search, Open Semantic Search, Apache Tika, Apache Stanbol und Apache Mahout

Schnell finden statt viele lange Suchen mit Open-Source Enterprise-Search Suchtechnologie

Wie kann selbst im Rahmen kleinerer Vereine, Redaktionen, Nichtregierungsorganisationen, Museen, Archive, Kultur- oder Bildungseinrichtungen eine eigene Suchmaschine zum wieder Erschließen der im Laufe der Zeit gewachsenen und über verschiedenste Systeme und Softwarelösungen verteilten Datenberge betrieben werden?

Datenberge erschließen: Big Data Suchtechnologien bzw. Enterprise-Search Suchmaschinen auch für die Kleinen

Wie lassen sich Suchmaschinen dank Open-Source Suchmaschinensoftware nicht nur kostengünstig sondern auch selbstbestimmt, unabhängig, datenschutzfreundlich, nachhaltig und anwenderInnenfreundlich betreiben?

Mit welchen Suchtechniken und Suchlösungen die gesuchten Inhalte und Dokumente gezielt auch bei riesigen und ungeordneten Datenmengen gefunden werden können, die noch dazu in verschiendenen Diensten, Speicherorten, Dateiablagen, Datenbanken und anderen Ablagesystemen verteilt liegen?

Wichtiger als Form bzw. Dateiformat und Speicherort bzw. Datenquelle: Inhalte

Ob als Archiv-Suche oder zum schnellen Finden vielleicht von irgendwem irgendwann irgendwo abgelegter Informationen oder Dokumente: Auch bei der Suche bzw. beim Finden kommt es vor allem auf den Inhalt an.

Dabei interessiert in erster Linie meist nicht deren unterschiedliche Form, verschiedene zur Erstellung oder Verwaltung genutzten Werkzeuge oder verschiedene Ablageorte bzw. Speicherorte usw...

Trotzdem erfordern diese (oft alleine den bisherigen Technologien, Programmen und Tools geschuldet) in der Praxis mehrfachen Suchaufwand oder gar manuelle Suche in oft schlecht gepflegten Dateizusammenstellungen und Verzeichnisstrukturen.

Zudem bergen sie die Gefahr, dass wichtige Informationen nicht gefunden werden und durchaus vorhandenes nützliches und wichtiges Wissen unbeachtet bleibt, weil nicht alle verwendeten Formen bzw. Datei- bzw. Dokumenten-Formate wie PDF, DOC, JPG oder ODF, Werkzeuge wie Microsoft Office, OpenOffice, Adobe und Ablageorte wie z.B. Wikis, Datenbanken, Dokumente, Verzeichnisse, gemeiname Dateiablagen, Datenträger oder Server bekannt sind, bei der Suche nicht beachtet oder vergessen werden.

Ob im Archiv, auf Fileserver, in Datenbank, im CMS oder im Wiki: Zentrale Suchmaschine erschließt und findet alles

Eine eigene format- und werkzeugübergreifende Suchmaschine hilft, weil sie viele verschiedene Dateiformate, Datenformate, Datenquellen und Ablageorte vereint, bündelt und übersichtlich aggregiert (sogenannte unternehmensweite Suche oder Enterprise-Search) und deren Inhalte auch bei großen Datenmengen leicht und schnell durchsuchbar macht.

Datenflut bewältigen: BenutzerInnenfreundliche Filter durch Facettensuche

Mittels benutzerInnenfreundlicher Filter, die automatisch generiert werden, ist schnelle und intelligente Navigation sowie weitere Einschränkung bzw. Verfeinerung der Suche durch Klick auf die jeweiligen Kriterien (sogenannte Facettensuche und Facettennavigation) auch bei sehr viele Suchergebnissen möglich, die bei Bedarf durch die dann noch vorhandenen weiteren Kritierien bzw. Filterauswahl immer weniger und immer gezielter eingeschränkt werden.

Zusatzinformationen: Metadaten, Tagging und Annotieren

Nur weil bestimmte Suchwörter nicht in einem Dokument enthalten sind, heißt dass nicht, dass es nicht zum Thema passt und bei deren Suche nicht gefunden werden sollte. Deshalb sollten Dokumente mit Zusatzinformationen wie Metadaten (z.B. Kategorie, Schlagworte) und ergänzenden Anmerkungen oder Kommentaren versehen sowie mit zusätzlichen auch individuellen Schlagworten getaggt bzw. markiert, kategorisiert, klassifiziert oder qualifiziert werden können.

Mehr finden durch semantische Suche: Automatische Analyse und Anreicherung mit Zusatzinformationen und Hintergrundwissen

Dabei muss das nicht bei allen Dokumenten durch manuelle Eingaben von Notizen (Annotation), Schlagworte oder Zuordnungen (z.B. mittels Tagging) geschehen. Durch Festlegung von Regeln, Vokabularien und Synonymen (z.B. in Thesauri bzw. Ontologien) können diverse Zusatzinformationen (wie z.B. Oberbegriffe oder weitere Daten zu genannten Begriffen oder Organisationen) aus vorhandenen Inhalten automatisch abgeleitet werden.

Zudem können auch Informationen externer Informationsquellen und Datenbanken, ob Open Data wie bei Wikipedia, oder Wissen von Partnern zur automatischen Datenanreicherung der verarbeiteten Informationen genutzt werden.

Enterprise Search können sich mittlerweile auch kleine Non-Profit Organisationen leisten

Solche sogenannte unternehmensweite Suche mittels Enterprise Search Lösungen und sogar Semantic Enterprise Search Lösungen sind dank freier Open Source Search Engine Komponenten nicht mehr nur finanzstarken Unternehmen und Konzernen, sondern auch für Redaktionen, Nichtregierungsorganisationen (NGOs), Non-Profit-Organisationen, Schulen und sogar für kleine gemeinnützige Vereine zugänglich.

Noch Suchmaschinen-SpezialistInnen nötig

Zu ihrer optimalen Einrichtung und intelligenten Integration der bestehenden IT-Infrastruktur einer Organisation bzw. deren Server(n) wird für einen möglichst effektiven, effizienten, ressourcenschonenden und reibungslosen Betrieb jedoch noch einiges an SpezialistInnenwissen und Erfahrung oder ein entsprechender auf Suchmaschinen bzw. Enterprise-Search spezialisierter IT-Dienstleister benötigt. An Suchlösungen, die das Ganze trotz der nachfolgend strukturiert aufgelisteten komplizierten technischen Hintergründe weitmöglichst selbst für IT-Laien ohne Server bzw. Suchserver beherrschbar zu machen, wird gearbeitet.

Eigene Suchmaschine mit Open-Source Suchmaschinensoftware

Freie Suchlösungen und Suchmaschinen

  • Für Dokumente, Tabellen, Fotos, Dateien, Verzeichnisse, Fileserver, Intranet & News: Semantische Suchmaschine Open Semantic Search
  • Französische Solr basierte und in Java programmierte Enterprise Search Distribution für Fileserver, Intranet und Webseiten: Costellio
  • Solr Userinterface in Java: Datafari
  • Elastic Search Userinterface in Java: FESS - Mit Crawlern und Config / Admin Interface Integrierte Enterprise Search Lösung für Suche und Crawling
  • Solr Userinterface in Python und Django (Solr UI als Teil eines Userinterfaces für Hadoop Cluster): Hue
  • Elastic Search Userinterface in node.js: Kibana
  • Solr Userinterface in Ruby on rails: Blacklight
  • PHP und Solr basierte Suchmaschine für Bibiothekskataloge (OPAC): VUFind
  • Als Webcrawler für Solr oder als GSA-API (Google Search Appliance kompatible Schnittstellen) für Solr: Websuchmaschine Yacy
  • PHP/Zend basierte Solr Suche für E-Learning Umgebungen: Suchmaschinenprojekt Pharus
  • Solr und Nutch basierte Intranet-Suche: Arch
  • Schwedische Solr basierte und in Perl programmierte Enterprise Search Distribution für Fileserver, Intranet und Webseiten: Searchdaimon

Datenimporte bzw. Konnektoren

  • Konnektoren und User Interfaces für Importe bzw. Indexierungen verschiedener Datenquellen: ManifoldCF
  • Dateien und Verzeichnisse einspielen und dabei grafisch gespeicherte Texte mittels OCR auslesen: Solr-connector-files

Suchkomponenten als freie Software

Für Laien noch zu kompliziert:

  • Apache Suchmaschinen-Komponenten als Framework für die Entwicklung von Suchanwendungen
    • Webcrawler Nutch
    • Konverter und Extrahierungstool Tika
    • Search Engine bzw. Indexer Lucene
    • Search Server Solr (enthält Lucene)
    • Schemafreier(er) Suchserver Elastic Search (enthält Lucene)
  • Enhancer Framework zum inhaltlichen Analysieren und schlussfolgernden Anreichern von Daten für Semantik, Ontologien und Named Entity Recognition (NER) und entity extraction: Apache Stanbol (enthält auch OpenNLP)
  • Framework für Text bzw. Sprachverarbeitung bzw. Natual Language Processing (NLP), Entity Recognition, Enhancement: OpenNLP
  • Klassifikation (automatisches Einordnen von Inhalten in bestehende bzw. feste Kategorien anhand ihrer Ähnlichkeit mit bereits einsortierten Daten) und Clustering (Erkennen und Gruppieren ähnlicher Inhalte) durch maschinelles Lernen: Apache Mahout

Suchmaschinentechnologie: Softwarekomponenten und Methoden zum Betrieb einer eigenen Suchmaschine

Technische Grundlagen und Hintergründe: Übersicht zu relevanten Methoden, Stellschrauben, Suchmaschinentechnologien und Tools, die beachtet werden sollten und/oder mit denen sich weiter optimieren lässt:

  • Open Source Suchlösungen: Welche kostenlose und freie Software eignet sich wofür (nicht)?
  • Hardware: CPU, RAM und HD

    Hardwareanforderungen: Je nach zu erwartender Last (Nutzung, Anzahl und Größe der Änderungen) sowie zu durchsuchender Dokumentenanzahl und Datenmengen entsprechende Prozessorleistung, Bandbreite, Speicherplatz und RAM bis hin zu vertikaler Skalierung durch leistungsfähigeren Server und horizontaler Skalierung durch zusätzliche Server (z.B. Suchcluster mit Solr Cloud)

  • Zentrale Suche

    Alles finden: Zentrale Suche bzw. Volltextsuche über alle Ablageorte und Datenquellen (Speicherorte und Suchraum)

  • Suchnavigation und Usability

    Einfach finden statt lange suchen: Suchmaske und Navigation

    • Einfache selbsterklärende BenutzerInnenschnittstelle (Userinterface)
    • Automatisch generierte Vorschläge
    • Einbindung in Suchmasken bestehender Navigations- und Verwaltungsprogramme (Integration in Clients) wie z.B. Suchschlitz und / oder Standardsuchmaschine vom Browser (Firefox), Dateimanager oder im Desktop (z.B. Ubuntu Unity) mittels Plugins nach OpenSearch Standard
  • Suche erweitern

    Nicht alle Ergebnisse?

    • Rechtschreibprüfung und Korrekturvorschlag: Meinten Sie ...?
    • Unschärfe: Auch ähnlich geschriebenes finden
    • auch Synonyme finden
    • auch Unterbegriffe finden
    • auch verwandte Begriffe finden oder anbieten
    • Wortstamm beachten (Stemming), nicht nur exakt so konjugiertes oder dekliniertes
  • Suche einschränken: Suchergebnisse filtern

    Zu viele Ergebnisse? Informationsflut sinnvoll filtern

    • Facettensuche: Automatisch angebotene weitere Filter und Suchkriterien (sogenannte Facetten) wie z.B. Autor(en), Quelle, Orte, Datum, Unterthemen, Themenkombinationen usw. sowie anhand weiterer nachfolgend behandelten Metadaten (Zusatzinformationen) und Ordnungssysteme
    • Visualisieren: Automatisch generierte Visualisierungen zur weiteren Navigation durch die gefundenen Inhalte (Wordcloud oder Tagcloud)
    • Explorative Suche: Durch die Ergebnisse navigieren und sichten
  • Bewertung und Anreicherung

    Bewertung mit Zusatzinformationen (Metadaten): Zusätzliche Daten über die eigentlichen Daten (z.B. Kategorien, AutorIn, Datum, Tags, Beschreibung, Notizen, Bewertungen) oder extrahieren solcher Informationen aus den Dokumenten selbst oder aus Datenbanken, Dokumentenmanagement- oder Metadatenmanagementsystemen

  • Einordnung (Klassifikation und Ordnungssysteme)

    • Kategorien bzw. Klassifikation (Einordnen in bestimmte Bereiche)
    • Vokabularien und Thesauri (Festlegung von Synonymen, Unterthemen, übergerodnete Themen)
    • Taxonomien (Themenbasierte Bäume, Kategorienhierarchie)
    • Verzeichnisstruktur (Dateipfade, Verzeichnisse)
    • Ontologien (Mittels Ontologien definierte auch komplexere Strukturen ermöglichen automatische Schlüsse durch Ableiten oder Vorliegen bestimmter (einzelner oder in bestimmten Kombinationen vorliegender) Kriterien durch sogenannte Reasoner)
  • Semantische Suche

    Semantic Search: Bedeutung (Semantik) einzelner Informationen bzw. Dokumentteile in die Suche oder in die Anzeige von Suchergebnissen einbeziehen bzw. filterbar machen (z.B. Person, Ort, Art von Zusammenhängen wie z.B. RechteinhaberIn, AutorIn usw.)

    • Bedeutung der Suchanfrage analysieren und auch Synonyme und Unterbegriffe mit einbeziehen (z.B. bei Suche nach "Kraftfahrzeug" auch "Automobil" oder bei Suche nach "Kraftfahrzeug" auch den Unterbegriff "Lastkraftwagen" oder "Personenkraftwagen" finden)
    • Export der speziellen Bedeutung einzelner Felder der Datensätze beispielsweise aus einer Datenbank (z.B. mittels speziellem Konnektor, Konverter oder über RDFa)
    • Named Entity Recognition oder Entity Extraction: Erkennen der Bedeutung bzw. Namen (wie z.B. bestimmte Orte, Personen oder Organisationen) z.B. durch Abgleich mit Liste von Ortsnamen und Indikatoren wie passende Postleitzahl
  • Automatische Texterkennung (OCR)

    Text in Grafikformaten wie z.B. Scans, Faxe und Fotos wird erkannt und so die entsprechenden Dokumente oder Grafiken auch über deren Textinhalte auffindbar

  • Social Search

    Bewertung, Ergänzung oder Einordnung der Suchergebnisse sowie zugrundeliegenden Dokumente durch AnwenderInnen (Stichworte: "Social Tagging" oder "Folksonomy" z.B. durch Setzen von Lesezeichen (Social Bookmarking) und Hinzufügen von Zusatzinformationen wie z.B. ergänzende Notizen (Annotation), Tags (Klassifikation) oder Bewertungen und die Berücksichtigung der Bewertungen anderer bei der Suche)

  • Relevanz und Ranking

    Welche Inhalte und Metadaten sind wobei wirklich relevant? In welcher Reihenfolge werden die Ergebnisse ausgegeben?

    • Relevanz berechnen: Vor- und Nachteile maschineller Bewertung und Analysen
    • Relevanz beurteilen: Vor- und Nachteile menschlicher Bewertungen und Social Search
    • Wie können die Vorteile aus beiden Ansätzen sinvoll genutzt sowie letzteres technisch unterstützt werden?
  • Suchkomponenten: Aufbau und Struktur einer Suchmaschine

    Struktur und Grundkomponenten einer Suchmaschine

    • Scheduler (zeitliche Steuerung des Crawlers) oder Trigger (Updates oder Aktionen in anderer Software lösen z.B. über eine API Updates aus)
    • Crawler (Datenbestände oder Websites durchgehen und laden, nach neuem ausschau halten) oder Konnektor (z.B. zum Auslesen von Datenbanken oder Unterschieden zum vorherigen Lauf (Delta-Updates))
    • Auslesen, Extrahieren, Parsen, Konvertieren bzw. Transformieren (ETL-Prozess) oder im Datenjournalismus "Scrapen"
    • Analyzer (Trennt Texte zu Begriffen auf und falls Stemming auch deklinierte Begriffe bis zum Wortstamm)
    • Named Entity Recognition oder Entity Extraction
    • Enhancer zum Anreichern (Enhancing) oder Verknüpfen mit weiteren Daten oder automatischem ziehen von Schlüssen (reasoning mittels reasoner)
    • Indexer (Speichert Informationen in effizient abfragbarem Format)
    • Query Handler für Suchen und Abfragen bzw. darauf aufsetzendes Userinterface
  • Crawling

    Aktualisierung des Suchindex bzw. indexieren neu hinzugekommener oder geänderter Daten und Dokumente: Unterschiedliche und kombinierbare Crawling-, Update- bzw. Indexierstrategien

    • Zeitgesteuerte Recrawls: Regelmäßig bestimmte (Teil-)Bereiche indexieren (z.B. per Crontab)
    • Filesystemmonitoring: Bei Änderungen in bestimmten Verzeichnissen bzw. auf dem Fileserver neue oder geänderte Dateien automatisch und sofort neu indexieren lassen
    • Trigger für Redaktionssysteme: Bei Änderungen im Wiki oder im Content Management System (CMS) wie MediaWiki, Drupal, Wordpress usw. per Trigger-Plugin geänderte Seiten automatisch und sofort neu indexieren lassen
    • Aus anderen Anwendungen: Starten per API
    • Von AnwenderInnen initiierte direkte Anweisungen in gewohnten Werkzeugen durch Integration in Standardtools (falls Filesystemmonitoring und Trigger für Redaktionssysteme nicht möglich und im wichtigen Einzelfall zu lange Wartezeiten bis zum regelmäßigen Recrawl):
      • Webbrowser: Button zum (Re-)Indizieren der momentan geladenen Seite mit nur einem Klick
      • Dateimanager: Indizierungen von Verzeichnissen oder Dateien ohne Zwischenschritte direkt aus dem gewohnten Filemanager heraus durch die Option "Indizieren" in den Kontextmenüs (rechte Maustaste). Diese werden mittels entsprechendem Plugin um diese Option ergänzt.
    • Starten per Kommandozeile
    • Aus so gut wie jeder Umgebung steuerbar: Starten per Weboberfläche
  • Sicherheit bzw. Datenschutz und IT-Sicherheit

    • Zugang: Authentifikation und daraus folgende Zugriffsrechte
    • Verschlüsselte Verbindung (SSL bzw. HTTPS)
  • Datenschutz beim Suchen

    Datenschutzproblematiken und potentielle Datenlecks

    • Nach Hause telefonieren und interne Daten übertragen
    • Externe Zusatzinformationen nachladen, aus denen auf Inhalte geschlossen werden kann
    • Datenschutzprobleme durch Logfiles bzw. Protokollierung der Suchanfragen
  • Suchmaschinenstandards

    Offene Standards und Interoperabilität (Kompatibel zu anderer Software): XML, RDF, OWL, RSS, OpenSearch, OpenAnnotation (früher: Annotea), BiBo, Simple Knowledge Organisation System (SKOS), XMP und co.

  • Konfiguration
  • Erfahrungen und Empfehlungen
  • Bewährte laiengerechte AnwenderInnen-Tools und Admin-Skripte aus eigener Herstellung
  • Dokumentation:
    • Benutzerhandbuch: Wenn das Userinterface für eine besonders komplexere Suche mal nicht ausreicht hilft schnell die Online-Hilfe oder das digitale Benutzerhandbuch, das Suchoperatoren und erweiterten Suchmöglichkeiten erklärt
    • Zeitsparendes digitales Handbuch, Tutorial bzw. Admin-Tutorial für schnelles wieder rein finden und Nachschlagen der am häufigsten benötigten Arbeiten, Aufgaben und Einstellungen

Literaturempfehlungen und Lehrbücher

Vorträge bzw. Videos

Schlagworte zu Suchmaschinentechnologien

Enterprise Search, Information Retrieval, Explorative Suche, digitale Bibliothek, Social Semantic Search, Social Semantic Web, Web 3.0, Annotation, Metadaten, Social Tagging und Folxonomies, Data-Warehouse, Aggregation, Named Entity Recognition, Crawler, Index, Clustering, Linked Data, ETL bzw. ETL-Prozess (Extrahieren, Transformieren und Laden), Informationsintegration, Künstliche Intelligenz (KI), Kontextsuche bzw. kontextuelle Suche