{"id":201,"date":"2021-01-22T13:59:28","date_gmt":"2021-01-22T12:59:28","guid":{"rendered":"https:\/\/informatik.htwk-leipzig.de\/seminar\/?p=201"},"modified":"2021-02-01T18:12:48","modified_gmt":"2021-02-01T17:12:48","slug":"enterprise-search-engine","status":"publish","type":"post","link":"https:\/\/informatik.htwk-leipzig.de\/seminar\/lehrveranstaltungen\/betriebliche-informationssysteme\/2021\/enterprise-search-engine\/","title":{"rendered":"Enterprise Search Engine"},"content":{"rendered":"<h1>Motivation<\/h1>\n<p>\u201eZeitfresser Dokumentensuche: Verbesserungsbedarf in deutschen B\u00fcros\u201c so lautet am 14.07.2017 die Schlagzeile eines Artikels der Fachzeitschrift \u201eZDNET\u201c. Schon 2017 und wahrscheinlich auch einige Jahre zuvor stieg aufgrund der immer gr\u00f6\u00dfer werdenden Flut an Dokumenten, wie beispielsweise Formulare oder Antr\u00e4ge, der Zeitaufwand, den Mitarbeiter haben, um aus all diesen Textst\u00fccken das Richtige herauszusuchen. Das Neuanlegen eines Dokuments ist oftmals schneller als die Suche nach dem bereits angelegten. Der Autor des Artikels beruft sich dabei auf eine Studie von KYOCERA, die in Kooperation mit dem Portal Statista erstellt wurde. Dabei wurde festgestellt, dass mehr als die H\u00e4lfte der Befragten aus dem Bereich Administration\/Verwaltung (67%) und Finanzen\/Buchhaltung (71%) mehr als eine Stunde (durchschnittlich 119 min) am Tag mit der Suche und Ablage von Dokumenten und Dateien verbringen (Vgl. Abbildung 1).<\/p>\n<figure id=\"attachment_206\" aria-describedby=\"caption-attachment-206\" style=\"width: 709px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-206\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2021\/01\/Abbildung-1.png\" alt=\"\" width=\"709\" height=\"386\" \/><figcaption id=\"caption-attachment-206\" class=\"wp-caption-text\">Quelle: KYOCERA Document Solutions Deutschland GmbH und Statista Online-Befragung (2018): Studie_Dokumente_gesucht_gefunden, 2018.<\/figcaption><\/figure>\n<p>Aufgrund des hohen Zeitaufwandes k\u00f6nnen sich die Mitarbeiter weniger auf ihre eigentlichen Aufgaben fokussieren. Folgen daraus sind ineffiziente Gesch\u00e4ftsprozesse und resultierende Kosten f\u00fcr den Ausgleich dieser Ineffizienz. Neben dem hohen Zeitaufwand k\u00f6nnen Unternehmen zus\u00e4tlich hohe Kosten durch\u00a0 erh\u00f6hten Bedarf an IT-Ressourcen entstehen.<\/p>\n<p>Eine M\u00f6glichkeit dem genannten Problem entgegenzuwirken ist die Einf\u00fchrung einer Enterprise Search Engine. Eine solche unternehmensweite Suchmaschine verk\u00fcrzt die Datenzugriffszeiten deutlich und stellt zus\u00e4tzlich f\u00fcr die Nutzer relevante Informationen bereit.<\/p>\n<h1>\u00dcberblick<\/h1>\n<p>Enterprise Search oder auf Deutsch \u2013 unternehmensweite Suche, ist ein Begriff aus dem Forschungsumfeld des Information Retrieval und somit ein Teilgebiet dessen. Sie durchsucht Datenbanken, Unternehmenswebseiten, Intranet, Mailserver und Dateisysteme nach Dokumenten, weiteren Textinhalten und wenn gew\u00fcnscht auch nach Metadaten von Grafiken und Fotos. Dabei ist es nicht notwendig den prozessualen Ablauf f\u00fcr die Mitarbeiter zu ver\u00e4ndern. Das bedeutet, dass Mitarbeiter ihre Dokumente wie gewohnt abspeichern k\u00f6nnen und sich nicht auf neue Ordnerstrukturen oder Speicherorte einstellen m\u00fcssen. Diese spezielle Art von Suchmaschinen unterscheidet sich in ihrem Aufbau nicht von herk\u00f6mmlichen Internetsuchmaschinen. Die wesentlichen 3 Bestandteile einer solchen Websuchmaschine sind Crawler oder Crawling Engine, Indexer und Query Engine, welche f\u00fcr die Beschaffung, Aufbereitung und Bereitstellung der Ergebnisse zust\u00e4ndig sind.<\/p>\n<figure id=\"attachment_208\" aria-describedby=\"caption-attachment-208\" style=\"width: 827px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-208\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2021\/01\/Aufbau_SE.png\" alt=\"\" width=\"827\" height=\"578\" \/><figcaption id=\"caption-attachment-208\" class=\"wp-caption-text\">Abbildung 2 Konzeptionelle Architektur einer Enterprise Suchmaschine<br \/>Quelle: Eigene Darstellung angelehnt an Lewandowski, Dirk(hrsg) (2009), S. 340<\/figcaption><\/figure>\n<p>Abbildung 2 zeigt, wie Enterprise Suchmaschinen aufgebaut und die internen Abl\u00e4ufe bei einer Suchanfrage geregelt sind. Nach Eingabe der Suchanfrage durch den Anwender wird diese verarbeitet und mit Metadaten, unter anderem mit Benutzerdaten, angereichert. Anschlie\u00dfend werden die ben\u00f6tigten Informationen aus dem Index gezogen. Dieser besteht aus aufbereiteten Daten, welche bei der Inhaltsakquise aus verschiedenen Datenquellen gezogen wurden. Das Speisen des Index mit Daten ist ein von der Suche durch den Anwender abgekoppelter zyklischer Prozess. Die gesammelten Datens\u00e4tze werden dem Suchenden in Form einer Liste pr\u00e4sentiert, dieser kann dann die Ergebnisse bewerten und die Suche gegebenenfalls anpassen. Die Bewertung des Benutzers l\u00f6st eine Anpassung des Benutzerprofils aus, welche dann in der Datenlogik unter Benutzerdaten abgespeichert wird.<\/p>\n<h1>Elastic Search<\/h1>\n<p>Im Jahr 2010 ver\u00f6ffentlichte Shay Banon die erste Version seiner Open Source Enterprise Suchmaschine Elasticsearch. Realisiert ist die Suchmaschine in Java als Webservice und bietet somit eine plattformunabh\u00e4ngige Anwendung basierend auf der Softwarebibliothek Lucene von Apache. Die Kommunikation mit Elasticsearch funktioniert entweder direkt in der Programmiersprache Java \u00fcber zwei integrierte Clients (Node-Client und Transport Client) oder durch verschiedene andere Programmiersprachen \u00fcber eine RESTful API mithilfe von JSON (JavaScript Object Notation) und http. Die Systeminfrastruktur kann sowohl als Stand-Alone System oder verteilt auf vielen verschiedenen Servern realisiert werden.<\/p>\n<p>Elasticsearch ist dokumentenorientiert, das bedeutet, dass bei dieser Anwendung, anders als \u00fcblich, gesamte Dokumente und Objekte abgespeichert und indexiert werden. Dies erm\u00f6glicht das Suchen gesamter Dokumente und erspart das Aufschl\u00fcsseln der Metadaten in verschiedene Spalten einer Datenbanktabelle. Zudem m\u00fcssen die Dokumente nicht jedes Mal aus diesen Informationen der Datenbank rekonstruiert werden. Zur Serialisierung der Dokumente verwendet die Suchmaschine JSON, welches trotz komplexer Objekte die Konvertierung und die anschlie\u00dfende Indizierung einfacher macht als ein \u00e4quivalenter Prozess mit Tabellenstruktur. Zus\u00e4tzlich existieren JSON Bibliotheken f\u00fcr nahezu alle Programmiersprachen, welche die Umwandlung, egal welcher Datenstruktur, in dieses Format erm\u00f6glichen. Zur Speicherung der Dokumente nutzt Elasticsearch einen Index in Form invertierter Listen.<\/p>\n<h1>Beispiel<\/h1>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_211\" aria-describedby=\"caption-attachment-211\" style=\"width: 886px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-211 size-full\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2021\/01\/Abb3.png\" alt=\"Abbildung 3\" width=\"886\" height=\"437\" \/><figcaption id=\"caption-attachment-211\" class=\"wp-caption-text\">Abbildung 3 Elastic Stack Quelle: Eigene Darstellung<\/figcaption><\/figure>\n<p>In unserem Beispiel haben wir uns f\u00fcr die Realisierung mit dem Elastic Stack bestehend aus Elasticsearch, der Grafischen Oberfl\u00e4che Kibana und dem Datenanbindungstool Logstash entschieden. Alle Komponenten, die in Abbildung 3 zu sehen sind laufen dabei auf einer separaten Dockerinstanz arbeiten jedoch zusammen. Logstash dient in diesem Fall dazu die Daten aus unserer Beispieldatenbank (MySQL) zu akquirieren und anzureichern, um sie anschlie\u00dfend mit Elasticsearch zu synchronisieren. Die von Logstash gesammelten Daten werden dann von Elasticsearch Indexiert und durchsuchbar gemacht. Die grafische Oberfl\u00e4che Kibana dient der Administration von Logstash und Elasticsearch. Hier werden Metriken und Monitoring-Daten visualisiert, Log-Daten k\u00f6nnen analysiert werden und Anfragen k\u00f6nnen f\u00fcr in den Devtools getestet werden Elasticsearch ist dabei \u00fcber eine REST-Api erreichbar.<\/p>\n<figure id=\"attachment_215\" aria-describedby=\"caption-attachment-215\" style=\"width: 851px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-215\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2021\/01\/Abb4.png\" alt=\"docker-compose \" width=\"851\" height=\"1503\" \/><figcaption id=\"caption-attachment-215\" class=\"wp-caption-text\">Quelle: eigene Darstellung<\/figcaption><\/figure>\n<p>In unserem Beispiel haben wir Elasticsearch \u00fcber Loigstash mit einer Buchdatenbank verbunden.<\/p>\n<p><strong>Eine Anfrage an Elastic k\u00f6nnte dann z.B. so aussehen:<\/strong><\/p>\n<p><code><br \/>\nGET books\/_search?size=3 \/\/max. 3 Ergebnisse anzeigen<br \/>\n{<br \/>\n\"query\": {<br \/>\n\"multi_match\": {<br \/>\n\"query\": \"Adventures Mark Twain\", \/\/Suchbegriffe<br \/>\n\"fields\": [\"title\", \"authors\"] \/\/zu durchsuchende Felder<br \/>\n}<br \/>\n}<br \/>\n}<br \/>\n<\/code><br \/>\n<strong>Das Ergebnis k\u00f6nnte dann folgenderma\u00dfen aussehen:<\/strong><\/p>\n<p><code><br \/>\n{<\/p>\n<p>\"took\" : 1,<\/p>\n<p>\"timed_out\" : false,<\/p>\n<p>\"_shards\" : {<\/p>\n<p>\"total\" : 1,<\/p>\n<p>\"successful\" : 1,<\/p>\n<p>\"skipped\" : 0,<\/p>\n<p>\"failed\" : 0<\/p>\n<p>},<\/p>\n<p>\"hits\" : {<\/p>\n<p>\"total\" : {<\/p>\n<p>\"value\" : 13, \/\/insgesamt 13 Suchergebnisse gefunden<\/p>\n<p>\"relation\" : \"eq\"<\/p>\n<p>},<\/p>\n<p>\"max_score\" : 8.961069, \/\/Score des besten Ergebnis<\/p>\n<p>\"hits\" : [<\/p>\n<p>{ \/\/Suchergebnis mit dem h\u00f6chsten Score<\/p>\n<p>\"_index\" : \"books\",<\/p>\n<p>\"_type\" : \"_doc\",<\/p>\n<p>\"_id\" : \"9781402726002\",<\/p>\n<p>\"_score\" : 8.961069,<\/p>\n<p>\"_source\" : {<\/p>\n<p>\"title\" : \"The Adventures of Huckleberry Finn\",<\/p>\n<p>\"publication_date\" : \"2006-10-28T00:00:00.000Z\",<\/p>\n<p>\"isbn\" : \"9781402726002\",<\/p>\n<p>\"authors\" : \"Mark Twain\/Scott McKowen\/Arthur Pober\"<\/p>\n<p>}<\/p>\n<p>},<\/p>\n<p>{<\/p>\n<p>\"_index\" : \"books\",<\/p>\n<p>\"_type\" : \"_doc\",<\/p>\n<p>\"_id\" : \"9781426423703\",<\/p>\n<p>\"_score\" : 6.2986403,<\/p>\n<p>\"_source\" : {<\/p>\n<p>\"title\" : \"The Adventures of Sally\",<\/p>\n<p>\"publication_date\" : \"2008-05-29T00:00:00.000Z\",<\/p>\n<p>\"isbn\" : \"9781426423703\",<\/p>\n<p>\"authors\" : \"P.G. Wodehouse\"<\/p>\n<p>}<\/p>\n<p>},<\/p>\n<p>{<\/p>\n<p>\"_index\" : \"books\",<\/p>\n<p>\"_type\" : \"_doc\",<\/p>\n<p>\"_id\" : \"9780964366565\",<\/p>\n<p>\"_score\" : 5.6587152,<\/p>\n<p>\"_source\" : {<\/p>\n<p>\"title\" : \"Lo \u00fanico que no podr\u00e1s hacer en el cielo\",<\/p>\n<p>\"publication_date\" : \"2007-03-01T00:00:00.000Z\",<\/p>\n<p>\"isbn\" : \"9780964366565\",<\/p>\n<p>\"authors\" : \"Mark Cahill\"<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>]<\/p>\n<p>}<\/p>\n<p>}<br \/>\n<\/code><br \/>\n\u00dcber ein Score wird bewertet wie gut Suchanfrage und Ergebnis \u00fcbereinstimmen. Der Einfluss bestimmter Worte auf den Score kann auch angepasst werden, so werden in der Regel F\u00fcllw\u00f6rter wie \u201eund\u201c, \u201eoder\u201c, sowie Artikel, geringer gewertet. \u00dcber die API l\u00e4sst sich dann auch ein Frontend f\u00fcr die Suche implementieren, damit diese z.B. auf Webseiten eingebunden werden kann.<\/p>\n<h1>Vortragsfolien<\/h1>\n<p><a href=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2021\/01\/BIS.pdf\">BIS<\/a><\/p>\n<h1>Quellen<\/h1>\n<ul>\n<li>Schindler, Martin (2017): Zeitfresser Dokumentensuche: Verbesserungsbedarf in deut-schen B\u00fcros, 14.07.2017, abgerufen am 19.12.2020, <a href=\"http:\/\/www.si-licon.de\/41652561\/zeitfresser-dokumentensuche-verbesserungsbedarf-in-deut-schen-bueros\/\">http:\/\/www.si-licon.de\/41652561\/zeitfresser-dokumentensuche-verbesserungsbedarf-in-deut-schen-bueros\/<\/a>.<\/li>\n<li>KYOCERA Document Solutions Deutschland GmbH und Statista Online-Befragung (2018): Studie_Dokumente_gesucht_gefunden, 2018.<\/li>\n<li>Lewandowski, Dirk(hrsg) (2009): Handbuch Internet-Suchmaschinen. Nutzerorientierung in Wissenschaft und Praxis. 1. Aufl., Heidelberg, Neckar, 2009, ISBN: 978-3-89838-607-4.<\/li>\n<li>Lewandowski, Dirk (2015): Suchmaschinen verstehen, 2015, ISBN: 978-3-662-44013-1.<\/li>\n<li>Wendl, Christoph (2019): DMS versus Enterprise Search: Suchmaschinen f\u00fcr den Unternehmenseinsatz heben den Umgang mit Dokumenten aufein neues Level<\/li>\n<li>You Know, for Search, 08.02.2010, abgerufen am 21.01.2021, <a href=\"https:\/\/www.elas-tic.co\/de\/blog\/you-know-for-search\">https:\/\/www.elas-tic.co\/de\/blog\/you-know-for-search<\/a>.<\/li>\n<li>You Know, for Search! (inc), 13.07.2012, abgerufen am 21.01.2021, <a href=\"https:\/\/www.elastic.co\/de\/blog\/you-know-for-search-inc\">https:\/\/www.elastic.co\/de\/blog\/you-know-for-search-inc<\/a><\/li>\n<li>Document Oriented | Elasticsearch: The Definitive Guide [2.x] | Elastic, 18.06.2020, abgerufen am 21.01.2021, <a href=\"https:\/\/www.elastic.co\/guide\/en\/elas-ticsearch\/guide\/2.x\/_document_oriented.html\">https:\/\/www.elastic.co\/guide\/en\/elas-ticsearch\/guide\/2.x\/_document_oriented.html<\/a>.<\/li>\n<li>Indexing Employee Documents | Elasticsearch: The Definitive Guide [2.x] | Elas-tic, 18.06.2020, abgerufen am 21.01.2021, <a href=\"https:\/\/www.elastic.co\/guide\/en\/elas-ticsearch\/guide\/2.x\/_indexing_employee_documents.html\">https:\/\/www.elastic.co\/guide\/en\/elas-ticsearch\/guide\/2.x\/_indexing_employee_documents.html<\/a>.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Motivation \u201eZeitfresser Dokumentensuche: Verbesserungsbedarf in deutschen B\u00fcros\u201c so lautet am 14.07.2017 die Schlagzeile eines Artikels der Fachzeitschrift \u201eZDNET\u201c. Schon 2017<\/p>\n","protected":false},"author":21,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-201","post","type-post","status-publish","format-standard","hentry","category-betriebliche-informationssysteme"],"_links":{"self":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/201","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/comments?post=201"}],"version-history":[{"count":20,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/201\/revisions"}],"predecessor-version":[{"id":1113,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/201\/revisions\/1113"}],"wp:attachment":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/media?parent=201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/categories?post=201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/tags?post=201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}