SHI GmbH Augsburg - Ihr Starker Partner für Search & Big Data, Apache Solr, IT Commerce Lösungen

SHI - Fast Forward to Success
SHI - Fast Forward to Success
Geschwindigkeit zählt. Bei den Kosten und bei den Erfolgsaussichten.
Bei uns sorgen professionelles Projektmanagement und modulare Entwicklung
für Ihren raschen und effizienten Software-Projekterfolg.
SHI - Support und Service
SHI - Support und Service
Wir sind Dienstleister aus Leidenschaft und verstehen unsere Kunden.
Nach dem Projekt ist vor dem Projekt und individuelle, persönliche
Betreuung stehen bei uns ganz weit oben.
SHI - Beratung  Entwicklung  Consulting
SHI - Beratung Entwicklung Consulting
Wir beraten und unterstützen Sie mit Schulungen, Trainings und Consulting. Von der Strategieberatung bis zur Anwendungsentwicklung helfen wir Ihnen bei der Optimierung Ihrer
Geschäftsprozesse.
SHI - Individuelle Anwendungen aus Software-Bausteinen
SHI - Individuelle Anwendungen aus Software-Bausteinen
Bei uns bekommen Sie weder Software von der Stange, noch unerprobte Eigenentwicklungen. Wir setzen auf bewährte Open-Source-Technologien und setzen Ihre individuelle Anwendung
aus passenden
Bausteinen zusammen.

Universal AJAX Live Search

Veröffentlicht am 22.03.2018 von Markus Klose

In jedem Projekt, bei dem es um die Durchsuchbarkeit von Daten geht, ist die Anbindung der Datenquelle(n) eine der Herausforderungen. Dabei ist es unerheblich ob es sich um die klassische Enterprise Search handelt, oder um suchgetriebene Analytics Projekte. In diesem Blog werden wir aufzeigen wie man dieser Herausforderung bei Apache Solr begegnet.


Eine Typische Erwartungshaltung bei Apache Solr ist, dass Solr direkt jegliche Datenquelle anbinden kann. Apache Solr ist jedoch eine Suchmaschine und kein Ingestion-Framework. Viele der gängigen Formate kann Apache Solr zwar out of the box verarbeiten, jedoch nicht alle.


Da Apache Solr nicht alle Datenquellen direkt unterstützt bleibt nur auf Hilfsmittel zurückzugreifen. Ein Hilfsmittel ist die Programmierung einer eigenen Komponente, die Daten von einem System ausliest und an Solr schickt. Hierbei hat man dann zwar die größtmögliche Flexibilität, jedoch muss man auch die komplette Funktionalität implementieren und vor allem pflegen. Eine Alternative zu Custom Code ist Nutzung eines der vielen Ingestion-Frameworks. Hier gibt es eine große Auswahl an Produkten mit den unterschiedlichsten Möglichkeiten.


Betrachten wir doch mal ein paar konkrete Beispiele bzw. Datenquellen und schauen wie diese in Apache Solr indexiert werden können.

solr ingestion framework


Dateisystem

Im Dateisystem liegen in der Regel binäre Dateien, wie beispielsweise Word, PDF, Excel, Bilder, Zips und vieles mehr. Dank der Integration von Apache Tika kann Solr die unterschiedlichsten Formate erkennen und verarbeiten. Entweder man sendet diese Dateien direkt an Solr oder konfiguriert den DataImportHandler (DIH), der dann selbstständig das Dateisystem durchsucht und das „Schicken“ übernimmt. Apache Solr unterstützt hierbei jedoch nur das lokale Dateisystem. Andere Dateisysteme, wie beispielsweise FTP, S3, HDFS oder DropBox werden nicht unterstützt. Das Connector Framework von Lucidworks Fusion oder Apache Nifi können die Aufgabe des Dateisystems Crawlen übernehmen.


Datenbank

Ähnlich sieht es bei Datenbanken aus. Apache Solr bietet mittels des DIH die Möglichkeit Datenbanken via JDBC abzufragen und so die Daten zu indexieren. Datenbanken wie MongoDb oder Couchbase kann Solr nicht direkt indexieren. Auch hier muss auf Hilfsmittel wie Apache Nifi oder Lucidworks Fusion zurückgegriffen werden.


Repositories

Repositories, wie beispielsweise JIRA, Subversion, Sharepoint, Alfresco oder Salesforce, kann Apache Solr gar nicht direkt indexieren. ConnectorFrameworks, wie das  von Lucidworks Fusion, können diese Repositories samt der Berechtigungen indexieren. Berechtigungen sind vor allem im Umfeld der Enterprise Search sehr wichtig. Gleiches gilt für Social Media Daten, wie beispielsweise Twitter Feeds oder Facebook Posts. Auch hier ist Apache Solr darauf angewiesen, dass diese Dokumente von außen gepusht werden.


Web Content

Eine weitere wichtige Datenquelle ist das Internet. Apache Solr kann auch hier wieder nur rudimentär mittels des DIH Daten indexieren. Apache Solr beinhaltet keine Web Crawling Komponente und kann nur strukturierte Informationen, wie beispielsweise Feeds indexieren. Für den unstrukturierten Web Content muss auf Crawler, wie beispielsweise Apache Nutch, zurückgegriffen werden.


Fazit

Apache Solr ist eine Suchmaschine. Die Kernaufgabe ist in den bereits indexierten Daten die richtigen Informationen bzw. Dokumente zu finden. Bei der Anbindung der Datenquellen ist Apache Solr oft auf Hilfe von außen angewiesen. Es gibt hier zum Glück genug kommerzielle und auch freie Produkte die eine Solr Schnittstelle haben und somit die Daten anliefern können.


Die oben genannten Hilfsmittel, wie Lucidworks Fusion, Apache Nifi oder Apache Nutch, stellt keine vollständige Liste der Möglichkeiten dar. In unseren Projekten nutzen wir je nach Situation und Datenquelle auch andere Frameworks.


Es gibt auch Projekte, da hilft keines dieser Frameworks bzw. sie sind zu komplex, zu schwerfällig oder die Kosten stehen nicht im Verhältnis zu dem benötigten Nutzen. In solchen Projekten entwickeln wir dann speziellen Code der die Aufgabe übernimmt.


Haben Sie Fragen zu der Anbindung Ihrer Daten an Solr oder benötigen Sie Unterstützung können Sie sich gern unverbindlich mit uns in Verbindung setzen.

SEARCH & BIG DATA, BERATUNG, SCHULUNG, ENTWICKLUNG, SUPPORT, PUBLISHER SOLUTIONS
MIT APACHE SOLR, LUCENE, ELASTICSEARCH, SMARTLOGIC SEMAPHORE, SHI INFOPILOT