projektbericht zur nutzung der solr/lucene-suchengine in einem bei...آ  solr / lucene –...

Download Projektbericht zur Nutzung der Solr/Lucene-Suchengine in einem bei...آ  Solr / Lucene – bekannte Anwender

If you can't read please download the document

Post on 25-May-2020

0 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Projektbericht zur Nutzung der Solr/Lucene-Suchengine in einem Zahlungskontrollsystem

    Michael Meyer

    Berenberg, Hamburg

    DOAG Nürnberg, 2015

  • Agenda

    • Berenberg „Auf einen Blick“

    • Projekt „Erweiterungen eines Zahlungskontrollsystems (ZKS)“

    • Ausgangslage

    • Erweiterungen / Anforderungen

    • Werkzeugauswahl

    • Oracle Text

    • Solr, Lucene

    • Elastic Search, Lucene

    • Genereller Ablauf

    • Beispielabfragen, Anwender-GUI, Admin-GUI

    • Resümee

    • Ausblick: Weitere Anwendungsfälle

    06.11.2015 Projektbericht zur Nutzung der SolrLucene-Suchengine in einem Zahlungskontrollsystem2

  • Berenberg „Auf einen Blick“ (1/2)

    06.11.2015 Projektbericht zur Nutzung der SolrLucene-Suchengine in einem Zahlungskontrollsystem3

  • Berenberg „Auf einen Blick“ (2/2)

    06.11.2015 Projektbericht zur Nutzung der SolrLucene-Suchengine in einem Zahlungskontrollsystem4

  • Erweiterungen eines Zahlungskontrollsystems (ZKS) – Ausgangslage

    • Initiale Version 2006

    • ZKS prüft alle ein- und ausgehenden Zahlungen auf

    • Verstöße gegen Embargorichtlinien

    • Währungen im Zusammenhang mit Schlüsselbegriffen (z.B. Zahlungen nach Kuba über US-Korrespondenzbank)

    • Doppeltzahlungen, -einreichungen

    • (keine Prüfung auf Verhaltensmuster (Smurfing etc.))

    • Auffällige Zahlungen werden ausgesondert und können nach Compliance-Freigabe wieder dem Ablauf zugeführt werden.

    • Manuelle hausinterne Pflege der Schlüsselbegriffe (Excel). CSV-Import via external table

    • Alle Zahlungen, Freigaben, Abläufe werden für 10 Jahre archiviert

    • Datenlieferanten sind z. B. • Office of Foreign Assests Control (OFAC) • FBI • United Nations Security Council • Verordnungen der EU-KOMMISSION • BaFin (Bundesanstalt für Finanzdienstleistungsaufsicht) • Anordnung der Bundesministeriums für Wirtschaft und Technologie • Warnmitteilungen des Bankenverbands • hausinterne Listen

    • → Umsetzung mit Oracle Text

    06.11.2015 Projektbericht zur Nutzung der SolrLucene-Suchengine in einem Zahlungskontrollsystem5

  • Oracle Text

    Altsystem

    SQL> desc zks2.schluesselbegriff;

    Name Type

    ------------------------------ --------------

    SCHLUESSELBEGRIFFID NUMBER(12)

    SCHLUESSELDATEIID NUMBER(12)

    SCHLUESSELBEGRIFF_TEXT VARCHAR2(4000)

    SQL_SCHLUESSELBEGRIFF VARCHAR2(4000)

    AKTIV CHAR(1)

    ERSTELLT_ID NUMBER(12)

    ERSTELLT_ZST DATE

    GEAENDERT_ID NUMBER(12)

    GEAENDERT_ZST DATE

    CREATE INDEXRULE_ZAHLUNG

    ON SCHLUESSELBEGRIFF(SQL_SCHLUESSELBEGRIFF)

    INDEXTYPE IS CTXSYS.CTXRULE;

    06.11.2015 Projektbericht zur Nutzung der SolrLucene-Suchengine in einem Zahlungskontrollsystem6

  • Oracle Text

    Prüfungs-SQL: FOR rec IN (SELECT * FROM SCHLUESSELBEGRIFF s

    WHEREs.AKTIV = 'J'

    AND matches ( s. SQL_SCHLUESSELBEGRIFF, zahlung. TEXTEMBARGO) > 0) LOOP

    INSERT INTO QUARAFAELLE q ( ZAHLUNGSID, DATEITYPID , DATEIID , KENNUNG

    , SCHLUESSELBEGRIFF, QUARAKENNZEICHEN

    , QUELLE_SCHLUESSELBEGRIFF, STATUS, STATUSTEXT)

    VALUES (……………);

    END LOOP;

    Beispiele für SQL_SCHLUESSELBEGRIFF

    • 'GASTELUM' and 'SERRANO' and 'GUADALUPE'

    • 'MIGUEL' and 'JUNIOR' and 'NARANJO' and 'MORENO'

    • 'WIRTSCHAFTSUNION' and 'LUGANSK' or 'LUGANSKIY' and 'EKONOMICHESKIY' and 'SOYUZ'

    TEXTEMBARGO

    wird aus den Zahlungsdaten aufgebaut (Inhaber, Gegenseite, Verwendungszwecke,…)

    Performance: Prüfung von ca. 20‘000 Zahlungen in 60 Sek. ( = 333 pro Sek., bei 18‘000 Schlüsselbegriffen)

    06.11.2015 Projektbericht zur Nutzung der SolrLucene-Suchengine in einem Zahlungskontrollsystem7

  • gewünschte Erweiterungen / Anforderungen

    • Unscharfe Suchen (fuzzy logic)

    • Beispiele: „Sergey“, „Sergei“, „Sergej“ „Osama“, „Usama“

    • Nachvollziehbare Scoringwerte, („warum ist dieser Vorgang auffällig?“)

    • Datenlieferung der Schlüsselbegriffe durch externen Dienstleister. Täglicher automatisierter Import

    • Wesentlich mehr Datenquellen für die Schlüsselbegriffe

    Stand Aug. 2015: 200+ Quellen

    • Wesentlich mehr Schlüsselbegriffe

    Stand Aug. 2015: 150‘000

    • Möglichkeit für den Fachbereich, einfach eigene Schlüsselbegriffe zu ergänzen (mit Freigabesystem)

    Stand Aug. 2015: 2‘000

    • „Google“-artige Recherchemöglichkeit über alle Schlüsselbegriffe für den Fachbereich

    • Tägliche Prüfung der Stammdaten

    Neukunden vs. alle Schlüsselbegriffe

    Bestandskunden vs. heutige Schlüsselbegriffsänderungen

    06.11.2015 Projektbericht zur Nutzung der SolrLucene-Suchengine in einem Zahlungskontrollsystem8

  • Werkzeugauswahl

    Kandidaten

    • Oracle Text

    • Solr / Lucene

    • Elastic / Lucene

    06.11.2015 Projektbericht zur Nutzung der SolrLucene-Suchengine in einem Zahlungskontrollsystem9

  • Oracle Text

    Table- und Index

    CREATE TABLEZKS2.WC_ENTITIES

    ( WC_ENTITIES_ID NUMBER(12,0) NOT NULL ENABLE,

    ENT_ID NUMBER,

    NAME VARCHAR2(4000),

    SCHLUESSELBEGRIFF_CONTEXTVARCHAR2(4000),

    CONSTRAINT XPKWC_ENTITIES PRIMARY KEY (WC_ENTITIES_ID)

    );

    CREATE INDEXZKS2.RULE_SCHLUESSEL_CONTEXT ON ZKS2.WC_ENTITIES

    ( SCHLUESSELBEGRIFF_CONTEXT)

    INDEXTYPE IS CTXSYS.CONTEXT

    PARAMETERS ('STORAGE WCO_BASICSTORAGE LEXER WCO_PREFERENCES

    STOPLIST WCO_STOPLIST TRANSACTIONAL SECTION GROUP

    WCO_SECTION_GROUP WORDLIST WCO_WORDLIST MEMORY 500M')

    PARALLEL 4;

    … komplettes SQL im Vortragsmanuskript

    06.11.2015 Projektbericht zur Nutzung der SolrLucene-Suchengine in einem Zahlungskontrollsystem10

  • SCORE NAME

    86 MOHAMMED OMAR GHULAM NABI

    86 OMAR MOHAMMED

    86 OMAR MOHAMMED MULLAH

    76 MUHAMMAD OMAR ZADRAN MOHAMMAD OMAR JADRAN

    76 JOUMAA MOHAMAD SAID JOMAA MOHAMED SAID

    76 ZADRAN MUHAMMAD OMAR JADRAN MOHAMMAD OMAR

    71 MOHAMMAD IBRAHIM OMARI IBRAHIM HAQQANI

    69 AL AHMARI HAMED MOHAMMED

    67 HOMAYOON MOHAMMAD

    67 OSMAN MOHAMED

    Oracle Text - Query

    SELECT *

    FROM (SELECT/*+ FIRST_ROWS(10) */

    score (1) score ,

    t.name

    FROMwc_entities t

    where contains ( schluesselbegriff_context , 'NDATA(NAME,"OMAR MOHAMMED")',1) > 0

    ORDER BYscore DESC

    ) WHERE ROWNUM

  • Solr / Lucene, Elastic / Lucene

    • Lucene (1999, Doug Cutting), Solr (2004, Yonik Seeley), Elastic ( 2010)

    • Java

    • Top Level Apache Projects (Lucene: 2005, Solr: 2007)

    • Solr, Elastic:

    • Datatypes: Text, Integer, Double, Date, Time, Spatial

    • REST API

    • Structure:

    • Collections [=contain Documents (Document = fields & values; A field can occur multiple times, Documents are immutable (update = delete + insert new version)]

    • Popularity (http://db-engines.com/en/ranking/search+engine)

    06.11.2015 Projektbericht zur Nutzung der SolrLucene-Suchengine in einem Zahlungskontrollsystem12

  • Solr / Lucene, Elastic / Lucene

    • Solr-Sample Request: http://localhost:8983/solr/gsl/browse?q=hamburg

    • Elastic-Sample Request: curl –XGET ´http://localhost:8984/gsl/browse?q=hamburg´

    • Response:

    06.11.2015 Projektbericht zur Nutzung der SolrLucene-Suchengine in einem Zahlungskontrollsystem13

  • Solr / Lucene, Elastic / Lucene

    Features

    • Faceting („group by“)

    • Pivot

    • Language Detection

    • Spell Checking, Stemming

    • Suggester (incremental search)

    • Pagination of Results

    • Query Elevation („sponsored search“, „editorial boosting“)

    • Near time Searching

    • Highlighting

    • Debug

    • Synonyms

    • Stopwords (index time, query time)

    • Unstructured Content (PDF, MS Office, email, instant messages, …)

    • Statistics (avg-query-time, number-of-queries, …)

    • Data Import Handler

    06.11.2015 Projektbericht zur Nutzung der SolrLucene-Suchengine in einem Zahlungskontrollsystem14

  • 06.11.2015 Projektbericht zur Nutzung der SolrLucene-Suchengine in einem Zahlungskontrollsystem15

    Solr / Lucene, Elastic / Lucene: Struktur, Abgrenzung 1/2

    L u c e n e

    L u c e n e

  • Solr / Lucene, Elastic / Lucene: Struktur, Abgrenzung 2/2

    06.11.2015 Projektbericht zur Nutzung der SolrLucene-Suchengine in einem Zahlungskontrollsystem