Transcript: Suchmaschinen

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Dominik

Ja, hallo liebe Hörerinnen und Hörer. Willkommen zum Python-Podcast in der heute 18. Episode.

Dominik

Heute geht es um die Suche. Hier ist der Dominik und neben mir ist der Jochen.

Dominik

Ja, hallihallo.

Dominik

Wir sind wieder auf der Raumschiffbrücke heute.

Dominik

Genau.

Dominik

Erneut. Schön hier.

Jochen

Ja, genau, Volltextsuche, um es genau zu sagen.

Jochen

Ja, ah oh, Volltextsuche, ja.

Jochen

Ja, aber wollen wir das eigentlich, oder ich meine, wir können einfach ganz normal starten.

Jochen

mit News und Dings.

Dominik

Ja, genau. Ich würde auch sagen, wir machen jetzt wie immer

Dominik

unsere kleine Einleitung.

Dominik

Vielen Dank an unsere zahlreichen Hörer.

Dominik

Wir haben tatsächlich mittlerweile einige Blumen und dann die schönen Fragen,

Dominik

die uns immer erreichen. Wir beantworten die immer gerne und versuchen

Dominik

immer, euch so schön

Dominik

wie möglich das zu erklären, was ihr gerne hören möchtet.

Dominik

Also wenn ihr Fragen habt, Lob, Anregungen,

Dominik

Kommentare, hallo at pythonpodcast.de

Dominik

Schickt uns einfach eine Mail

Dominik

oder kommentiert fleißig auf unserer Seite.

Dominik

Ja, News aus der Szene.

Dominik

Heute ist der Erscheinungstag von Python

Dominik

3.8.2.

Dominik

Es ist aber noch nicht da.

Dominik

Wir haben gerade abends, es ist dunkel.

Dominik

Genau.

Dominik

Heute ist Rosenmontag übrigens auch.

Jochen

Ja, und das

Jochen

wird hier wahrscheinlich auch noch eine sehr

Jochen

Jacke-Veranstaltung.

Jochen

Wir sind unbeschadet heimgekommen, ja.

Jochen

Ich war heute einer der wenigen Leute, die

Jochen

irgendwie im Pro saßen und so.

Jochen

Es war sehr angenehm, wir haben ein bisschen was geschafft gekriegt.

Jochen

Ja, und wenn du auf die Straße gehst

Dominik

und aussiehst, wärst du schon verkleidet, ist das auch gar nicht groß aufgefallen.

Dominik

Ja, ja, ja.

Dominik

Horror-Clown.

Dominik

Ich empfehle ihn.

Dominik

Sehr gut.

Dominik

Ja, wir machen heute Volltext-Suche.

Dominik

Und ja, Nuss aus der Szene, ist dir noch was eingefallen?

Dominik

Hatten wir noch was Schönes?

Jochen

Tatsächlich glaube ich eigentlich nicht.

Jochen

War gar nicht so viel los, ne?

Jochen

Eurofice ist noch im Moment drin.

Jochen

Gehst du hin zur Eurofice?

Jochen

Ja, ja, ja.

Jochen

Ach schön, cool.

Jochen

Wir müssen uns nur noch irgendwie mit Kindergarten und so beklären.

Jochen

Die machen ja auch irgendwie Betriebsferien und so,

Jochen

aber eigentlich schon, ja.

Dominik

Ja, sonst musst du alleine. Ich habe mir schon

Dominik

eine Wohnung

Dominik

organisiert.

Dominik

Also falls noch jemand eine WG sucht oder sowas,

Dominik

sagt mir Bescheid.

Dominik

Was gab es noch? Es gab so einen tollen Tweet, hast du gesagt, von

Dominik

Armin Runacher. Das ist der

Dominik

Haupt-Dev, der Entwickler von

Jochen

Flask. Ja, aber das wollte ich eigentlich später erst picken.

Jochen

Ach, das wolltest du picken? Ja.

Jochen

Ach, das ist ein Modul.

Jochen

Ich dachte, wir picken Module, Jochen.

Jochen

Heute nicht.

Jochen

Oh Gott, jetzt ist alles durcheinander.

Dominik

Ja, okay, dann picken wir keine Module, dann machen wir das am Ende.

Dominik

Ja, aber

Jochen

was wir tun könnten wäre, wir könnten ja heute mal

Jochen

mit dieser Tradition, die wir jetzt schon

Jochen

seit einigen Episoden starten wollten, tatsächlich

Jochen

vielleicht mal anfangen und ein Modul aus der

Jochen

Standardbibliothek uns

Jochen

vornehmen. Ja, gute Idee.

Jochen

Und das nennen wir Parslip.

Jochen

Parslip, ja, genau.

Jochen

Das

Jochen

immer wieder, wenn ich halt irgendwie

Jochen

in Code herumnavigiere

Jochen

und sehe dann irgendwo so Import

Jochen

ja, OS und dann halt

Jochen

OS-Path und so und dann

Jochen

machen Leute da Dinge, dann denke ich mir jetzt,

Jochen

ach, es geht zu viel schöner mit Pathslip.

Jochen

Also vielleicht nochmal kurz, was Pathslip ist.

Dominik

Pathslip ist ein Wrapper

Dominik

oder ist das eine komplett neue Implementierung?

Jochen

Das ist ein Modul aus der Standardbibliothek,

Jochen

ich weiß jetzt gar nicht, ne, das ist kein Wrapper

Jochen

um OS-Path, ne, ne,

Jochen

das ist halt auch so ein bisschen, manchmal

Jochen

ist so ein bisschen unübersichtlich, es gibt einige

Jochen

Module in der Standardbibliothek,

Jochen

die halt so ein bisschen das Gleiche machen

Jochen

unter anderem halt eben

Jochen

US Path und dann

Jochen

Shell Utils, also SH Util

Jochen

macht auch so ein bisschen das gleiche,

Jochen

aber so ein bisschen eine andere

Jochen

Geschmacksrichtung. Pathlip macht jetzt auch

Jochen

nochmal das gleiche, aber auch wieder ein bisschen anders.

Jochen

Ach ja, aber

Jochen

im Grunde denke ich, wenn man jetzt mit

Jochen

Pfaden irgendwie Dinge macht, dann ist Pathlip das,

Jochen

was man eigentlich haben will.

Jochen

Und das ist auch so richtig, ich glaube, das ist auch erst seit

Jochen

Python 3,

Jochen

4 oder so drin.

Jochen

Und auch, aber auch

Jochen

erst seit 3.6 so richtig schön.

Jochen

Oder 3.7 sind auch nochmal

Jochen

interessante Dinge dazugekommen. Glaube ich ist

Jochen

Mounts dazugekommen in 3.7.

Jochen

Also nur

Jochen

in aktuelleren 3.3

Dominik

Versionen. Also man kann halt relativ

Dominik

schick irgendwelche Strings zu

Dominik

Verzeichnisnamen oder Dateinamen parsen

Dominik

und dann da Pfade, Pfadobjekte

Dominik

daraus erstellen und dann

Dominik

einfach mit einem Slash dahinter dann

Dominik

Unterverzeichnisse wechseln oder iterieren

Dominik

über so Pfade und die ganzen schönen

Dominik

Listen anzeigen oder Content anzeigen,

Dominik

gucken, ist es ein Verzeichnis, ist es kein

Dominik

Verzeichnis, ist es eine Datei.

Jochen

Ja genau, das Hauptfeature finde ich, dass man

Jochen

damit halt relativ einfach

Jochen

Pfade so hinschreiben kann, ohne

Jochen

jetzt irgendwie viel

Jochen

Boilerplate-Code

Jochen

außenrum schreiben zu müssen, wenn man jetzt

Jochen

Join und dann die Liste, das ist halt immer so ein bisschen

Jochen

und jetzt kann man halt einfach, man schreibt halt

Jochen

ein Slash und dann macht dieser Operator

Jochen

sozusagen eine

Jochen

Verkettung der Namen, die man da

Dominik

Ja, das wollen wir aus dem Dateisystem eigentlich auch kennen.

Dominik

Genau, und dann sieht das halt

Jochen

im Code fast genauso aus, als würde man

Jochen

es auf die Shell schreiben. Und das ist natürlich schon

Jochen

deutlich kompakter und

Jochen

sieht einfach, ja, man sieht,

Jochen

was passiert.

Jochen

Das ist ein tolles Ding, aber halt auch solche Sachen wie

Jochen

so Convenience-Funktionen für Sachen, die man halt dauernd

Jochen

braucht, also sowas wie

Jochen

ich brauche jetzt ja irgendwie mal

Jochen

den Versionen des Dateinamens

Jochen

ohne Endung, also ohne

Jochen

irgendwie MP4 hinten dran oder

Jochen

MP3. Oder auch mit, das geht auch. Oder mit, oder nur

Jochen

das Suffix oder so. Solche

Jochen

Dinge braucht man ja dauernd.

Jochen

Und dafür gibt es halt dann eben

Jochen

schon eingebaute

Jochen

Attribute, die man einfach

Jochen

so verwenden kann.

Jochen

Das ist halt total nett.

Jochen

Ich muss gestehen, als ich mit Python

Dominik

angefangen habe, gab es das schon. Und deswegen habe ich

Dominik

OS-Parse nur ab und zu mal

Dominik

angesehen und gesagt, ist das hässlich, dann gesehen.

Dominik

Ach ja, okay, das ist jetzt Parselip.

Dominik

Ja, ja, ja.

Jochen

Ich stolper fast täglich über Code,

Jochen

wo halt noch OS-Path verwendet wird

Jochen

und nicht die Path-Slip insofern.

Dominik

Auch ganz oft in Django ist das auch ganz oft drin,

Dominik

in den Settings oder sowas.

Dominik

Ich bin erst einmal irgendwo drüber gestolpert,

Dominik

wo es nicht mir gelang, das zu entfernen.

Dominik

Ich bin mir nicht sicher, ob das an meinen Fähigkeiten lag

Dominik

oder an der Implementierung.

Dominik

Die brach dann einfach durch,

Dominik

weil ich Path-Slip-Objekte genommen habe.

Jochen

Und wenn man das halt irgendwie anders gewohnt ist,

Jochen

dann gibt es unten, wenn man die Dokumentation

Jochen

sich anguckt, nochmal eine Liste von

Jochen

also, wie man das früher

Jochen

mit OS-Path gemacht hat und jetzt, wie man es mit Path-Slip

Jochen

machen kann, Tabelle

Jochen

und da findet man dann meistens schon die Funktion, die man sucht.

Jochen

Stellen wir euch nicht schon los.

Jochen

Ja, genau. Also, genau, damit haben wir

Jochen

das tatsächlich mal gemacht, was wir

Jochen

immer, wo wir noch von geredet haben.

Dominik

Ja, also wir wollen jetzt tatsächlich das einfüllen, schreibt uns, ob es euch gefallen hat.

Dominik

Und wenn ihr irgendwie von unserem Podcast die Struktur

Dominik

irgendwie blöd findet, wann wir was erzählen, dann

Dominik

könnt ihr auch dazu gerne mal Feedback geben, wenn wir es irgendwie

Dominik

neu umsortieren wollen, wenn ihr immer zuerst die Pics

Dominik

haben wollt oder erstmal direkt das Thema, bevor wir

Dominik

irgendwas über News erzählen.

Dominik

Ja, aber trotzdem, dann machen wir Volltextsuche

Dominik

weiter und ich werde dich löchern damit.

Jochen

Oder wollen wir noch ganz kurz

Jochen

ein Meta-Ding

Jochen

kurz, also ich überlege gerade,

Jochen

weil mich hatte diese, da gab es

Jochen

eine Mail,

Jochen

wo

Jochen

dran, ja,

Jochen

wo wir

Jochen

parken wollen, ob wir nicht

Jochen

mehr Dinge erklären könnten.

Jochen

Ach so, stimmt. Und ja, ich kann

Jochen

das durchaus verstehen, also es ist halt

Jochen

viele Sachen, die man einfach so

Jochen

vor sich hin redet und nicht drüber

Jochen

nachdenkt, die zu erklären, dann ist das

Jochen

Das ist halt schnell unverständlich.

Jochen

Aber auf der anderen Seite ist es halt, glaube ich, schwierig.

Jochen

Ja, es ist so ein Trade-off.

Jochen

Einige Menschen, die kennen das halt schon alles.

Dominik

Und wenn man dann jeden Schnipsel erzählt,

Dominik

ist es vielleicht uninteressanter.

Dominik

Dann wird es für die uninteressanter.

Jochen

Und die Frage, an wen wendet man sich da eigentlich?

Dominik

Wie Einsteiger wollen wir das Ganze machen?

Dominik

Ja, das ist gar nicht so einfach.

Dominik

Ich glaube, bestimmte Sachen muss man vielleicht selber nachgucken.

Dominik

Und man kann uns immer fragen, wenn man irgendwas nicht versteht.

Dominik

Wir erklären das immer gerne nochmal

Dominik

und nehmen das auch in einer der Folgen.

Dominik

Ich glaube, das ist vielleicht eine gute Idee.

Dominik

Und ja, tatsächlich, wenn uns irgendwas auffällt, versuchen wir es so tief wie möglich zu erklären.

Jochen

Ja, aber das würde mich eben auch nochmal interessieren, wie das andere Leute sehen oder auch wie du das siehst, das weiß ich auch gar nicht.

Jochen

Weil ich würde sagen, das ist ja eigentlich das Tolle an, ich komme drauf, weil letzte, ich höre ja auch noch viele andere Podcasts,

Jochen

ich höre zum Beispiel Philosophische Radio auf WDR 5 oder die Radio Bissen, ich weiß jetzt gar nicht, auf welchem Sender, ich höre es ja nur als Podcast.

Dominik

Ich höre einen tollen Hobby-Podcast, Short-Handed News, falls jemand Eishockey mag.

Jochen

Genau, und die sind der Meinung, dass sie da auch irgendwie Podcasts machen und sagen, das ist kein Podcast, sondern das hat halt irgendwie eine feste Zeitbegrenzung. Und dann am Schluss fangen die auch immer an so, das müssen wir jetzt noch schnell senden oder jetzt sind wir ja schon fast am Ende mit der Zeit oder so, wo man sich denkt, ja, warum eigentlich? Ihr könnt ja auch einfach weitererzählen.

Jochen

Also da ist halt ein großer Unterschied und dann ist auch ein Unterschied, dass die machen das nämlich so, die versuchen das immer irgendwie, ja sozusagen möglichst einfach zu erklären und sie versuchen auch immer die Zuhörer mit einzubeziehen, was sich auch manchmal nicht so richtig super gelungen findet.

Jochen

Wir können den nächsten irgendwie

Dominik

veröffentlichen auf

Dominik

der Seite, wann wir die nächste Podcast-Folge aufnehmen

Dominik

und dann sind Anrufer zugelassen.

Dominik

Genau, das

Dominik

macht natürlich... Live-Schaltung, ja.

Jochen

Ich verstehe natürlich, dass es bei der Live-Sendung

Jochen

den Reiz enorm erhöht, ja, oder wenn man halt

Jochen

irgendwie auf Twitter nebenher

Jochen

drüber lästern kann, was die gerade wieder von uns erzählen,

Jochen

das erhöht

Jochen

den Spaßfaktor deutlich, aber

Jochen

ich weiß nicht, ich glaube, das ist

Jochen

was anderes, als das ist dann halt eher so Radio

Jochen

oder Fernsehen oder eben nicht Podcast,

Jochen

weil für mich Podcast ist eher so, das, was ich daran mag,

Jochen

ist halt etwas, was man eben in diesen Massenmedien-Kontexten

Jochen

halt nicht kriegt.

Jochen

Nämlich zum Beispiel, was mich eben bei so einem Thema

Jochen

wie jetzt Philosophie oder so eigentlich interessieren würde,

Jochen

wäre genau das, was wir versuchen,

Jochen

jetzt im Bereich Python zu machen.

Jochen

Nämlich Leute, die sich sowieso damit beschäftigen,

Jochen

die sich einfach mal so ein bisschen drüber unterhalten,

Jochen

was sie da so tun.

Jochen

Und das gibt es halt für sowas wie Philosophie nicht.

Jochen

Sondern da hast du halt immer einen Moderator

Jochen

und dann halt vielleicht einen Studierest oder so.

Dominik

Es gibt ja so einen philosophischen Zirkel in der Stadt.

Dominik

Ja, vielleicht müssen wir

Jochen

da hingehen, keine Ahnung.

Jochen

Und dann wird das

Jochen

irgendwie aufbereitet und dann ist da irgendwie

Jochen

so ein Konzept hin und dann will man bestimmte Punkte abarbeiten.

Jochen

Aber ich finde das halt eigentlich

Jochen

überhaupt nicht interessant. Und gerade dann immer, wenn

Jochen

irgendwie so Zuhörergeschichten da mit reinkommen,

Jochen

denke ich mir immer so, jetzt war es gerade spannend,

Jochen

aber jetzt können sie da halt nicht weitermachen, weil entweder ist die Zeit vorbei

Jochen

oder irgendwie

Jochen

müssen sie nochmal auf ein anderes

Jochen

Ding eingehen.

Jochen

sie geben sich halt auch mal sehr viel

Jochen

Mühe, das dann irgendwie so zu verpacken,

Jochen

dass es halt möglichst viele Leute erreichen

Jochen

kann, was ja auch nichts Schlechtes sein muss, aber

Jochen

ich meine, im Grunde, wenn man in einem

Jochen

Massenmedium ist, dann ist das natürlich

Jochen

das Ziel, irgendwie

Jochen

möglichst viele Leute zu erreichen, sonst müsste ich

Jochen

da nicht das irgendwie über

Jochen

Radiowellen irgendwie nach draußen senden,

Jochen

aber ist das eigentlich

Jochen

immer das, was man haben will? Da bin ich mir nämlich gar

Jochen

nicht so sicher, weil... Also wir haben jetzt einen kleinen Exkurs,

Jochen

Jochen redet mit mir über Podcast.

Jochen

Sorry, ist ja gerade nur so, weil ich meine, man kann ja auch auf andere Dinge optimieren.

Jochen

Mal so zum Beispiel, wie nützlich ist das für die Leute, die das zuhören?

Jochen

Es können ja weniger Leute hören, aber für die kann das ja nützlicher sein.

Jochen

Aber das geht jetzt eben bei einer Radiosendung nicht.

Jochen

Wenn ich jetzt eine Radiosendung mache und sende das halt irgendwie über einen Sendemast übers Land,

Jochen

dann, und das ist für 100 Leute sehr, sehr relevant und für alle anderen, die das halt trotzdem abkriegen, super langweilig.

Dominik

Ja, also wir machen ja Podcasts und ich hoffe, dass alle unsere Hörer auch tatsächlich wegen Python und hier sind

Dominik

und vielleicht auch, weil sie Lust drauf haben oder warum auch immer.

Dominik

Also keine Ahnung, kann auch sein, dass ihr unsere Stimme so schön findet.

Dominik

Aber zum Einschlafen.

Dominik

Ja, das ist eigentlich gar nicht so schlechte Idee.

Dominik

Nur nicht beim Autofahren und Einschlafen kombiniert.

Dominik

Aber naja.

Jochen

Aber ja, also ich meine, das ist halt etwas, oder überhaupt bei Internetgeschichten finde ich das immer super, dass man das ja eigentlich tun kann mal.

Jochen

Man kann ja jetzt einfach sagen, okay, ist mir egal, ist nicht für jeden relevant, sondern für nur ein paar Leute.

Dominik

Ja, aber ich glaube, weil wir eigentlich mit der Frage eingestiegen sind, wie viel wir tief erklären.

Dominik

Also erklärt uns doch mal gerne mit, wie viel ihr denn erklärt haben wollt, ob ich das zu viel Erklärung ist, zu wenig Erklärung ist und ja, ich glaube, wenn ihr Begriffsfragen habt, wissen wollt, was CSS ist, Cascading Style Sheets im Übrigen, da war eine Frage, dann erklären wir euch das gerne nochmal oder ihr schaut das dann kurz nach, also wie man dann das Internet betrachtbar macht.

Dominik

Ja, Jochen, aber jetzt hast du so viel über Meta geredet, dass unsere Absprungquote wahrscheinlich wieder in Höhen geschnallt ist. Wir fangen jetzt an mit Volltextsuche.

Dominik

Ja, Volltextsuche, voll gut.

Dominik

Was ist das überhaupt, Volltextsuche?

Dominik

Also wir wollen ja ganz Basis anfangen und erklären.

Dominik

Was macht eine Volltextsuche?

Dominik

Warum heißt es Volltext und was ist daran Suche?

Dominik

Also habe ich einen Text und ich gebe

Dominik

eine Suchmaske einen Begriff ein und der

Dominik

spuckt mir aus dem gesamten

Dominik

Text alle Treffer aus oder was ist das?

Dominik

Ja, nee, also...

Dominik

Nein, okay.

Jochen

Also ich meine, das ist auch ein Suchproblem,

Jochen

wenn man versucht, in einem Text irgendwas zu finden.

Jochen

Aber...

Dominik

Volltextsucher will das über viele Texte finden.

Jochen

Ja, also der entscheidende

Jochen

Unterschied ist eigentlich, dass man halt Dokumente hat

Jochen

bei einer Volltextsuchmaschine.

Dominik

Indizierbare Dokumente, also deren Inhalt du kennst

Dominik

und dann möchtest du durch eine Masse von Dokumenten

Dominik

bestimmte Stichworte

Dominik

suchen.

Dominik

Ja, also man hat

Dominik

eine Anfrage oder

Jochen

eine Query und da möchte man halt die Sachen

Jochen

finden, die da relevant

Dominik

sind. Das Paper, das du benutzt, damit du

Dominik

deine Hausarbeit nicht zweimal schreiben musst

Dominik

oder einfach die nehmen kannst, die du findest.

Dominik

Ja, ich habe auch

Jochen

überlegt, wie man das am besten, ich weiß

Jochen

nicht, ob die Analogie oder wie weit die trägt, aber

Jochen

wie man sich das vorstellen kann, ist halt

Jochen

wie bei einem Index in einem Buch.

Jochen

Denke ich.

Jochen

Ein Glossar.

Jochen

Nicht Glossar, erklärt ja die Begriffe, aber

Jochen

ein Index tatsächlich, gibt es oft in Büchern.

Dominik

Ja, okay, da geht es dann noch zu welchem Hit,

Dominik

welche Seile.

Jochen

Einfach so eine Liste der Wörter und dann auf welchen Seiten

Jochen

die Wörter vorkommen, also das ist immer das Wort.

Dominik

Ich habe das sogar einmal in Kombination gesehen, glaube ich,

Dominik

ein Glossar kombiniert mit der Erklärung und dann

Dominik

die Hinweise, wo es auftaucht. Sehr schöne Sache.

Dominik

Kann man wahrscheinlich auch machen, aber

Jochen

genau, dann hast du halt eine kommaseparierte Liste

Jochen

der Seiten, auf denen das vorkommt.

Jochen

Wenn das jetzt auf den

Jochen

Volltext-Suche-Dings

Jochen

Anwendungsfall übertragen wäre, wäre das halt so, dass

Jochen

die Seiten in dem Buch wären halt die Dokumente,

Jochen

die indiziert werden und der Index

Jochen

in dem Buch ist tatsächlich dann halt so

Jochen

wie ein Volltext-Suchindex,

Jochen

der man auch, ist sehr ähnlich zu dem,

Jochen

was man dann tatsächlich auch verwendet.

Dominik

Und was hat das jetzt mit Python zu tun, Jochen?

Jochen

Ja, also, oh, das ist eine gute Frage.

Jochen

Jetzt habe ich ihn erwischt.

Jochen

Doch, hat es aber.

Jochen

Weil man oft ja auch Suchmaschinen irgendwie verwendet von Python aus

Jochen

oder halt ab und zu auch mal Suchmaschinen in Python implementiert.

Jochen

Meiner Ansicht nach implementiert man viel zu wenig Suchmaschinen,

Jochen

es sind viel zu wenig Volltext-Suchmaschinen in Python implementiert.

Jochen

Schniff, aber so ist es halt.

Jochen

Aber zumindest, dass man die irgendwie ansprechen muss

Jochen

und dann irgendwas mit den Ergebnissen macht,

Jochen

das hat man ja relativ oft. Welche, was sind denn

Dominik

Suchmaschinen? Musst du erstmal Beispiele geben von Volltextus-Maschinen,

Dominik

die vielleicht man kennt oder auch nicht, oder?

Dominik

Also, da gibt's

Jochen

halt unterschiedliche, ja, es gibt natürlich

Jochen

die große, das große Google,

Jochen

die allwissende Müllhalde, die wir alle

Jochen

kennen, vielleicht

Jochen

mit den entsprechenden Vorgängern, so weiß ich

Jochen

nicht, Excite, Alta Vista, Hotbot.

Jochen

Ach, Alta Vista, das waren noch Zeiten.

Jochen

Ja.

Jochen

Und

Jochen

das sind halt schon relativ fortgeschrittene

Jochen

Dinger, also gerade Google ist halt, oder

Jochen

auch die anderen modernen, die es halt gibt, Bing oder

Jochen

was gibt es da noch?

Jochen

Gibt es eigentlich?

Dominik

Du hast ein Microsoft-Foto erwähnt, erneut.

Dominik

Die haben aber

Dominik

immer noch keinen Contract leider bekommen.

Dominik

Oder

Jochen

A9 von Amazon,

Jochen

wo auch einer

Jochen

der Experten,

Jochen

Udi Member,

Jochen

hat da lange...

Jochen

Also ja, also die Dinger sind halt

Jochen

relativ fortgeschritten und haben halt,

Jochen

sind halt relativ einfach gestartet.

Jochen

Es gibt das Ganze jetzt auch als Open-Source-Software, die man verwenden kann. Oder es gibt kommerzielle Software, die das macht. Wobei ich denke, dass heutzutage wahrscheinlich die allermeisten irgendwas Open-Source-mäßiges verwenden werden, wenn sie das denn jetzt selber haben wollen für ihre Webseite zum Beispiel.

Jochen

Also das ist, denke ich, ein ganz häufiger Anwendungsfall, dass du halt eine Webseite hast und möchtest halt eine Suchfunktionalität anbieten. Und ja, dann muss das halt irgendwie irgendwo passieren.

Jochen

Und das, was da sozusagen der Platzhirsch ist, ist eine Java-Bibliothek namens Lucene.

Jochen

Das ist von Doug Cutting geschrieben worden.

Jochen

Der hat damit angefangen 1997 oder so.

Jochen

Der hat irgendwie mal gearbeitet bei Excite, meine ich.

Jochen

Und hat dann irgendwann, da habe ich irgendwo mal einen Talk gehört, hat er so, ja, das war so 97, da hat er so das Gefühl, die Dotcom-Bubble, die platzt jetzt demnächst.

Jochen

Hat noch ein bisschen gedauert, aber war gar nicht so schlecht. Und man hat sich dann sozusagen einen Teil der Woche, ich weiß nicht, ein oder zwei Tage Homeoffice setzen lassen und dann an eben der neuen Suchmaschine gebastelt.

Jochen

Und als dann Exide tatsächlich irgendwie so ein bisschen die Ohren angelegt hat, hat er das halt dann Open-Source, eine Open-Source-Geschichte überführt, auch da ohne groß drüber nachzudenken, was man da jetzt macht.

Jochen

Er hatte, glaube ich, die erste Version sogar irgendwie unter der GPL, weil er dachte, naja gut, wenn man Open-Source macht, macht man halt GPL veröffentlicht. Das war aber dann nicht so cool. Leute haben sich beschwert, dass sie das dann nicht so richtig verwenden können und so.

Jochen

Und darauf ist auch, dass die Apache Software Foundation

Jochen

hat gerade angefangen, irgendwie dann so unter ihrem Schirm

Jochen

Projekte aufzunehmen und denen so ein bisschen Struktur zu geben.

Jochen

Und weil man das ja noch nie gemacht hat,

Jochen

weiß man ja nicht genau, was man da alles machen muss.

Jochen

Mailing-Listen und wie organisiert man diese ganze Entwicklungsgeschichte überhaupt.

Jochen

Und er ist dann irgendwie mit dem Lucene-Projekt

Jochen

dann da unter diesen Apache-Schirm der Apache Software Foundation gekommen,

Jochen

hat dann auch die Apache-License übernommen

Jochen

und er meinte, seitdem hat sich nie wieder

Jochen

jemand über die Lizenz beschwert und es funktioniert.

Jochen

Also es ist halt eine sehr liberale Lizenz, so

Jochen

PSD-artig, MIT-artig.

Dominik

Lizenz müssen wir auch nochmal neu entdecken.

Dominik

Aber im Grunde heißt,

Jochen

kann man mehr oder weniger machen, was man

Jochen

will und

Jochen

ja, halt auch im kommerziellen

Jochen

Kontext verwenden oder in

Jochen

Software, die man halt irgendwo hinschippt. Das ging jetzt mit

Jochen

der GPL zum Beispiel eher nicht.

Jochen

Ja.

Jochen

Und dann ist

Jochen

diese Bibliothek relativ erfolgreich.

Jochen

geworden und heute ist das halt

Jochen

das Ding, was alle verwenden und

Jochen

eigentlich das Ding, was unter

Jochen

allen bekannten

Jochen

Suchmaschinen,

Jochen

Open-Source-Suchmaschinen-Implementationen irgendwie darunter

Jochen

liegt. Also die beiden größten Dinge,

Jochen

die man heute so kennt, sind halt

Jochen

Solar und Elasticsearch.

Jochen

Ja, und das Spice-Lucin.

Jochen

Man kann das auch

Jochen

aus Python heraus direkt verwenden,

Jochen

mit PyLucin,

Jochen

aber das ist so ein bisschen eklig. Also das ist

Jochen

halt, das macht

Jochen

halt direkt eine Anbindung an

Jochen

Java und

Jochen

Hört sich komisch an. Ja, also

Jochen

geht schon, aber will man vielleicht auch nicht verwenden.

Jochen

Eher ist wahrscheinlich die

Jochen

richtige Art, wo man das dann

Jochen

trennt, irgendwie eine API oder so.

Jochen

Und das machen Solr und Elasticsearch auch so.

Jochen

Also meistens hast du dann

Jochen

Elasticsearch oder Solr, vielleicht

Jochen

Solr Cloud auf irgendeinem Cluster laufen oder weiß nicht

Jochen

und auf deinem Hadoop-Cluster

Jochen

am besten. Und dann connectest du

Jochen

dahin und stellst

Jochen

da deine Suchquerys

Jochen

an Fragen.

Jochen

Ja, genau, so sieht es halt

Jochen

momentan aus, aber

Jochen

das ist natürlich, also okay,

Jochen

es ist das Verbreitetste, das, was irgendwie alle, die meisten

Jochen

Leute verwenden, ist aber nicht das Einzige. Es gibt noch

Jochen

eine Menge andere Dinge und andere

Jochen

Software, die das halt auch kann.

Jochen

Andere

Jochen

Open-Source-Soupmaschinen

Jochen

wären sowas wie, es gibt noch

Jochen

Xapien, obwohl ich weiß nicht, ob es das tatsächlich noch gibt,

Jochen

Das war irgendwas in C++, glaube ich, nicht mehr relevant.

Jochen

Sphinx gibt es noch.

Jochen

Das ist insofern ganz halbwegs relevant noch,

Jochen

weil es halt eine enge Verbindung zu MySQL hat.

Jochen

Und da gibt es halt irgendwie eine...

Jochen

Heißt das MariaDB?

Jochen

Oder genau, wenn man heute MySQL sagt,

Jochen

dann meint man eigentlich immer MariaDB.

Jochen

Und da gibt es halt irgendwie relativ ausgefuchste Mechanismen,

Jochen

wie man das halt ineinander integriert.

Jochen

Und halt, wenn man die eingebaute Volltextsuche von MySQL

Jochen

nicht mehr verwenden will oder wenn man da rausgewachsen ist,

Jochen

dann kann man da irgendwie relativ leicht zwingend dran bauen.

Jochen

Ja, ähm...

Dominik

Ja, da musst du gleich noch ein bisschen mehr zu sagen.

Dominik

Also diese Architektur, also wenn du sagst, man hackt das jetzt einfach

Dominik

so mal eben kurz in einen Hadoop,

Dominik

ich sag mal, auf was bitte ist denn das,

Dominik

und was das dann überhaupt macht, wo die

Dominik

Dokumente liegen und wie das dann überhaupt

Dominik

so richtig funktioniert und so, das...

Jochen

Ja, äh, genau,

Jochen

genau, genau.

Jochen

Ich überlege gerade, ach genau, es gibt eine

Jochen

in Python implementierte

Jochen

Volltext-Suchmaschine

Jochen

namens Woosh.

Jochen

Woosh.

Jochen

Die sich auch

Jochen

sehr stark an Lucene irgendwie so von der

Jochen

Struktur intern anlehnt, aber

Jochen

ist halt in Python geschrieben, ist nicht so schnell,

Jochen

alles ein bisschen langsam, aber

Jochen

kann man auch mal benutzen, ist irgendwie ganz nett

Jochen

und dann, also lass mal überlegen, gibt es noch

Jochen

irgendwas, was Volltext-Suche kann, was ich jetzt,

Jochen

also was das irgendwie offiziell

Jochen

hauptsächlich

Jochen

tut und was ich noch nicht genannt habe.

Jochen

Ja, also wenn jemandem noch was

Jochen

einfällt.

Jochen

Und dann gibt's

Jochen

halt noch Volltext-Such

Jochen

Features in den meisten Datenbanken.

Jochen

Und das ist natürlich auch nett, weil

Jochen

meistens hat man ja

Jochen

eh die Daten, in denen man

Jochen

irgendwas sucht, sowieso schon in der Datenbank

Jochen

liegen. Und eben wenn man

Jochen

sowas wie Elasticsearch-Tooler oder so

Jochen

verwenden, dann muss man halt irgendwie die Daten

Jochen

aus der Datenbank da reinkriegen. Und

Jochen

wenn man jetzt

Jochen

ein Suchergebnis bekommt von denen, dann muss man irgendwie wieder

Jochen

zur Datenbank und dann nochmal wieder andere Informationen

Jochen

nachher ausholen. Das ist so ein bisschen

Jochen

umständlich. Das ist ja eigentlich schön, wenn das direkt

Jochen

in der Datenbank drin wäre. Und ja, die meisten

Jochen

Datenbanken bieten da halt auch

Jochen

Geschichten, wobei

Jochen

das halt unterschiedlich

Jochen

fertig oder unterschiedlich

Jochen

komplett

Jochen

Feature-Set ist.

Jochen

Postgres hat relativ viel

Jochen

Volltext-Fähigkeiten.

Jochen

SQLite hat relativ

Jochen

viel. Das ist auch sehr, sehr interessant.

Jochen

MySQL hat nicht so

Jochen

ganz so viele.

Jochen

Aber so ein bisschen was geht auf jeden Fall

Jochen

auch.

Jochen

Ja, und

Jochen

das ist auch,

Jochen

also ehrlich gesagt,

Jochen

was ich präferieren würde momentan,

Jochen

gerade wenn man anfängt, dann lässt man das eher

Jochen

die Daten machen.

Jochen

Dann fängt man nicht

Jochen

damit an, direkt irgendwie ein Elasticsearch

Jochen

daneben zu stellen.

Dominik

Ab wann macht man das? Ab welcher Größe oder welches Suchvolumen geht es da?

Jochen

Das kann man so schwer beantworten.

Jochen

Also, aber...

Dominik

Weil meine Postcards jetzt auf 0,x mehr

Dominik

die Antwort auf meine Frage geben können.

Jochen

Genau, dann ist es...

Dominik

Das heißt, ich bräuchte schon ein Dokumentenarchiv,

Dominik

was ich irgendwo hinlege mit

Dominik

mehreren hunderttausend Dokumenten,

Dominik

durch die ich jetzt durchiterieren

Dominik

müsste bei der Suche,

Dominik

um zu finden, was es da so gibt.

Dominik

Und da muss dann ein

Dominik

Lusin

Dominik

drauf springen, damit es

Dominik

da noch einigermaßen performant

Dominik

die Ergebnisse rausbekommt.

Dominik

Ne, das ist auch, also

Jochen

ich würde eher

Jochen

sowas sagen, es hängt halt von der Maschine auch ab.

Jochen

Also wenn, sobald

Jochen

was halt in Postgres relativ schnell

Jochen

relativ groß wird, sind halt die Indizes.

Jochen

Also super optimal

Jochen

sind die halt nicht. Also

Jochen

da ist schon einiges optimiert, aber

Jochen

die werden halt relativ schnell relativ groß und wenn die

Jochen

zum Beispiel so groß sind, dass sie nicht mehr in den Hauptspeicher passen, dann

Jochen

haben wir ein Problem.

Jochen

Und das geht wahrscheinlich

Jochen

dann mit Leasiden oder beziehungsweise halt

Jochen

Solar Cloud oder Elasticsearch

Jochen

oder so dann besser, aber da ist man schon bei

Jochen

wirklich vielen, vielen Dokumenten wahrscheinlich.

Dominik

Wie viele Hauptspeicher hat man denn dann, die man braucht,

Dominik

für welche Dokumentengröße hast du da so Werte?

Dominik

Ne, weiß ich nicht, aber

Jochen

keine Ahnung, kann sein,

Jochen

also kommt halt auch drauf an, wie groß die Dokumente

Jochen

sind, aber

Jochen

ich meine, heutige Datenbanken haben viele Hauptspeicher

Jochen

Und bis man da irgendwie, also ich weiß nicht, wie oft ich einen Volltext-Index gesehen habe, der größer als ein paar Gigabyte war, das kommt jetzt gar nicht so oft vor, selbst wenn du Millionen Dokumente hast. Also es ist, glaube ich, nicht so oft, dass einem das sofort auf den Fuß fällt, sondern wenn man das Problem bekommt, dann…

Dominik

Das heißt, mit den neuen Maschinen, wenn man

Dominik

dann eine größere Maschine hinstellt, sollte das auch

Dominik

mit dem Indexieren von Postgres dann

Dominik

mit 64 GB über mehrere Millionen Dokumente

Dominik

auch ein Problem sein.

Dominik

Auf jeden Fall.

Jochen

Und ja.

Jochen

Genau, es gibt dann noch einen interessanten,

Jochen

es gibt noch ein Ding, SomboDB oder so

Jochen

ist das, glaube ich.

Jochen

Ich habe es noch nicht verwendet. Da kann man dann auch

Jochen

das direkt in die Datenbank integrieren, sodass man

Jochen

halt nur die Anfrage an die Datenbank

Jochen

stellt und die dann halt

Jochen

weil man ja kann auch Plugins

Jochen

für Postgres und so schreiben, die macht dann halt

Jochen

eine Anfrage auf irgendwie ein Elasticsearch-Cluster

Jochen

oder so,

Jochen

sodass man halt von der Applikationsseite

Jochen

aus gar nicht merkt, dass man

Jochen

inzwischen die Suchfunktionalität halt

Jochen

irgendwie woanders hin ausgelagert hat, was natürlich

Jochen

auch ganz praktisch wäre. Also es

Jochen

gibt ja eine ganze Menge Dinge, die man tun kann, aber

Jochen

ich sag mal, für den Hausgebrauch und für die allermeisten

Jochen

Webseiten da draußen dürfte

Jochen

das, was in den Datenbanken

Jochen

eingebaut ist, schon eher

Jochen

reichen und ich denke auch

Jochen

nicht, dass das wirklich das ist, wo die meisten

Jochen

Probleme kriegen. Die meisten Leute kriegen nicht

Jochen

sofort Probleme mit der Skalierung,

Jochen

sondern eher bei so

Jochen

grundsätzlichen Fragestellungen

Jochen

und das ist auch...

Dominik

Was sind grundsätzliche Fragestellungen?

Dominik

Ja, also zum Beispiel

Jochen

wie macht man das

Jochen

jetzt eigentlich, wenn man eine Suchmaske

Jochen

auf einer Webseite hat?

Jochen

Wie geht das mit der Relevanz?

Jochen

Wie kriege ich das eigentlich raus, ob da

Jochen

gute Ergebnisse kommen?

Jochen

Wie mache ich das? Und da ist

Jochen

auch leider die Antwort,

Jochen

es hängt davon ab und das ist je nach

Jochen

Anwendungsfall sehr unterschiedlich.

Jochen

Okay, jetzt wird es interessant.

Dominik

Also ich möchte suchen, auch ranken,

Dominik

das heißt die Trefferquote

Dominik

erhöhen, die Wahrscheinlichkeit, dass das

Dominik

Dokument dem entspricht, was ich gerade

Jochen

haben möchte. Genau, wenn Leute

Jochen

da irgendwas eingeben, irgendeine Query eingeben,

Jochen

dann möchtest du, dass sie halt normalerweise oder dass sie

Jochen

halt in möglichst vielen Fällen halt irgendwie relevante

Jochen

Ergebnisse haben.

Jochen

Ja, okay. Und wie das funktioniert,

Jochen

Das ist natürlich jetzt sehr spannend.

Jochen

Ja, also

Jochen

wie, ich weiß nicht,

Jochen

also wie so ein Index funktioniert,

Jochen

das halt im Grunde, wenn ich mir vorstelle,

Jochen

das wäre jetzt eine,

Jochen

ich hätte jetzt eben

Jochen

dieses Buch mit dem Index hinten drin und ich würde

Jochen

jetzt wissen wollen, okay,

Jochen

wo kommt denn das Wort,

Jochen

was könnte ich denn für ein Wort nehmen?

Jochen

Keyword.

Jochen

Keyword und Python.

Jochen

Und Python, ja, wo kommt denn das überall vor?

Jochen

und ich hätte gerne alle Seiten, auf denen das vorkommt,

Jochen

dann gehe ich einfach in den Index,

Jochen

suche halt das Wort Keyword,

Jochen

nehme die Seiten, die Nummern,

Jochen

packe das in ein Set

Jochen

und nehme das gleiche Set der Seiten von Python.

Jochen

Und jetzt kann ich da halt zwei Dinge machen.

Jochen

Ich könnte es entweder schneiden,

Jochen

ich könnte sagen, ich hätte gerne alle Seiten,

Jochen

in denen beides vorkommt,

Jochen

also die Schnittmenge der beiden Mengen.

Jochen

oder ich könnte sagen, ich nehme die Vereinigung,

Jochen

also entweder das,

Jochen

wo Python drin vorkommt oder wo Keyword

Jochen

drin vorkommt, die Seiten hätte ich gerne und kriege dann einfach

Jochen

alle. Und das ist ja auch das, was

Jochen

man sozusagen in, ich glaube, Google hat da

Jochen

eine Syntax für, das ist übrigens auch bei Postgres,

Jochen

kann man

Jochen

die Syntax, die Google verwendet,

Jochen

TS2,

Jochen

wie heißt das, 2Query,

Jochen

irgendwas, 2WebQuery, ach, ich weiß nicht mehr, wie die

Jochen

Postgres-Funktion heißt, die übergibt man einfach

Jochen

diesen Query-String, den man bekommen hat und dann

Jochen

macht die daraus eine Anfrage

Jochen

nach der gleichen

Jochen

Logik, sodass man halt auch und oder

Jochen

oder verwenden kann.

Jochen

Ja, und

Jochen

genau, das ist

Jochen

eigentlich im Grunde das, was halt so eine Suchmaschine macht.

Jochen

Das Problem ist jetzt natürlich,

Jochen

die Seiten, wie auch immer man die jetzt

Jochen

bekommen hat, ob man die Mengen

Jochen

vereinigt oder geschnitten hat,

Jochen

man hat jetzt noch keine Reihenfolge

Jochen

der Seiten irgendwie.

Jochen

Und die Frage wäre halt, wie rechnet man

Jochen

die aus? Und das, was halt so

Jochen

von immer gemacht wird.

Dominik

Zählen, absolute Zahl,

Dominik

sortieren.

Jochen

Kann man und könnte man auch machen.

Jochen

Aber das, was halt schon

Jochen

was normalerweise

Jochen

immer so für Scoring

Jochen

Ranking verwendet wird, ist halt

Jochen

TF-IDF. Das hatten wir, glaube ich, auch schon ein paar Mal.

Jochen

Das ist halt einfach

Jochen

die Query wird halt in

Jochen

ein

Jochen

TF-IDF-Vektor verwandelt

Jochen

und sozusagen

Jochen

die

Dominik

Also außer Leute, die davon schon

Dominik

Ahnung haben, hat das jetzt niemand verstanden, deswegen musst

Dominik

du noch mal kurz erklären, was das denn überhaupt ist.

Jochen

TF-IDF ist Term Frequency

Jochen

mal Inverse Document Frequency

Jochen

und das legt sozusagen

Jochen

Gewichte fest für die

Jochen

Tokens,

Jochen

also die Wörter aus deiner Quelle für

Jochen

Keyword und für Python jetzt in unserem Beispielfall.

Jochen

Ja. Und

Jochen

ja, das ist

Jochen

halt, ich weiß nicht genau, ob man genau

Jochen

erklären muss, wie das ausgerechnet wird.

Jochen

Also

Jochen

Termfrequenz wäre halt sozusagen

Jochen

auf dieses

Jochen

Seitenbeispiel übertragen,

Jochen

wie ist die Frequenz von dem Wort

Jochen

Python zum Beispiel auf dieser Seite? Das heißt,

Jochen

ich zähle, wie oft Python

Jochen

auf der Seite vorkommt und teile das durch die

Jochen

Anzahl aller Worte auf der

Jochen

Seite. Dann weiß ich halt, wie viel Prozent der Worte auf dieser

Jochen

Seite sind halt Python. Das ist die Termfrequenz.

Jochen

Und multipliziere das mit der Inverse Document Frequency.

Jochen

Das ist halt sozusagen, in wie vielen Seiten kommt denn dieses Wort überhaupt vor?

Jochen

Ein Maß dafür.

Jochen

Und je weniger das vorkommt, desto höher ist die Inverse Document Frequency.

Jochen

Und desto charakteristischer ist das Wort im Grunde.

Jochen

Für das, was da gerade steht.

Jochen

Ja, genau.

Dominik

Das heißt, du weißt ziemlich genau, wenn das hoch ist auf diesem Abschnitt, geht es tatsächlich jetzt um Preisen und es wird nicht irgendwie nur als Seitenkommentar mal kurz erwähnt oder als...

Jochen

Genau, also Artikel sind halt so ein Beispiel für Sachen, also der, die das, das kommt halt auf jeder Seite vor.

Jochen

Ja, okay, Stopwatch.

Jochen

Daher ist es halt einfach nicht so relevant, weil Adverse Document Frequency davon wäre halt sehr, sehr niedrig, weil, naja, es kommt halt überall vor.

Jochen

Das heißt, jetzt multipliziere ich diese beiden Teile.

Jochen

Also einmal, wie oft kommt das Wort auf der Seite vor?

Jochen

Wie wichtig ist das üblicherweise oder wie charakteristisch ist das?

Jochen

Und das Ergebnis ist halt sozusagen ein Maß dafür,

Jochen

dass also Worte, die wenig vorkommen oder sehr charakteristisch sind,

Jochen

aber sehr oft vorkommen, sind halt viel wichtiger als Worte,

Jochen

die überhaupt nicht charakteristisch sind, weil sie überall vorkommen.

Jochen

Also der Didast ist halt, die kriegen halt sehr niedrige Gewichte

Jochen

und Worte, die halt sehr spezifisch sind,

Jochen

die kriegen halt sehr hohe Gewichte.

Jochen

Und das macht man jetzt auch mit der Query und macht das auch

Jochen

nochmal mit allen Seiten sozusagen

Jochen

und dann multipliziert man das

Jochen

miteinander. Also die

Dominik

Kursindustanz. Das heißt, man muss halt tatsächlich genau

Dominik

diese Dinge bilden oder bauen

Dominik

für jeden einzelnen Text

Dominik

Baustein, den man untersuchen möchte.

Jochen

Ja, man muss da gar nicht so viel

Jochen

machen. Tatsächlich, also das

Jochen

Bauen der Listen, in welchen Dokumenten

Jochen

welches Wort vorkommt, ist halt eigentlich das, was man

Jochen

hauptsächlich tut, wenn man

Jochen

einen Index baut. Diese ganzen

Jochen

Geschichten, wie oft kommt das Wort jetzt wo vor und

Jochen

das speichert man auch in dem Index,

Jochen

aber das ist eigentlich nicht so schlimm.

Jochen

Das geht eigentlich relativ einfach.

Jochen

Am Schluss hat man diese ganzen Informationen, auch die Texte

Jochen

nicht mehr, sondern man kann halt sozusagen

Jochen

aus dem, was man im Index stehen hat, plus

Jochen

der Query halt diese ganzen Sachen ausrechnen.

Jochen

Okay. Du hast irgendwas über den

Jochen

Cousinus-Distanz. Ja, genau. Wenn ich jetzt

Jochen

zwei Vektoren habe, dann ist die Cousinus-Distanz

Jochen

dazwischen einfach nur

Jochen

der Winkel, also der Cousinus des Winkels

Jochen

zwischen den beiden Vektoren. Also jetzt

Dominik

noch mal kurz, also der Vektor ist tatsächlich dann

Dominik

die Informationen darüber, auf

Dominik

welchen Seiten wie viel Information über

Dominik

das gesuchte Wort Python oder Keyword steht.

Dominik

Ja, also

Jochen

die Gewichte sind jetzt sozusagen die Werte

Jochen

in dem Vektor und

Jochen

können halt niedriger oder höher sein.

Jochen

Das wird immer normiert

Jochen

auf, die Vektoren werden immer normiert auf

Jochen

1, auf eine Länge 1,

Jochen

sozusagen.

Jochen

Und der Anteil von einem Wort, das halt

Jochen

wichtig ist, ist halt dann einfach höher als von Worten,

Jochen

die nicht so wichtig sind.

Jochen

Man normiert auch deswegen damit halt längere

Jochen

Vektoren nicht einen Vorteil haben.

Jochen

Wenn du das nicht normieren würdest,

Jochen

dann würden Seiten, auf denen viele

Jochen

Worte stehen oder Dokumente, die halt sehr, sehr lang

Jochen

sind, würden halt viel relevanter bei

Jochen

vielen Sucherabfragen sein, einfach weil die halt

Jochen

auch viel mehr Sachen matchen.

Jochen

Daher normiert man

Jochen

das halt auf eine Einheitslänge, sodass

Jochen

dann, wenn ein Dokument sehr lang ist,

Jochen

kriegen die einzelnen Worte halt weniger

Jochen

Gewicht.

Jochen

Und ja,

Jochen

dann wird das halt vergleichbar.

Jochen

Und

Jochen

Und ja, also im Grunde ist das eben relativ einfach.

Jochen

Also diese TFE-DF-Distanz ist halt nichts weiter als der Cosinus

Jochen

zwischen dem Winkel der beiden Vektoren.

Jochen

Und das klingt jetzt auch irgendwie kompliziert.

Jochen

Tatsächlich ist es so, es ist halt super einfach auszurechnen,

Jochen

weil das ist einfach nur das Skalarprodukt der Vektoren.

Jochen

Und das wiederum ist super einfach auszurechnen.

Jochen

Also dieser Vektorraum, in dem diese Operationen stattfinden,

Jochen

wenn man jetzt sozusagen jedem Wort eine Dimension zuordnet,

Jochen

Texte, also

Jochen

wenn man jetzt ein Dokument-Korpus nimmt, ganz viele Dokumente,

Jochen

dann kann es sein, dass da so ein paar

Jochen

10.000 Wörter drin vorkommen oder

Jochen

vielleicht, wenn man jetzt, also vielleicht auch ein paar 100.000,

Jochen

also, und man

Jochen

hat jetzt sozusagen für jedes Wort eine Dimension,

Jochen

dann

Jochen

klingt das irgendwie alles ganz

Jochen

schrecklich. Man sagt, ein 100.000-dimensionaler Vektorraum

Jochen

ist ja irgendwie schwer vorzustellen und dann

Jochen

daran irgendwie Winkel, uh, was soll denn das

Jochen

sein? Aber eigentlich

Jochen

ist es halt total blöd,

Jochen

einfach, weil das Schöne daran ist,

Jochen

oder das ist der Grund, warum man das macht, ist,

Jochen

ein Skalarprodukt an der Stelle ist halt, wenn das

Jochen

so sparsam ist, also die meisten Worte kommen ja in den meisten

Jochen

Texten gar nicht vor. Das heißt, wenn ich

Jochen

einen Dokumentfaktor habe, dann

Jochen

ist der an den allermeisten Stellen null.

Jochen

Und alle Dinge, die null sind,

Jochen

die muss ich mir beim Skalarprodukt gar nicht angucken.

Jochen

Wenn irgendwas multipliziert wird,

Jochen

wo eine Null drin ist, dann ist es ja sofort auch wieder null.

Jochen

Könnt ihr das nochmal nachrechnen, bitte?

Jochen

Ja, das heißt, die Rechneroperation

Jochen

ist halt, ich gehe durch jedes

Jochen

Ding in der Query

Jochen

ja, also nur durch die, die gesetzt sind, das sind ja

Jochen

meist nur zwei, drei Worte und guckt

Jochen

dann, existiert im Index

Jochen

dafür

Jochen

Seiten, auf denen das vorkommt

Jochen

und das war es, mehr muss ich nicht machen

Jochen

und damit habe ich ja schon sozusagen

Jochen

alle, wo ich überhaupt ein Skalarprodukt ausrechnen kann

Jochen

gefunden

Jochen

und

Jochen

jetzt muss ich nur noch ein paar

Jochen

andere statistische Werte haben, um das halt wirklich

Jochen

ausrechnen zu können und das ist halt

Jochen

eine total einfache

Jochen

Operation, also das ist halt

Dominik

weißt du, welche anderen statistischen

Dominik

Werte du jetzt noch haben möchtest zum

Dominik

eigentlichen Ranken?

Dominik

Naja,

Dominik

tatsächlich müsste man wahrscheinlich noch

Dominik

an jedem,

Jochen

also die Dinger im Index heißt dann

Jochen

Postinglisten, dann müsste man wahrscheinlich noch irgendwie den

Jochen

TF-EDF-Wert tatsächlich, also ich

Jochen

weiß es ehrlich gesagt nicht, Lucine macht

Jochen

das, weiß gar nicht, was Lucine da alles speichert,

Jochen

sie speichert noch ein paar andere Sachen.

Jochen

Ich würde sagen,

Jochen

einen TF-EDF-Wert braucht man vielleicht,

Jochen

also eigentlich, ich glaube,

Jochen

die machen das so, dass sie das auch erst ausrechnen,

Jochen

wenn die Query kommt.

Jochen

Aber was das genau ist, weiß ich jetzt auch nicht mehr.

Jochen

Also man kann das Ganze auch leicht

Jochen

und naiv implementieren

Jochen

in Python. Man kann einfach für diese

Jochen

Posting-Listen, das sind sozusagen die

Jochen

Listen der Seiten, auf denen irgendwas

Jochen

vorkommt oder die IDs der Dokumente,

Jochen

die packt man einfach in ein Set

Jochen

und indizieren

Jochen

bedeutet einfach nur,

Jochen

die Dokumente zu tokenisieren

Jochen

Und dann für jedes Token sozusagen einen Eintrag mit der ID des Dokuments in die Posting-Liste zu tun. Posting-Liste, so heißt es im Allgemeinen, aber in unserem Fall wäre das jetzt, wenn man jetzt sozusagen als Datenstruktur dafür Sets nehmen würde, Sets und dann kannst du halt hinterher, wenn eine Query kommt, irgendwie genau das machen, kannst halt irgendwie Schnittmenge und Vereinigungsmenge bilden, je nachdem, ob du deine Query mit AND oder OR verknüpfen willst.

Jochen

Ja, kriegst damit schon mal was raus und kannst halt auch, wenn du jetzt die TF-IDF-Werte noch mitgespeichert hast, kannst du auch einfach die Cuisinassistenz ausrechnen und hast dann schon im Grunde das implementiert, was eine Suchmaschine so tut. Das geht wahrscheinlich in 30 Zeilen Python oder sowas.

Jochen

Ja, wir lieben keinen.

Jochen

Also das geht relativ einfach, denke ich mal.

Jochen

Und ich habe es mit Sets auch schon mal ausprobiert,

Jochen

das ist auch ziemlich schnell.

Jochen

Das, was an Sets ein bisschen doof ist,

Jochen

deswegen macht man das auch dann tatsächlich,

Jochen

wenn man jetzt eine Suchmaschine implementiert, nicht so,

Jochen

ist, dass die halt sehr, sehr viel Hauptspeicher verbrauchen.

Jochen

Und überhaupt, man muss natürlich alles,

Jochen

wenn man so ein Python-Set hat, muss man es im Hauptspeicher halten,

Jochen

Weil, naja, es ist halt eben keine Datenstruktur, die irgendwie auf der Platte liegen kann. Während jetzt ein Lucid-Index ist ein Ding, das eigentlich auf der Platte liegt. Und das kann halt auch größer als Hauptspeicher werden, das ist gar kein Problem. Und das ist so gebaut, dass das maximal performant ist, wenn Sachen von der Platte auch gelesen werden und so.

Jochen

und das sind schon einige schöne Tricks dabei.

Jochen

Aber tatsächlich, wenn man das jetzt einfach so implementieren möchte,

Jochen

kann man das mit Sets durchaus mal machen.

Jochen

Was dann die großen Suchmaschinen machen

Jochen

und weswegen das Ding auch Postinglist heißt,

Jochen

ist, dass man das eben nicht in einem Set hält,

Jochen

sondern in einer Liste, die sortiert ist,

Jochen

sozusagen, wo eben die Dokument-IDs

Jochen

oder jetzt im Beispiel

Jochen

Seitenzahlen, die werden halt einfach sortiert

Jochen

und dann speichert man nicht die Seitenzahlen

Jochen

selber oder die IDs selber,

Jochen

sondern man speichert nur die Differenz

Jochen

dazwischen, weil die Differenzen

Jochen

zwischen den IDs sind halt viel kleiner.

Jochen

Und dann macht man etwas

Jochen

ganz Fieses, das nennt sich Variable-Wide-Encoding.

Dominik

Aha, schon wieder so ein Zauberwort, ja.

Dominik

Und das

Jochen

bedeutet halt, dass du

Jochen

diese

Jochen

Nummer, also jetzt in C oder so,

Jochen

wenn du da jetzt

Jochen

ein Array hast,

Jochen

dann müssen ja alle Werte

Jochen

in dem Array den gleichen Typ haben.

Jochen

Und

Jochen

das macht man

Jochen

halt nicht so, um Platz zu sparen,

Jochen

sondern man nimmt

Jochen

einfach üblicherweise

Jochen

dann Characters, also Byte-mäßige

Jochen

Dinge. Ich weiß gar nicht, also in C weiß ich jetzt,

Jochen

es geht. Ich habe aber mal sowas

Jochen

letztlich mal selber implementiert.

Jochen

Ja, ja.

Jochen

Fast Suchmaschine

Jochen

geschrieben aus Versehen. Aber

Jochen

ich weiß gar nicht, wie man das in Java oder so macht.

Jochen

Keine Ahnung.

Jochen

Geht bestimmt auch irgendwie und

Jochen

definiert sich die Datenstruktur selber.

Jochen

Also es ist nicht so, dass man sagt, okay, das sind jetzt

Jochen

alles Integer-Werte oder so, sondern man sagt,

Jochen

okay, das ist einfach nur ein Array von Charaktern.

Jochen

Und wie viel

Jochen

Bytes ich sozusagen

Jochen

pro oder wie viel Bit

Jochen

ich pro

Jochen

Eintrag in der Posting-Liste

Jochen

verwende,

Jochen

das verwalte ich

Jochen

selber, weil wenn die

Jochen

Abstände klein sind, dann kann ich viel weniger

Jochen

Bits nehmen, als wenn die Abstände groß sind, dann muss ich halt

Jochen

mehr Bits nehmen und

Jochen

deswegen heißt das Ding auch Variable Byte Encoding,

Jochen

weil ein Eintrag

Jochen

in der Posting-Liste halt unterschiedlich viele Bytes

Jochen

haben kann, je nachdem, wie groß der ist.

Jochen

Weil wieder Abstand ist zwischen

Jochen

der vorherigen und der nächsten ID.

Jochen

Und wenn ich jetzt sortierte Listen habe,

Jochen

dann kann ich die sehr, sehr gut, da gibt es halt diverse

Jochen

Algorithmen für, kann ich sehr gut schneiden

Jochen

zum Beispiel. Solche Operationen wie

Jochen

Schnittmenge davon bilden, das geht halt toll.

Jochen

Geht mit Sets auch, aber Sets

Jochen

können ja noch viel mehr und so.

Jochen

Aber da brauche ich ja eigentlich nur

Jochen

diese Schnittoperation, Vereinigung ist auch

Jochen

total simpel. Und das geht halt

Jochen

super, wenn ich so sortierte Listen habe.

Jochen

Ja, und

Jochen

genau,

Jochen

das ist halt auch, das ist relativ

Jochen

schnell, das ist vor allen Dingen auch deswegen schnell,

Jochen

also die Kompression an der

Jochen

Stelle, die ich dadurch kriege, also ich

Jochen

kriege das auf ein Drittel des ursprünglichen, also wenn ich das einfach nur

Jochen

als Integer speichern würde,

Jochen

dann brauche ich, ja,

Jochen

sagen wir mal, ich brauche einen Speicher 1,

Jochen

und wenn ich das irgendwie variable

Jochen

mit Variable Byte Encoding kodiere,

Jochen

dann brauche ich halt nur noch Speicher 0,3,

Jochen

also das reduziert das halt auf ein Drittel

Jochen

und es ist auch noch viel

Jochen

schneller. Und der Grund, warum es viel schneller ist, ist halt

Jochen

einfach, dass das Bottleneck

Jochen

ist halt irgendwie,

Jochen

dass durch die CPU, also die

Jochen

Speicherbandbreite ist das Problem. Du musst es halt irgendwie,

Jochen

diese Listen von Arrays musst du halt irgendwie

Jochen

durch die CPU kriegen und irgendwie durch den Hauptspeicher

Jochen

und wenn die kleiner sind, dann geht das schneller durch den

Jochen

Hauptspeicher oder durch den Bus,

Jochen

weil, ja, und das

Jochen

in der CPU dann auszupacken und

Jochen

miteinander, das ist alles kein Problem mehr.

Jochen

Aber

Jochen

ja, das halt aus dem Hauptspeicher

Jochen

durch die CPU zu quetschen, das ist halt das Problem.

Jochen

und wenn das kleiner ist, dann geht das halt schneller,

Jochen

weil du hast halt nur so und so viel

Jochen

100 oder so und so viel

Jochen

Gigabyte pro Sekunde, die du da durchkriegst.

Jochen

Und

Jochen

ja,

Jochen

genau, deswegen macht man das so,

Jochen

das macht das Ganze so ein bisschen kompliziert,

Jochen

aber

Jochen

ja,

Jochen

und auch selbst so

Jochen

von dem Volltextindex von

Jochen

Postgres weiß ich, dass er das auch so macht, im Prinzip.

Jochen

Also solche Sachen werden da auch schon gemacht,

Jochen

also kann man sich schon vorstellen, es ist schon relativ

Jochen

ist halt nicht so eine

Jochen

total naive Implementation. Das ist auch ganz schön

Jochen

optimiert schon.

Jochen

Ja.

Dominik

Jetzt haben wir eine schnelle Suchanfrage

Dominik

schon, aber ich habe immer noch nicht genau verstanden,

Dominik

warum

Dominik

die Ergebnisse jetzt besonders toll sein

Dominik

sollen. Es gibt bestimmt noch ganz viele andere.

Dominik

Die FS oder der Standard,

Jochen

das hat man ganz lange gemacht, jetzt heutzutage

Jochen

auch nicht mehr, sondern heutzutage

Jochen

nimmt man eher sowas wie,

Jochen

Also es gibt halt zum Beispiel Track-Konferenzen.

Dominik

Track, das hört sich nach einer Raumschiff-Serie an.

Jochen

Ja, wird eher mit C geschrieben und nicht mit K.

Jochen

Da haben sich Leute halt Gedanken darüber gemacht,

Jochen

wie evaluiert man eigentlich Suchergebnis-Performance

Jochen

von Suchmaschinen.

Jochen

Da gibt es dann diverse Standard-Corpora mit Dokumenten drin,

Jochen

wo man dann halt auch Standard-Querys halt immer drauf abfeuert

Jochen

und guckt halt, wie sind die Ergebnisse und so.

Jochen

Und da hat sich irgendwann, ich weiß gar nicht, wann das, also TF-IDF hat man lange benutzt, aber dann hat man festgestellt, so kleine Multiplikationen, also die Formeln, es sieht immer so ein bisschen ähnlich aus, aber manchmal passt man die so ein bisschen an.

Jochen

Manchmal kommen so konstante Faktoren dazu oder so, die man irgendwo reinbaut und dann werden die Ergebnisse ein bisschen besser.

Jochen

Und das, was momentan, also man hat

Jochen

ganz viele unterschiedliche gegeneinander getestet,

Jochen

das, was in den meisten Fällen

Jochen

gut funktioniert und das, was jetzt auch alle so als

Jochen

Standard, glaube ich, verwenden,

Jochen

nennt sich BM25.

Jochen

BM25? Ja.

Jochen

Oder OKAPI.

Jochen

BM steht für Best Match.

Jochen

Ja.

Jochen

OKAPI. Ja.

Jochen

Ja. Das ist, glaube ich,

Jochen

ein Tier. Ja, genau.

Jochen

Daher kommt das auch.

Jochen

Entschuldigung.

Jochen

das ist nicht

Jochen

großartig anders als TF-EDF

Jochen

sozusagen Standard-Mercedes, so ein paar

Jochen

Dinge sind halt noch dran,

Jochen

eigentlich sind da nur so ein paar magische Konstanten

Jochen

und Faktoren drin

Jochen

und

Jochen

ja, das ist halt so ein bisschen

Jochen

Fummelei und ist auch nicht

Jochen

offensichtlich, warum das jetzt genau dieser Art

Jochen

besser funktioniert als die anderen, deswegen heißt es

Jochen

und genau deswegen ist es auch BM25

Jochen

also man hat halt ganz viele Dinge ausprobiert

Jochen

und das, was dann halt über ganz viele

Jochen

Datasets hinweg

Jochen

und Query-Sets am besten funktioniert hat,

Jochen

ist halt dieses Ding. Nämlich nicht

Jochen

BestMatch 13 oder 47,

Jochen

sondern BestMatch 25 hat sich

Jochen

herausgestellt. Also das funktioniert in den meisten Fällen

Dominik

irgendwie ganz gut. Das ist doch eine tolle Zahl übrigens.

Dominik

Also man konnte

Jochen

das vorher gar nicht sagen, was das jetzt, welches

Jochen

von denen dann wirklich gut funktionieren würde und

Jochen

dieses Ding ist halt das. Und seitdem das

Jochen

in dieser Konferenz

Jochen

halt dann auf das Ergebnis

Jochen

rausgefallen ist. Guckst du eigentlich PK?

Jochen

die Serie. Ja, ist das eine neue Star Trek Serie?

Jochen

Ja, tatsächlich habe ich jetzt auch mit

Jochen

angefangen, weil ich dachte, so gut. Ich habe auch schon

Jochen

zwei Folgen geschafft. Ja, es gibt

Jochen

jetzt fünf, glaube ich. Kann sein.

Jochen

Ich habe keine Ahnung. Ja,

Jochen

jetzt war jetzt ein verregneter Sonntag.

Jochen

Da haben wir, glaube ich, tatsächlich alle

Dominik

geschafft. Cool. Ja, läuft gerade auf Prime.

Dominik

Sehr schön. Ja, Entschuldigung, ich wollte dich nicht von der

Dominik

Trek-Konferenz abhalten. Ja, ja.

Jochen

Also ansonsten bin ich ehrlich gesagt

Jochen

gar nicht so ein Star Trek-Fan. Aber

Jochen

ja, da hat mich der Spektakelfaktor

Jochen

doch irgendwie mitgezogen.

Jochen

Die flogen

Jochen

in Flossbach.

Jochen

Ja, jedenfalls

Jochen

genau,

Jochen

also das ist halt dabei rausgefallen, deswegen

Jochen

implementieren das alle.

Jochen

Das ist auch schon

Jochen

über zehn Jahre her oder so, da dachte ich dann so,

Jochen

da habe ich davon gelesen, BestMatch25,

Jochen

voll gut, bringt auf jeden Fall noch ein bisschen

Jochen

was gegenüber TFDF und so.

Jochen

Dazu kann man das nicht in Lusine einbauen.

Jochen

Und dann habe ich da so ein bisschen reingeguckt und dachte mir so,

Jochen

oh nein, das geht nicht.

Jochen

Ich muss so viele Klassen anfassen,

Jochen

das kann man einfach völlig vergessen.

Jochen

Und war relativ enttäuscht

Jochen

und habe mir damals schon gedacht,

Jochen

Lysin, Dreck.

Jochen

So ein Unsinn.

Jochen

Aber mittlerweile haben das andere Leute,

Jochen

haben das implementiert.

Jochen

Die hatten mehr Lust da drauf.

Jochen

Mehr Ausdauer und jetzt ist es halt drin

Jochen

und es funktioniert und das ist auch das,

Jochen

was man, glaube ich, automatisch irgendwie kriegt als Default.

Jochen

Wie M420.

Dominik

Was war denn damals bei den ersten Suchmaschinen?

Dominik

Also Alta Vista zum Beispiel war ja so

Dominik

mit, wann war das die erste? TFEDF.

Jochen

Ja, oder leichte Abwandlung davon, aber

Jochen

im Wesentlichen das.

Jochen

Das ist auch das, was irgendwie so ein bisschen

Jochen

diese ersten SEO

Jochen

Geschichten getrieben

Jochen

hat.

Jochen

Wo Leute dann so angefangen haben,

Jochen

alle möglichen Worte mit in ihre

Jochen

Seiten zu packen,

Jochen

für die sie gefunden werden wollen.

Jochen

Weil das zielt natürlich genau darauf ab,

Jochen

halt irgendwie den TFEDF,

Jochen

den TF-IDF-Wert hoch zu...

Jochen

Und das funktioniert ja auch. Also wenn du es ganz naiv machst,

Jochen

kannst du damit tatsächlich irgendwie

Jochen

dann für alles Mögliche gut ranken.

Jochen

Das lässt sich halt sehr leicht

Jochen

gamen. Aber

Jochen

ja,

Jochen

funktioniert heute natürlich alles nicht mehr so richtig toll.

Jochen

Und dann wird du gestraft.

Jochen

Ja, ja, ja.

Jochen

Ja, das ist auch noch so ein

Jochen

Thema.

Jochen

Aber

Jochen

genau, also diese... Aber daran sieht man

Jochen

schon, dass es mit der Relevanz irgendwie nicht so einfach ist,

Jochen

dass die ganzen Suchmaschinen haben das

Jochen

auch nicht so richtig

Jochen

hingekriegt. Und die erste, die das halt so ein bisschen

Jochen

was fundamental Besseres gemacht hat an der Stelle,

Jochen

die hat halt alle anderen dann

Jochen

wie sagt man das,

Jochen

aus dem Wasser geblasen.

Jochen

Ja,

Jochen

hinter sich gelassen und ist jetzt halt

Jochen

irgendwie die Größte.

Dominik

Ich musste mir gerade so ein großes Nie-Pferd vorstellen,

Dominik

das einmal in die Badewanne hüpft.

Dominik

Ja, genau.

Jochen

Ja, weil eben

Jochen

so ein einzelner Wert

Jochen

ist halt problematisch.

Jochen

Leute fangen an, dann drauf zu optimieren

Jochen

und dann ist auch die Frage,

Jochen

was für Leute oder was für Fragen

Jochen

stellen die Leute eigentlich und kann man das

Jochen

eigentlich damit abbilden? Ist der Wert,

Jochen

so ein TF-EDF-Kursinus-Distanzwert,

Jochen

ist der für alle Arten von Suchanfragen

Jochen

und Dokumenten immer das Richtige? Und da ist

Jochen

auch die Antwort relativ klar, nein.

Jochen

Ist nicht so. Also, und das

Jochen

ist halt etwas, was Leute, glaube ich, oft

Jochen

nicht so wirklich auf dem Schirm

Jochen

haben, dass

Jochen

ihr Problem oft

Jochen

nicht ist, irgendwie

Jochen

eine etwas bessere

Jochen

TF-IDF-Formel zu finden oder

Jochen

irgendwie was Magisches,

Jochen

was irgendwie anders die Relevanz gut macht,

Jochen

dann plötzlich magisch, sondern dass

Jochen

eigentlich die Zeit besser investiert

Jochen

wäre, sich zu überlegen, okay, was

Jochen

habe ich eigentlich für Dokumente, was habe ich eigentlich für Suchanfragen

Jochen

da drauf und was kann ich tun,

Jochen

um das irgendwie zu verbessern und da gibt es auch

Jochen

viele Dinge, die man machen kann, aber das sind

Jochen

je nachdem, was man für ein Problem hat, sehr unterschiedliche

Jochen

Sachen. Zum Beispiel,

Jochen

aber ich meine,

Jochen

vielleicht kann ich einfach ein paar Beispiele dafür nennen, warum das

Jochen

halt,

Jochen

also TF-IDF, wenn ich jetzt

Jochen

zum Beispiel Location-Informationen dabei

Jochen

habe, hilft mir halt nicht so richtig viel. Also ich suche nach

Jochen

einem Restaurantnamen irgendwie

Jochen

bei Google Maps

Jochen

oder so. Dann hilft

Jochen

es mir nichts, wenn ich jetzt TF-IDF

Jochen

die nächsten Namen

Jochen

irgendwie kriege von allen

Jochen

Restaurants in Deutschland oder weltweit

Jochen

sortiert, dann wird wahrscheinlich irgendwo

Jochen

ein Restaurant in Kuala Lumpur

Jochen

vielleicht irgendwie am ähnlichsten sein oder den besten

Jochen

Score haben, aber das hilft mir ja nichts, weil

Jochen

ich komme da ja gar nicht hin. Das heißt,

Jochen

da muss irgendwie die Information, wo ich bin

Jochen

und wie nah das an mir dran

Jochen

ist, ja auch irgendwie mit rein.

Jochen

Sonst geht das

Jochen

bestimmt nicht so toll.

Jochen

Oder halt, wenn ich

Jochen

jetzt

Jochen

eine E-Commerce

Jochen

Seite habe oder

Jochen

eine Hotelbuchungsgeschichte oder was auch immer, etwas, wo

Jochen

halt hinterher Leute dann was

Jochen

kaufen oder was buchen oder so,

Jochen

dann kriege ich ja eine ganze Menge

Jochen

implizite Informationen darüber, was die Leute

Jochen

relevant gefunden haben zu einer Query.

Jochen

Also wenn jetzt jemand nach irgendwie, keine Ahnung,

Jochen

samtbezogene

Jochen

Sessel Amsterdam

Jochen

gesucht hat oder sowas

Jochen

und dann hinterher irgendein Hotelsversuch hat,

Jochen

dann weiß ich halt,

Jochen

das ist wahrscheinlich relevant gewesen für diese

Jochen

Suchanfrage und diese Information kann

Jochen

ich natürlich auch wieder irgendwie

Jochen

mitverwenden, um das

Jochen

beim nächsten Mal, wenn jemand anders so eine Anfrage

Jochen

stellt, das zu verbessern.

Jochen

Aber auch da hilft mir halt TF-IDF gar nicht.

Jochen

Cookies.

Jochen

Cookies.

Dominik

Cookie hilft mir auch nicht. Stehen die Informationen, kann man

Dominik

die dann nicht in sowas reinschreiben und die dann irgendwie beim nächsten Mal

Dominik

wiederverhelfen? Oder geht es tatsächlich darum, dass die

Dominik

Informationen über diesen einen Menschen für

Dominik

alle anderen Menschen zu manipulieren?

Dominik

Ja, also

Jochen

genau, es geht nicht um die

Jochen

einzelne Geschichte, aber

Jochen

ich erfahre sozusagen

Jochen

über das Verhalten von Leuten

Jochen

etwas darüber, welche Sachen für

Jochen

welche Dokumente,

Jochen

also welches Hotelzimmer, wenn ich jetzt

Jochen

so eine Hotelbuchungsengine habe oder

Jochen

welches Produkt irgendwie, wenn ich

Jochen

einen E-Commerce-Leiter habe, relevant

Jochen

war für eine bestimmte Suchanfrage, weil wenn jemand das

Jochen

sucht und dann kauft, dann war es wahrscheinlich relevant.

Jochen

Es gibt

Jochen

natürlich auch Ausnahmen, es kann natürlich auch sein, dass

Jochen

keine Ahnung,

Jochen

ich nach,

Jochen

weiß ich nicht, Dörrautomatsuche, ja,

Jochen

und dann aber so geflasht bin von

Jochen

dem, was hast du hier,

Jochen

einem Luftbefeuchter,

Jochen

den ich irgendwie

Jochen

sehe im Ergebnis, obwohl er völlig irrelevant

Jochen

ist und dann darauf klicke und ihn sofort kaufe.

Dominik

Direkt neben dem goldenen Schieberrad, vielleicht waren die auch zusammen

Jochen

in einem. Aber so

Jochen

im Durchschnitt ist es wahrscheinlich so,

Jochen

wenn Leute was suchen und dann auf irgendwas drauf

Jochen

klicken, das kaufen, dann war das wahrscheinlich

Jochen

relevant. Und

Jochen

die Informationen sozusagen,

Jochen

wie viele der Leute

Jochen

oder, das werde

Jochen

ich jetzt eine neue Suche, jetzt stellt jemand nochmal

Jochen

die gleiche Query

Jochen

und jetzt kann ich ja an das Suchergebnis mit ranpappen,

Jochen

okay, Leute,

Jochen

die diese Suchanfrage auch gestellt haben,

Jochen

oder so und so viele haben das gekauft, so und so viele

Jochen

haben drauf geklickt. Leute, die das gekauft haben,

Jochen

kauften auch.

Jochen

Ja, ist nicht so ganz das gleiche,

Jochen

aber das kann ich auch zum Ranken

Jochen

benutzen, muss ich ja nicht,

Jochen

kann ich auch, nur mit TF-IDF hat das

Jochen

nichts zu tun. Ich muss mir halt

Jochen

überlegen, wie ich das so kombiniert kriege, dass es da halt

Jochen

irgendwie auch zum Ranken mitverwendet wird und

Jochen

Tatsächlich ist es halt meistens so, dass man irgendwie andere Dinge, eben Location, irgendwie kaufen Leute das überhaupt.

Jochen

Ist das irgendwie interessant?

Jochen

Gehört das irgendwie zu den Dingen, die momentan irgendwie auf meiner Seite sowieso angefragt werden?

Jochen

Oder ist das halt irgendwas uraltes oder so?

Jochen

Diese ganze Information muss ich irgendwie zusammenpacken und das muss irgendwie in die Relevanz mit reinfließen.

Jochen

und

Jochen

ja, das macht das Ganze natürlich so ein bisschen

Jochen

komplizierter, aber wenn man das macht, dann kann man

Jochen

halt auch durchaus deutlich bessere Ergebnisse

Jochen

erzielen, vor allen Dingen auch zum Beispiel gegenüber Google

Jochen

oder so, weil Google kann halt all das

Jochen

im Grunde nicht machen, weil die wissen halt nicht

Jochen

genau, was die Leute da eigentlich suchen

Jochen

es ist halt ein viel breiteres

Jochen

Ding, es ist halt

Jochen

sozusagen, im gesamten Web kann ich irgendwas

Jochen

finden, also Google macht ein

Jochen

viel schwereres Problem, das heißt

Jochen

ich kann, wenn ich das richtig mache, in einem

Jochen

engeren Rahmen halt viel bessere Ergebnisse

Jochen

unter Umständen erzielen, als

Jochen

Google das jemals könnte.

Jochen

Und das kann natürlich sehr interessant sein, unter Umständen.

Jochen

Aber

Jochen

ich muss dann halt solche Sachen mir

Jochen

schon angucken. Es reicht nicht, wenn ich da

Jochen

irgendeine Elasticsearch nehme, das in der

Jochen

Default-Konfiguration laufen lasse und dann hoffe,

Jochen

dass das irgendwie gut wird. So einfach

Jochen

ist es leider nicht.

Jochen

Oder was auch total interessant ist, was

Jochen

Leute oft nicht machen, aber was halt so eine total einfache

Jochen

Geschichte ist, sich anzugucken,

Jochen

was für Queries

Jochen

geben die Leute eigentlich ein

Jochen

und was sind denn die Queries, wo

Jochen

kein Ergebnis kommt.

Jochen

Ich finde das ja sowieso immer total

Jochen

unverständlich, wenn ich jetzt irgendwie auf

Jochen

oft

Jochen

habe ich den Fall, tatsächlich

Jochen

ich suche

Jochen

keine Zeit zu kochen, keine Lust oder so,

Jochen

okay, dann lass uns doch mal irgendwo was

Jochen

zu essen bestellen

Jochen

und abholen oder so, okay,

Jochen

das war ganz gut, gehen wir auf die

Jochen

auf die Webseite, um zu gucken, hat der Laden

Jochen

den jetzt auf oder nicht.

Jochen

Ganz viele Läden kriegen das irgendwie nicht hin,

Jochen

die Öffnungszeiten drauf zu schreiben.

Jochen

Und haben aber

Jochen

vielleicht ein Suchfeld und wenn die Leute da immer Öffnungszeiten

Jochen

reinschreiben und die nicht finden,

Jochen

die Öffnungszeiten sind irgendwo versteckt, irgendwo tiefe

Jochen

Struktur und dann kann man ja auf die Idee kommen, man sucht danach.

Jochen

Und wenn ich jetzt so eine Seite habe und die Leute

Jochen

immer Öffnungszeiten reinschreiben

Jochen

und nie irgendwas finden, dann weiß ich, okay,

Jochen

hier kann ich vielleicht was verbessern.

Jochen

Und das ist etwas,

Jochen

womit relativ leicht man

Jochen

irgendwie wahrscheinlich viele

Jochen

Benutzer

Jochen

besser zufriedenstellen kann

Jochen

und das wird irgendwie überraschend selten

Jochen

werden solche Sachen gemacht und man kann natürlich

Jochen

auch noch dann schummeln und dann sagen,

Dominik

okay, wenn Öffnungszeiten eingegeben werden, zeig

Dominik

immer als erstes die Öffnungszeiten an und nicht die Ergebnisse,

Dominik

die die Suche zurückkommt. Genau.

Jochen

Also das ist halt so ein bisschen wie

Jochen

wenn man sich vorstellt, man hat eine Firma

Jochen

und die hat irgendwie so eine Support

Jochen

oder ein Helpdesk oder irgendwie eine

Jochen

Support-Hotline oder so,

Jochen

dann hat man ja bestimmt auch irgendwie, keine Ahnung,

Jochen

wenn man einen neuen Mitarbeiter da einarbeitet,

Jochen

dann setzt man den da hin und sagt dem hier so,

Jochen

hier ist eine Liste mit den 50 häufigsten Fragen oder Problemen,

Jochen

mit denen die Leute zu dir kommen werden

Jochen

und da sind die Antworten da drauf.

Jochen

Das kann man ja einfach verwenden sozusagen.

Jochen

Man wird ja nie auf die Idee kommen,

Jochen

ja, die Leute rufen jetzt an und dann sieh halt mal zu irgendwie.

Jochen

Dann nimmst du TF-IDF oder dann gehst du an den Aktenschrank hinter dir

Jochen

und guckst mal, was dabei rauskommt.

Jochen

Das wird halt nicht gut funktionieren.

Jochen

Insofern, also die, oft ist es,

Jochen

man hat immer so Power-Law-Verteilung.

Jochen

Eine was? Eine Power-Law?

Jochen

Ja, Power-Law, also

Jochen

Potenzmengen-Verteilung, ich weiß gar nicht, wie das

Jochen

deutsche Wort dafür ist.

Jochen

Dass du, das hat man bei ganz

Jochen

vielen Sachen, dass halt 20%

Jochen

der

Jochen

sozusagen

Jochen

Such-, also 20% der,

Jochen

also bei Suchmaschinen wäre das wahrscheinlich,

Jochen

ich hoffe mal, ich sehe keinen allzu

Jochen

offensichtlichen Unsinn,

Jochen

Aber das ist halt, 20% der Queries

Jochen

machen halt 80% der Suchanfragen aus oder sowas.

Jochen

Kommt natürlich auch drauf an. Es gibt wahrscheinlich auch so Maschinen,

Jochen

die sehen ganz viele Queries nur einmal

Jochen

und dann nie wieder.

Jochen

Manchmal ist der Tail halt länger

Jochen

und manchmal ist der Tail auch dicker.

Jochen

Aber oft ist es so,

Jochen

dass eine kleine Anzahl von Queries

Jochen

macht halt schon einen großen Teil der Anfragen, die überhaupt

Jochen

gestellt werden, aus. Und wenn das halt 100 Stück

Jochen

sind, dann kann man die sich halt alle mal angucken

Jochen

und sich überlegen, okay, was könnte man den

Jochen

Usern, die dauernd diese Anfragen stellen,

Jochen

dann vielleicht mal zeigen, was sie interessieren könnte.

Jochen

Und das

Jochen

hat dann gar nichts mehr mit

Jochen

was macht eigentlich die

Jochen

Volltext, was macht eigentlich diese

Jochen

Software, die Volltextsuche

Jochen

macht, sondern wie gehe ich mit diesem Problem

Jochen

irgendwie um auf der Seite. Und natürlich

Jochen

muss ich dann halt irgendwie eine Art haben, wie ich

Jochen

sicherstelle, dass wenn ich jetzt

Jochen

irgendwelche Änderungen mache, dass es nicht kaputt geht beim

Jochen

nächsten Release und

Jochen

ich muss es testen und all diese

Jochen

ätzenden Softwareentwicklungs-

Jochen

Best Practices und so,

Jochen

die man halt einhalten sollte, wenn man

Jochen

irgendwie Dinge programmiert. Aber

Jochen

wenn man das macht, kriegt man damit auch Ergebnisse, die ganz

Dominik

gut sind. Also du würdest dann vielleicht

Dominik

ein Django bauen oder so und dann

Dominik

einfach an die Suche dann bestimmte

Dominik

Dinge, Bedingungen knüpfen, wenn das und das

Dominik

steht, dann machst du irgendeine Liste von

Dominik

Fragen, denen dann eine Antwort zugeordnet ist und wenn

Dominik

das kommt, dann wird die direkt ausgespuckt und ansonsten wird

Dominik

dann die Suchmaschine bedient oder sowas.

Jochen

Ja, und dann halt nur dann, wenn das

Jochen

nicht. Und dann geht es halt

Jochen

sozusagen in eine Suchanfrage und dann wird halt

Jochen

gerankt nach all den anderen

Jochen

Dingen, die man halt auch so da hat.

Jochen

Vielleicht ist sogar ein Modell, das irgendwas rankt.

Jochen

Aber gut, habe ich jetzt auch noch ein...

Jochen

Aber halt irgendwas, wo man sich

Jochen

relativ sicher sein kann, dass

Jochen

das sinnvoll

Jochen

ist. Und erst wenn das alles

Jochen

nicht klappt, dann fällt es

Jochen

zurück auf sowas wie TF-IDF.

Jochen

Aber mit TF-IDF anzufangen,

Jochen

das ist eigentlich

Jochen

ein...

Jochen

ja.

Jochen

Ja, okay, keine gute Idee.

Dominik

Also du hast gesagt, okay, TFD, das ist das Standard,

Dominik

was zum Beispiel ein Elasticsearch oder

Dominik

ein Zola als Standard machen, weil das

Dominik

ziehen drunter ist, was das irgendwie auch kann, obwohl das

Dominik

dieses BM25

Jochen

macht. BM25 ist eigentlich sozusagen das, was dann

Jochen

wahrscheinlich verwendet wird meistens.

Jochen

Aber die Unterschiede sind nicht so

Jochen

groß. Also natürlich macht das in gewisser Weise einen großen

Jochen

Unterschied. Wenn man jetzt viele Suchanfragen hat

Jochen

und eine Seite, wo viel Umsatz ist und dann

Jochen

die Ergebnisse ein Prozent besser werden,

Jochen

dann ist das ja schon mal super.

Jochen

Nur dadurch, dass man das halt ausgetauscht hat,

Jochen

ist das ja

Jochen

unter Umständen viel Geld, was dann zusätzlich

Jochen

reinkommt und so.

Jochen

Aber die Änderungen

Jochen

an diesen Details, das bringt nicht so

Jochen

wahnsinnig viel, ein bisschen was.

Jochen

Änderungen an, man

Jochen

bezieht jetzt zum Beispiel implizites User

Jochen

Feedback mit ein, wie zum Beispiel Klicks

Jochen

oder halt irgendwie

Jochen

welche Price Range jemand angegeben hat

Jochen

oder solche Dinge, das bringt halt viel, viel

Dominik

mehr. Ja, da kann man ganz, ganz viele

Dominik

tolle Informationen eigentlich sammeln und verwenden.

Dominik

Da kann man eine richtige Wissenschaft draus machen.

Dominik

Ich glaube, da sind auch ziemlich viele Marketeers,

Dominik

die sich mit sowas auseinandersetzen irgendwie.

Dominik

Die dann irgendwie Interesse dann haben,

Dominik

wie man das in besser bastelt.

Dominik

Interessant, ja.

Dominik

Ja, ja.

Jochen

Das ist ja auch so ein Thema,

Jochen

wenn man jetzt selber sozusagen

Jochen

nicht in der Rolle von einer Suchmaschine ist,

Jochen

die Leuten irgendwie Sachen finden möchte,

Jochen

sondern umgekehrt der Rolle des Dokuments,

Jochen

das gefunden werden möchte, sozusagen.

Jochen

Also wenn man eine Webseite hat,

Jochen

die halt über Google zum Beispiel gefunden werden will oder so

Jochen

und dann hat man dieses SEO-Problem.

Jochen

Da gibt es ja auch ganz unterschiedliche

Jochen

Aspekte.

Jochen

Und auch da ist es halt so, dass

Jochen

üblicherweise

Jochen

wird dann halt zu sehr auf die

Jochen

technischen Aspekte

Jochen

fokussiert. Und dann wird halt

Jochen

irgendein Quatsch gemacht, weil der

Jochen

gerade halt irgendwie Mode ist oder hip oder

Jochen

wo das Gerücht geht, das kann man jetzt machen

Jochen

und das ist voll toll. Und dann wird man sofort

Jochen

bei Google super gerankt.

Dominik

Und das funktioniert zwei Monate und dann kommt der nächste Patch

Dominik

und dann ist man down. Und dann werden alle gelöscht.

Dominik

Alle Ergebnisse, die man vorhat, das ist super.

Dominik

Also ich habe gehört, Content ist King.

Dominik

Ja, also Google versucht, also zumindest das Team versucht,

Dominik

immer auf den besten Content zu optimieren.

Dominik

Schmeißen alle Sachen raus, die jetzt so Leute ausdenken.

Dominik

Das heißt, langfristige Strategie wäre tatsächlich,

Dominik

qualitativen Content aufzustellen, der dann auch gut suchbar ist,

Dominik

der mit solchen TF-IDF-Sachen vielleicht dann auch irgendwie klarkommt,

Dominik

aber der dann durch die, also vielleicht haben die einen Qualitäts-Ranker,

Dominik

der sich irgendwie durch irgendwelche Daten ergibt und den sie dann da mitbauen.

Dominik

Ja, aber was sie halt machen.

Dominik

Also Internetsuche ist ja sowieso nochmal was anderes als Volltextsuche, weil man ja da noch andere Dinge mit einbezieht, also die Linkstruktur. Früher war es ja vielleicht immer so, dass man ganz viele Backlinks haben wollte oder sowas, dass man ganz viel gelenkt wurde, weil man auf irgendwelchen Seiten stand und wenn man dann irgendwie dieser zentralste Knoten in diesem Netz war, war man irgendwie der Relevanteste oder so. Und das ist jetzt vielleicht auch noch ein bisschen anders.

Jochen

Ja, aber das zeigt ja genau, dass halt die reine TF-IDF-Geschichte ist halt nicht unbedingt, das führt halt nicht zu total super Ergebnissen, sondern Google waren halt die Ersten, die mehr Informationen reingenommen haben und ich würde sagen, natürlich, das ist absolut ganz stinknormal, Volltextsuche eigentlich alles, aber Google waren halt die Ersten, die jetzt nicht nur TF-IDF oder irgendwas, eine Variation davon verwendet haben.

Jochen

Google hat den PageRank eingeführt.

Jochen

Sondern sie haben einen PageRank, genau.

Dominik

Was ist denn der PageRank? Das hat gar nichts mit Seiten zu tun.

Jochen

Ja, genau, genau. Deshalb könnte man

Jochen

denken, dass es das mit

Jochen

dem, so wurde es wahrscheinlich auch oft

Jochen

interpretiert, mit dem Rank der Pages

Jochen

zu tun hat, die man halt so hat.

Jochen

Dann gab es auch so irgendwie Browser-Plugins, die einem

Jochen

den eigenen Page-Rank auf der Seite angezeigt haben

Jochen

und so. Aber nein, das

Jochen

Wort kommt tatsächlich von Larry Page,

Jochen

also einem der beiden Gründer von Google,

Jochen

der das halt in seiner Doktorarbeit

Jochen

irgendwie einen neuen

Jochen

Algorithmus irgendwie vorgestellt hat für

Jochen

das Ding

Jochen

auszurechnen in

Jochen

großen Matrizen halt Eigenwerte

Jochen

auszurechnen. Also ich glaube, das ist irgendwie Power Iteration

Jochen

oder so.

Dominik

Du hast gerade noch zwei Sachen gesagt. Einmal dieses Power-Dings,

Dominik

das habe ich jetzt schon wieder vergessen, wie es hieß,

Dominik

und gerade Eigenwerte berechnen aus

Dominik

Matrizen mit PageRank. Vielleicht erzählen

Dominik

wir das nochmal als einzelne kleine

Dominik

Subkapitel.

Jochen

Ich weiß gar nicht, ob es so relevant ist.

Jochen

Ich glaube, man kann das auch, wenn man das in Detail

Jochen

irgendwie, dann wird das

Jochen

relativ trocken und langweilig. Also ich meine, im Grunde

Jochen

ist, was es tut, ist

Jochen

relativ einfach erklärt.

Jochen

Es hat was zu tun mit, also man kann

Jochen

den Link grafen,

Jochen

das Web, also das Web ist im Grunde

Jochen

ein Graph. Eine verknüpfte

Jochen

Knotenpunkte, die durch Linien

Dominik

wieder verknüpft sind, das sind die Linien,

Dominik

die Links, die aufeinander steigen.

Jochen

Die Definitionen sind länger aus Knoten und Kanten und

Jochen

es gibt Gerichtete, wo das Web

Jochen

ist ein gerichteter Graph. Also ich kann halt

Jochen

auf eine Seite linken und die linken nicht auf mich zurück.

Jochen

ja, es gibt

Jochen

jetzt, das Ding hat bestimmte

Jochen

Eigenschaften, die es halt besonders machen, also

Jochen

zum Beispiel der Linkgraf des Web ist halt super spars,

Jochen

das ist halt die meisten

Jochen

Seiten haben nur Verbindungen zu ganz

Jochen

wenigen anderen, ja, aber

Jochen

es gibt ja auch Graphen, wo alle miteinander irgendwie

Jochen

verbunden sind, das ist beim Web nicht so, die

Jochen

zu den allermeisten Seiten habe ich eben keine Links

Jochen

und ich kann

Jochen

den als Matrix darstellen, indem ich sage, okay, alle

Jochen

Webseiten oder Knoten

Jochen

sind halt irgendwie die Zeilen und Spalten

Jochen

der großen Matrix und

Jochen

ja, wenn ich einen Link

Jochen

habe, dann trage ich da jetzt zum Beispiel eine 1

Jochen

ein in der entsprechenden

Jochen

Zeile und Spalte. Also wenn ich halt

Dominik

von X nach Y... Also in der Zeit kommt deine 1, wenn ich

Dominik

von meiner Seite auf deine Seite link höre,

Dominik

dann steht da 1. Genau.

Jochen

Ja, und das kann ich für das gesamte Web

Jochen

machen und das in eine Matrix packen.

Jochen

Was natürlich ein bisschen schwierig ist.

Jochen

Auch da kann ich halt nutzen, dass das Ding spars

Jochen

ist und dass die allermeisten Werte 0 sind. Und die, die 0

Jochen

sind, die schreibe ich halt einfach nur irgendwo in Höhe.

Jochen

Und dann kann ich mir die ganz

Jochen

sparen, die irgendwo, muss ich die nicht speichern.

Jochen

Das heißt, ich muss ja tatsächlich sozusagen nur da, wo

Jochen

Links sind, irgendwas speichern.

Jochen

Und ja, dann kann ich zum Beispiel im PageRank ausrechnen,

Jochen

ist einfach nur sozusagen ein Maß für die Wahrscheinlichkeit,

Jochen

wenn ich einen Random Walk über diesen Graphen mache,

Jochen

auf dem Ding vorbeizukommen.

Dominik

Also wenn ich zufällig irgendwo durchs Internet zirpe,

Dominik

mit irgendeiner zufälligen URL, mit der ich angefangen habe,

Dominik

komme ich dann dahin, wo ich hin will?

Dominik

Ja.

Dominik

Oder gibt es einen Startpunkt?

Dominik

Ja, laufe ich da drüber.

Dominik

Ja, genau.

Dominik

Laufe ich mir diese Seite, ja, genau.

Dominik

Also gibt es einen Startpunkt?

Jochen

Nö, das fängt halt irgendwo an.

Jochen

Fängt sich einfach irgendwo durch.

Jochen

Ja, random, ja.

Dominik

Ja, okay, Wikipedia, Artikel 1, 2, 3, 4, 5,

Dominik

querverweist auf irgendeine Quelle,

Dominik

die ich dann auf irgendeinem Nachrichtenportal,

Dominik

das sind auch irgendeine, ja.

Jochen

Und was das Ding im Grunde sozusagen abbildet,

Jochen

ist, wie wichtig, wie zentral ist eigentlich eine Seite.

Jochen

Also wie tief in diesem Knoten,

Dominik

wenn man sich das Web jetzt doch wieder als Knoten vorstellt

Dominik

oder sowas. Und dann der zentralste

Dominik

Knoten, welche Seite ist das? Ist das wahrscheinlich mittlerweile Google?

Dominik

Ich weiß es nicht. Gibt es da, weißt du das?

Jochen

Gibt es das? Keine Ahnung.

Dominik

Im größten Page-Track müsste dann ja eigentlich

Dominik

Google selber sein.

Jochen

Wikipedia ist immer weiter oben, aber Google,

Jochen

nee, glaube ich gar nicht mal.

Jochen

Google, die

Jochen

Links, die

Jochen

Google ausgibt, sind auch

Jochen

nicht, genau, die gehen da nicht mit in den Graphen rein.

Jochen

Ja, okay. Also,

Jochen

ich weiß es nicht.

Jochen

Aber ist auch eigentlich egal.

Jochen

Ja, aber wenn man das jetzt kombiniert mit eben TF-IDF geschickt, dann ist das halt viel besser, als wenn ich das nur, wenn ich nur TF-IDF nehme, weil es halt in gewisser Weise ein Maß dafür, ja sozusagen, wie wichtig ist diese Seite eigentlich insgesamt.

Jochen

und dann kombiniere ich halt eine lokale Geschichte

Jochen

ETF-EDF mit irgendwie einer eher globalen

Jochen

Geschichte

Jochen

und das funktioniert dann schon ganz gut und das

Jochen

führt halt dazu, dass ich eben solche

Jochen

simplen, ich

Jochen

schreibe jetzt fünfmal irgendein Keyword auf eine

Jochen

Seite, spiele rein, halt dann nicht mehr funktionieren.

Jochen

Weil dadurch werde ich halt nicht zentral

Jochen

in dem Graph, dass ich das tue.

Jochen

Aber auf der anderen Seite ist das halt das, was dann

Jochen

die Leute mit den Backlinks immer meinen, also wenn du halt

Jochen

ganz viele Links hast, die auf dich zeigen,

Jochen

dann wirst du natürlich zentraler.

Jochen

Aber jetzt kannst du die Links natürlich auch wieder

Jochen

Gewächten und es ist ein Katz-und-Maus-Spiel

Jochen

und keine Ahnung. Aber

Jochen

Google verwendet jetzt auch nicht

Jochen

nur PageRank und irgendwie sowas

Jochen

IDF-artiges oder so, sondern die

Dominik

verwenden halt ganz, ganz viele. Ich hab's gerade mal aufgemacht, der PageRank

Dominik

gibt's jetzt irgendwie 9

Dominik

und 10, also das werden jetzt irgendwie nummerlich

Dominik

gestellt und PageRank 10, das hat tatsächlich Google

Dominik

kommen. Und

Dominik

Government of India, India GovN.

Dominik

CNN.

Dominik

Und ja,

Dominik

noch das W3-Konzert. Und dann gibt's

Dominik

PageRank 9, ist auch Python

Dominik

dabei, also Python.org.

Jochen

Also wenn du einen Link von Python.org

Jochen

kriegst,

Jochen

dann

Jochen

voll gut.

Jochen

Das zählt was.

Jochen

Naja, also

Jochen

tatsächlich, heutzutage ist es so,

Jochen

es wird ganz, ganz viel, also nicht nur diese

Jochen

beiden Werte, also nehmen wir an,

Jochen

würdest du jetzt nur TF-EDF und den Patchrank haben,

Jochen

dann hättest du zwei, oder die sind im

Jochen

Suchmaschinenbereich, nennt man das mal Signale,

Jochen

im Machine Learning-Bereich würde man das Features nennen,

Jochen

sondern Google sammelt eher so 100, sagen sie so,

Jochen

aber tatsächlich sind es wahrscheinlich noch ein paar mehr.

Jochen

Und das Ranking ergibt sich daraus, dass jetzt diese Signale,

Jochen

von denen ein paar aus der Query kommen

Jochen

und möglicherweise auch aus dem User, der die Query gestellt hat,

Jochen

ein paar kommen aus dem Dokument,

Jochen

eben wie sowas wie PageRank

Jochen

oder kommt die Query irgendwie in der Domain vor oder sowas,

Jochen

Ein paar kommen aus einer Kombination von Query

Jochen

und Dokument. TF-IDF wäre

Jochen

so ein Fall, da multipliziert man das ja miteinander.

Jochen

Und jetzt hat man

Jochen

halt sozusagen für jedes Suchergebnis

Jochen

so einen

Jochen

Vektor mit irgendwie vielleicht 100

Jochen

Einträgen oder 200 oder 500

Jochen

oder wie auch immer. Und dann hat man halt

Jochen

üblicherweise ein Modell, ist auch völlig

Jochen

egal, ob das jetzt ein Machine Learning trainiertes Modell

Jochen

ist oder ob das ein Modell ist, das Leute von Hand

Jochen

getunt haben, es kommt aufs Gleiche

Jochen

raus letztlich,

Jochen

dass diese Vektoren halt in Reihenfolge

Jochen

bringt und irgendwie halt

Jochen

einen

Jochen

endgültigen Score halt ausgerechnet.

Jochen

Im simpelsten

Jochen

Fall könnte das einfach eine gewichtete Summe sein,

Jochen

zum Beispiel.

Jochen

Du sagst halt, wie wichtig ist mir jedes

Jochen

einzelne Feature, dann machst du halt die Summe

Jochen

drüber und

Jochen

normierst es vielleicht noch

Jochen

irgendwie oder so und

Jochen

dann sortierst du halt nach der

Jochen

Summe.

Jochen

könnte man machen. Oder man kann halt dieses Modell

Jochen

auch irgendwie trainieren

Jochen

und kriegst dann halt

Jochen

irgendwie am Schluss eine Sortierreihenfolge

Jochen

und

Jochen

das ist halt eher so das, was heute gemacht wird.

Jochen

Das ist lustigerweise

Jochen

aber in den ganzen, also zumindest

Jochen

ich weiß nicht, ob es kommerzielle Suchmaschinen gibt,

Jochen

die sowas ähnliches machen.

Jochen

Die ganzen

Jochen

Open-Source-Suchmaschinen können das

Jochen

nicht. Also

Jochen

so ein bisschen. Also man kann so ein bisschen was machen,

Jochen

aber so ein bisschen

Jochen

Woosh, aber so richtig. Aber so richtig toll

Jochen

können die das, also so cool wie

Jochen

irgendwie die Großen dazu machen, machen die das eigentlich

Jochen

nicht. Das ist auch so etwas. Also mich

Jochen

ärgert ja so ein bisschen oder mich wundert, dass

Jochen

es da so wenig, also es ist viele Dinge, die halt so

Jochen

im Bereich Websuche

Jochen

oder so halt irgendwie

Jochen

schon lange gemacht werden

Jochen

oder da,

Jochen

das kommt halt nie so richtig an.

Jochen

Also was mich zum Beispiel wundert

Jochen

ist, was Google seit 2004 glaube

Jochen

ich macht oder so, die halten ihre NTCs alle

Jochen

nur noch im Hauptspeicher. Die gehen gar nicht

Jochen

Ja, auf die Platte, weil Platte ist immer so ein bisschen blöd,

Jochen

weil du kriegst halt

Jochen

Latenzen, werden halt unvorhersehbar.

Jochen

Plötzlich liegen halt

Jochen

deine Sektoren ungünstig, du musst

Jochen

warten, bis das da vorbeikommt und

Jochen

du musst aber viele Sachen miteinander

Jochen

mergen und jetzt

Jochen

liegen die Kombinationen

Jochen

von, die Sektoren

Jochen

sind halt ungünstig korreliert und plötzlich musst du halt auf

Jochen

eine Query sehr lange warten.

Jochen

Das ist eigentlich totaler Mist. Du willst eigentlich

Jochen

relativ sicher sein können, dass das halt nach so und so viel

Jochen

Millisekunden

Jochen

oder so halt durch ist und das kannst du eigentlich nur

Jochen

dann garantieren, wenn das ganze Zeug immer im Hauptspeicher liegt

Jochen

und wenn du noch ein paar andere Sachen irgendwie berücksichtigt

Jochen

hast und Google, ich glaube auch, das ist der

Jochen

Grund, warum Google das so macht, die möchten

Jochen

halt wissen, okay, wenn jemand eine Suchmanfrage

Jochen

eingegeben hat und wir dann das an

Jochen

diese tausend Server, die halt jeweils

Jochen

nur einen Teil vom Index haben, schicken

Jochen

und dann kommt ein Ergebnis zurück, dann wissen wir halt, nach 20 Millisekunden

Jochen

ist das halt durch.

Jochen

Wenn da Platten im Spiel wären, könnte man das überhaupt nicht mehr

Jochen

garantieren, weil

Jochen

hast du halt Pech und irgendwo musst du halt auf eine

Jochen

Platte warten und die

Jochen

Seek-Time da ist halt bei Platten auch

Jochen

sind halt mal 10 Millisekunden oder noch mehr

Jochen

und dann wird das Gesamtergebnis

Jochen

halt langsam dadurch, das ist halt irgendwie kacke, aber

Jochen

jetzt, wenn man sowas wie Lucene hat oder

Jochen

Elasticsearch oder Sola, da kann einem das

Jochen

durchaus passieren, also wenn man Pech hat, dann ist

Jochen

eine Query halt langsam und zwar auch nicht

Jochen

deterministisch, irgendwie bestimmte Queries, sondern halt

Jochen

irgendeine, was halt

Jochen

naja, aber

Jochen

das ist halt so designt, also es kann

Jochen

auch sein, dass man mittlerweile sagen kann, okay, nur

Jochen

dieser Index soll

Jochen

in Memory liegen oder so, aber ich weiß es nicht

Jochen

mich wundert, dass das halt, weil

Jochen

bei den Hauptspeichergrößen heutzutage sollte das

Jochen

überhaupt kein Problem sein, dass man halt

Jochen

den Index halt im Hauptspeicher hält

Jochen

und wenn das nicht reicht, dann vielleicht mal mehr Maschinen

Jochen

dazu, ist auch, warum

Jochen

warum muss das auf

Jochen

wie liegt man das auf die Platte

Jochen

optimiert sein, das macht doch heutzutage

Jochen

eigentlich keinen großen Sinn mehr, oh, da hab ich

Jochen

noch was vergessen, bei den

Jochen

es gibt ein Ding, Redis

Jochen

das hatten wir jetzt auch schon ein paar Mal, das kann

Jochen

auch Volltext-Suche mittlerweile

Jochen

ganz gut.

Dominik

Adrede ist das ein Cache

Dominik

für bestimmte Dinge,

Dominik

die als Key-Value

Jochen

kombinieren. Key-Value ist aber

Jochen

nicht nur das, das kann auch ein paar andere Datenstrukturen

Jochen

und das

Jochen

liegt tatsächlich nur im Hauptspeicher und das kann auch

Jochen

Volltext-Suche und das wollte ich mir auch schon immer mal angucken,

Jochen

aber habe ich es in letzter Zeit

Jochen

nicht geschafft. Es kann sein, dass das

Jochen

mittlerweile vielleicht ein bisschen sogar das erfüllt, was

Jochen

ich irgendwie gerne hätte.

Jochen

Ja,

Jochen

aber Luciden ist halt

Jochen

tatsächlich eher so drauf optimiert, dass es

Jochen

auf der Platte gut aussieht.

Jochen

Und ja,

Jochen

also da hängt das

Jochen

irgendwie so ein bisschen hinterher und es hängt halt auch

Jochen

hinterher bei solchen Sachen wie,

Jochen

also im Machine Learning Bereich läuft dieses ganze Thema immer

Jochen

unter dem Namen Learning

Jochen

to Rank, also sozusagen,

Jochen

dass du halt, du hast halt Features

Jochen

und du hast halt jetzt

Jochen

die Training, deine Trainingsdaten sehen immer so aus, dass du

Jochen

Mengen hast von

Jochen

Queries und dann

Jochen

ergebnislisten wo halt leute also redaktionell notiert ist wie gut was

Jochen

waren, wie relevant sind die Ergebnisse, also

Jochen

wo Leute meistens auf einer Skala von 0 bis

Jochen

4 oder 0 bis 3

Jochen

0 ist überhaupt nicht relevant

Jochen

zu 3 oder 4 oder das höchste ist halt

Jochen

super relevant für diese Anfrage

Jochen

Ergebnislisten annotiert haben

Jochen

und du dann halt hinterher

Jochen

sozusagen testen kannst, wenn du jetzt

Jochen

was an deiner Suchmaschine geändert hast

Jochen

und fütterst sie halt mit den

Jochen

Queries und guckst dir die Result-Listen an

Jochen

dann kannst du halt einen Score ausrechnen

Jochen

da gibt es dann unterschiedliche

Jochen

die Master, die man benutzen kann.

Jochen

Ja,

Jochen

Average Precision, Normalized,

Jochen

Cumulative Discounted Gain,

Jochen

Expected Reciprocal

Jochen

Rank oder was auch immer.

Dominik

Ich wundere mich jetzt dabei, mal kurz die alle drei

Jochen

jetzt erklären. Aber im Grunde sind das alles Master

Jochen

dafür, wie gut

Jochen

ist jetzt sozusagen

Jochen

dieses

Jochen

Ergebnis

Jochen

für die Anfrage.

Jochen

Und

Jochen

wenn ich halt über viele

Jochen

schaffe, besser zu sein als ein anderes

Jochen

Verfahren, dann rank ich halt

Jochen

besser. Dann habe ich halt ein besseres

Jochen

Ergebnis und das ist ja etwas, was sich dann

Jochen

auch direkt bemerkbar macht in User-Zufriedenheit

Jochen

oder Geld oder was auch immer man halt

Jochen

aufnehmen möchte.

Jochen

Und

Jochen

naja,

Jochen

genau,

Jochen

normalerweise, wenn ich jetzt

Jochen

so ein, also Maschinen-Logging-Modelle funktionieren da wirklich

Jochen

besser. Also es gibt da schon

Jochen

lange auch Wettbewerbe.

Jochen

Ich glaube, ich habe mal in einer Learning for Ranked Challenge mitgemacht.

Jochen

Das war 2009 oder so.

Jochen

Und wenn man das vergleicht,

Dominik

also was... Das ist schon über 10 Jahre her, das ist schon

Dominik

klar. Ja, das ist krass, ne?

Jochen

Und es ist immer... Aber was ich dann... Ich dachte eigentlich,

Jochen

wenn man mich damals gefragt hätte,

Jochen

ähm, was glaubst

Jochen

du, wann können Suchmaschinen...

Jochen

Ist das so ein Standard-Feature von Volltext-Suchmaschinen?

Jochen

Hätte ich gedacht, ja, so in 2 Jahren oder so,

Jochen

können die das alle.

Jochen

Die machen das aber immer noch nicht.

Jochen

Also das ist jetzt...

Jochen

Also das ist so ein bisschen

Jochen

naja, aber

Jochen

wahrscheinlich braucht man ja

Jochen

da doch irgendwie auch einen Markt dafür.

Jochen

Und wenn es

Jochen

einfach keinen interessiert, dann passiert

Jochen

das halt auch nicht. Und wenn es keinen Grund gibt, das zu implementieren

Jochen

und den gibt es halt nur bei den großen Suchmaschinen

Jochen

und die machen das wahrscheinlich, aber die

Jochen

geben ihren Kram halt nicht raus.

Jochen

Ach ja.

Jochen

Aber im Grunde, so könnte man

Jochen

halt, man kann halt,

Jochen

also wenn man jetzt zum Beispiel

Jochen

Also daher weiß ich das auch noch, ich war im TF-EDF-Vergleich mit einem einfachen Machine Learning Modell, wo man halt ein paar Signale nimmt und die kombiniert und das halt dann optimiert hat. Das ist halt schon wirklich deutlich besser. Und das heißt, man kann ja relativ viel rausholen, was die Qualität von Suchergebnissen angeht. Und das wäre eigentlich alles gar nicht so schlimm.

Dominik

Ja, also falls ihr eine neue Suchmaschine braucht, dann sagt ihr einfach mal Bescheid.

Dominik

Ja, ist ja dummerweise auch irgendwie

Jochen

nicht so ganz so super leicht zu implementieren.

Jochen

Das kann man auch nicht so am Wochenende machen.

Jochen

Naja, aber

Jochen

also ich glaube, wenn man jetzt

Jochen

beispielsweise

Jochen

Postgres nimmt oder so und

Jochen

halt irgendwie

Jochen

Django und dann

Jochen

Volltextsuche drauf macht und dann

Jochen

halt kann man natürlich auch die eingebaute Rank-Funktion

Jochen

nehmen, die halt auch was TF-EDF-mäßiges

Jochen

macht. Und Redis dazu.

Jochen

Ja, Redis

Jochen

oder man kann auch mal Redis ausprobieren.

Jochen

Muss ich mal testen.

Jochen

Dann ist man da schon,

Jochen

wenn man das nochmal selber sortiert,

Jochen

schon relativ weit vorne, wenn man das dann richtig macht.

Jochen

Genau.

Jochen

Du hast eine Sache,

Jochen

eben war es nur mit dem Pau,

Dominik

irgendwas gesagt, da wolltest du doch kurz drauf eingehen.

Dominik

Ich weiß jetzt nicht, ob das noch wichtig ist,

Dominik

ob das jeder schon vergessen hat.

Dominik

Irgendeine Methode

Dominik

zum Ranken.

Dominik

Weiß ich schon.

Dominik

Das Exponentiale.

Dominik

Du meinst die Potenzmenge?

Dominik

Du meinst...

Dominik

Ja.

Dominik

Ich glaube, das hat...

Jochen

Ja, also kommt drauf an.

Jochen

Es ist halt unterschiedlich für jede

Jochen

Seite oder für jede Suchmaschine.

Jochen

Hängt halt ab, welche Anfragen stellen.

Jochen

Aber was man oft sieht, ist halt, dass eine kleine Anzahl von Anfragen,

Jochen

kleine Menge von Anfragen,

Jochen

Großteil...

Jochen

Eine kleine Anzahl unterschiedlicher Anfragen macht einen Großteil...

Dominik

Entschuldigung, das hattest du doch tatsächlich schon einigermaßen erwähnt.

Jochen

Genau, genau, das Problem hat man auch.

Jochen

Ja, ansonsten, ich weiß nicht,

Jochen

oder genau, wir hatten ja so SEO schon so ein bisschen,

Jochen

aber da würde ich auch noch gerne,

Jochen

also was man halt da,

Jochen

du sagst Content,

Jochen

das was sich Leute oft nicht klar machen,

Jochen

ist halt, was das heißt.

Jochen

Würdest du sagen,

Jochen

es geht darum,

Jochen

den optimalen Text zu schreiben für irgendeine,

Jochen

Oder wie würdest du sagen, was ist das, was Content gut macht?

Dominik

Also ich würde sagen, Content macht gut, dass man, zumindest wenn man Google fragt,

Dominik

dass man Absätze hat, die tatsächlich mit Inhalten gefüllt sind,

Dominik

die halt eine Wortdiversität beinhalten, die zu dem Thema einigermaßen passt.

Dominik

Dass die Worte da irgendwie schon einen Kontextbezug zu haben,

Dominik

dass sie vielleicht auch bestimmte Dinge beschreiben,

Dominik

dass man halt nicht immer irgendwelche Keywords benutzt,

Dominik

sondern dass man halt tatsächlich versucht, einen Text darzustellen.

Dominik

Und Google hat es irgendwie geschafft, so ein Maß dafür zu finden,

Dominik

ob so ein Text tatsächlich gut ist, ja, in dem Sinne oder nicht.

Dominik

Und wenn man da halt, ich weiß nicht,

Dominik

mehrere Seiten vielleicht zu hat zu seinem Post,

Dominik

dann wird das als guter Content irgendwie bewertet.

Dominik

Ich kenne tatsächlich jetzt auch nicht im Detail

Dominik

so die Bewertung für was ist jetzt guter Content.

Dominik

Und das bewegt sich vielleicht noch ein bisschen.

Dominik

Und ob man das jetzt alles schön mit Bildern machen muss,

Dominik

mit Alltexten und so,

Dominik

dass man halt dann das qualitativ hochwertig implementiert hat.

Dominik

Also die Implementierung ist, glaube ich, auch nicht ganz unwichtig.

Dominik

Wenn man das aber, glaube ich, wenigstens so tut,

Dominik

als hätte man das qualitativ hochwertig implementiert,

Dominik

indem man einigermaßen taktisch sinnvolle Sätze

Dominik

zu einem Thema hinschreibt,

Dominik

die dann auch so aussehen,

Dominik

als gehören die zum Thema,

Dominik

weil die halt da mit dem TF-RDF-Werte

Dominik

irgendwie dann zu dem Thema gut passen,

Dominik

irgendwie gibt es dann irgendwie einen Index,

Dominik

dann glaube ich,

Dominik

ist das schon einigermaßen ansprechender Content,

Dominik

zumindest für Google.

Dominik

Und wenn man das dann halt schafft,

Dominik

da so eine Content-Pyramide,

Dominik

wie man das schon sagt, aufzubauen,

Dominik

das heißt, zu einem Oberthema

Dominik

viele verschiedene Bereiche,

Dominik

die eigentlich diesem Oberthema gehören,

Dominik

also vielleicht machen wir das ja

Dominik

mit unserem Podcast zum Beispiel,

Dominik

dass wir halt tatsächlich verschiedene Themen

Dominik

zu Python haben, das aber alles Python ist und das hat

Dominik

irgendwie alles einen Bezug zu Python, dann

Dominik

kommen wir tatsächlich in dieser Content-Pyramide

Dominik

Python immer wieder ein Stück

Dominik

weiter oben, nach oben. Natürlich haben wir jetzt keine Texte,

Dominik

die man so analysieren kann per Volltext-Suche

Dominik

und nach denen man ranken kann. Wir haben halt nur irgendwelche

Dominik

Snippets oder Shownotes, mit denen man das tun kann.

Dominik

Aber ich glaube so,

Dominik

also das funktioniert so ein bisschen, was halt

Dominik

Content bedeutet.

Jochen

Ja, aber das ist jetzt auch, würde ich

Jochen

eher sagen, auf einer sehr technischen

Jochen

Ebene.

Jochen

Ja, und man kann glaube ich aber auch, also ich würde sagen, okay, also der technische Teil ist, macht auch einen nicht unerheblichen Teil aus, also man kann halt auch furchtbare Fehler machen, aber ein großer anderer Teil ist halt auch ein inhaltlicher und der ist halt eben zum Beispiel, also was dann eben, ich bin überrascht, man kann zum Beispiel auch unterschiedliche Seiten haben für unterschiedliche Anfragen und für unterschiedliche User.

Jochen

Man muss halt erstmal überhaupt rauskriegen, was sind das für Leute, die auf meine Seite kommen und möglicherweise gibt es da unterschiedliche Leute, möglicherweise stellen die unterschiedliche Suchanfragen und dann kann es zum Beispiel gut sein, das ist auch etwas, das kennen bestimmt viele Leute, wenn man sucht nach irgendwas, dann landet man auf einer Seite von irgendeiner Firma, die irgendwas anbietet oder so und scrollt da die ganze Zeit rum und denkt sich so, was wollen die mir eigentlich erzählen?

Jochen

Wir haben fünf Stockfotos

Jochen

und dann irgendwie die gleichen

Jochen

Passwort-Bingo-Dinger, die auf allen Seiten

Jochen

sind und ich scrolle da

Jochen

eine Viertelstunde drauf rum und ich verstehe

Jochen

nicht, was das eigentlich ist.

Jochen

Das hat man

Jochen

oft.

Jochen

Aber die Frage ist, warum müssen die eigentlich

Jochen

allen die gleiche Landingpage zeigen? Das müssen die doch

Jochen

gar nicht. Aber das kommt dabei raus,

Jochen

wenn du sagst, okay, ich mache eine Landingpage

Jochen

für alle die gleiche,

Jochen

dann kriegst du halt sowas.

Jochen

aber das müsste eigentlich gar nicht sein,

Jochen

sondern das, was sie sich überlegen müssten, ist halt,

Jochen

okay, wenn jetzt jemand nach bestimmten technischen

Jochen

Geschichten

Jochen

sucht, dann

Jochen

geben wir dem doch

Jochen

vielleicht eine Seite,

Jochen

wo tatsächlich

Jochen

steht, was wir machen und wenn jetzt

Jochen

irgendwie, keine Ahnung, eher ein businessorientierter

Jochen

User halt nach den üblichen

Jochen

Buzzwords sucht oder so, den gut, den kannst du ja dann

Jochen

vielleicht irgendwie, vielleicht kriegst du den irgendwie

Jochen

mit Stockfotos glücklich gemacht.

Dominik

Das führt überhaupt dazu, dass wir

Dominik

diese Datenkrake brauchen, wenn wir damit

Dominik

Geld verdienen wollen. Das ist der Grund dafür, warum

Dominik

man so sehr interessiert ist an dem Typen von

Dominik

Nutzer, den man jetzt da vor der Kiste hat, weil

Dominik

es geht ja eigentlich darum, dass man den irgendwie

Dominik

emotionalisiert und nicht nur, dass man dem den

Dominik

tollen Content zeigt, sondern dass man den dann,

Dominik

also wenn wir jetzt von der ganzen Geldmaschine ausgehen,

Dominik

den dazu bringt, dass der irgendwas kaufen soll.

Dominik

Wenn der schöne Kapitalismus halt so ist, der möchte

Dominik

dich emotionalisieren und dir das zeigen, was du willst.

Dominik

Ja, weiß ich gar nicht.

Jochen

Aber ich meine jetzt nur rein aus dem Suchmaschinen-Kontext.

Jochen

Was man jetzt damit macht, ist ja nochmal eine andere Frage.

Jochen

Klar, will ich eventuell Leute hinterher,

Jochen

die konvertieren zu was auch immer, Umsatz.

Dominik

Die konvertieren zu, das ist total schön,

Dominik

wenn man von Leuten redet, wir möchten die gerne konvertieren.

Dominik

Wir möchten unsere Hörer übrigens konvertieren

Dominik

zu besseren Pythonister.

Dominik

Genau, man muss sich halt überlegen,

Jochen

was man für Ziele eigentlich erreichen will.

Jochen

Aber damit das überhaupt funktionieren kann,

Jochen

damit ich überhaupt die Chance kriege,

Jochen

muss ich ja irgendwie

Jochen

vielleicht, oder macht es vielleicht Sinn, den Leuten

Jochen

halt etwas zu zeigen, was sie dann halt

Jochen

auch verwenden können, was sie verstehen können, was relevant

Jochen

für sie ist. Und das passiert oft nicht.

Jochen

Sondern ganz oft ist es

Jochen

halt so, alle kriegen das Gleiche, egal

Jochen

wonach sie gesucht haben. Dabei

Jochen

das weiß ich doch, wonach sie gesucht haben. Ich muss

Jochen

ja jetzt nicht irgendwie wissen, wer das ist. Das interessiert

Jochen

mich gar nicht. Ich weiß doch, wonach die gesucht

Jochen

haben. Warum zeige ich denen alle das Gleiche?

Jochen

Das macht überhaupt keinen Sinn. Aber

Jochen

es gibt die Vorstellung, dass das halt so sein muss,

Jochen

woher auch immer die kommt.

Jochen

Und dass es halt dann so ein technisches Ding ist,

Jochen

welche Farbe nehme ich da oder welche Fotos,

Jochen

wie ist der Anteil von Fotos zu Text,

Jochen

dass das dann irgendwie gut macht.

Jochen

Aber wenn da nicht steht, was mich interessiert,

Jochen

dann kriege ich das nicht wieder gut gemacht durch irgendeine Farbe.

Jochen

Das ist einfach, da hast du mich schon verloren im Grunde.

Jochen

Also das, was du gerade gesagt hast,

Dominik

ist, dass der Content King eigentlich bedeuten sollte,

Dominik

ich kriege genau das, was ich möchte,

Dominik

weil es so prä-invalidisiert und gefiltert ist,

Dominik

dass deine eigene Blase so gut zu dir passt,

Dominik

dass du da genau das findest, was du machst.

Jochen

Nein, es müsste sich jemand Gedanken drüber gemacht haben.

Jochen

Das ist halt das Entscheidende.

Jochen

Jemand muss sich zum Beispiel angeguckt haben.

Dominik

Also bessere Kuratierung durch den Suchalgorithmus.

Dominik

Nee.

Jochen

Jemand sollte sich überlegt haben,

Jochen

zum Beispiel, wir sind das Dokument nicht,

Jochen

wir sind die Suchmaschine.

Jochen

Was Google macht, ist nochmal ein anderes Ding, aber

Jochen

es müsste sich jemand überlegt haben,

Jochen

okay, wonach suchen die Leute?

Jochen

Wenn die Leute auf der Seite landen, wonach haben die gesucht?

Jochen

Ist das wirklich das, was sie suchen?

Jochen

Wenn sie danach gesucht haben,

Jochen

kriegen die Seite, wäre es nicht sinnvoll,

Jochen

eine andere Seite zu zeigen.

Jochen

Ja, solche Sachen.

Jochen

Das ist überhaupt so etwas,

Jochen

was ich glaube, was tatsächlich sehr sinnvoll wäre

Jochen

unter Umständen, dass halt Unternehmen

Jochen

halt für unterschiedliche Zielgruppen, unterschiedliche Leute,

Jochen

unterschiedliche Suchanfragen, unterschiedliche

Jochen

Seiten haben. Das gibt es praktisch nicht, weil

Jochen

irgendwie die Vorstellung ist,

Jochen

das ist wie in einer physikalischen Welt.

Jochen

Du hast halt ein Schaufenster und das ist halt für alle gleich.

Jochen

Aber das muss man ja gar nicht so machen

Jochen

unter Umständen. Aber das ist halt

Jochen

sehr schwer zu vermitteln. Aber wenn du jetzt zum

Jochen

SEO gehst, der so die Content-Strategie

Jochen

macht oder so, dann sagt er dir vielleicht einfach,

Jochen

boah, kann das auch anders machen.

Jochen

Aber wenn du jetzt zu einer

Jochen

technischen SEO-Agentur gehst, die dir sagt,

Jochen

okay, ich verkaufe dir so und so viele Backlinks, dann

Jochen

hilft dir das. Also

Jochen

sagen wir mal so, es gibt halt nicht nur den technischen Teil,

Jochen

sondern halt auch den inhaltlichen Teil

Jochen

und der wird halt, der inhaltliche Teil

Jochen

wird, soweit ich hinweist,

Jochen

üblicherweise mitbekomme, immer sehr

Jochen

vernachlässigt. Und die Leute kümmern sich immer

Jochen

um technische Details und dann oft auch um Sachen,

Jochen

die eigentlich eher fragwürdig sind

Jochen

und

Jochen

lassen dann eine ganze Menge gute Gelegenheiten

Jochen

einfach so liegen.

Dominik

Es klingt halt, als wäre es aufwendig,

Jochen

das zu implementieren. Ja, ist es tatsächlich.

Jochen

Das ist vielleicht auch der Grund,

Jochen

warum das keiner macht. Ja, genau. Und was die Leute,

Dominik

die das halt implementieren, die Content

Dominik

machen, vielleicht auch dann nicht auf dieser technischen Seite sind,

Dominik

beziehungsweise das dann, ich sage einfach mal,

Dominik

relativ teuer wird und mal das zu implementieren

Dominik

nicht so einfach ist

Dominik

für die Zielgruppe, die dann gerne ihren kleinen

Dominik

Straßenlädchen

Dominik

optimieren möchte, das vielleicht auch so cool ist.

Dominik

Ja, aber die großen Kunden, hast du das schon mal

Dominik

gesehen, also dass so wirklich diese Pages wirklich dann

Dominik

sich ändern, je nach Suchanfrage?

Dominik

Ja.

Jochen

Wo? Nein, du packst einfach, das ist

Jochen

überhaupt nicht schwer. Nein, ich sage nur, hast du

Dominik

ein Beispiel, wo du sagst, die Gnässe

Jochen

machen? Nicht, nicht, nicht, es ändert sich nach Suchanfrage, sondern du hast halt

Jochen

unterschiedliche Pages im

Jochen

Google-Index und bei unterschiedlichen Anfragen

Jochen

werden unterschiedliche Seiten gefunden. Ja, okay, okay.

Jochen

Das kannst du machen, das ist

Dominik

gar kein Problem. Ja, das habe ich, ja, okay, das ist natürlich,

Dominik

ja.

Dominik

Ja.

Dominik

Also man hittet quasi für jedes

Dominik

schöne Keyword-Kombination seine eigene Landepage

Jochen

raus. Ja, oder, du musst nicht

Jochen

für jede kombinieren, aber du musst halt gucken, also

Jochen

man würde damit anfangen zu gucken, was suchen die

Jochen

Leute eigentlich, mit welchen

Jochen

Anfragen landen sie oder auch,

Jochen

wenn ich jetzt mich dafür interessiere, was würde

Jochen

ich denn suchen und wie schaffe ich es dann,

Jochen

dass ich dann auch dann da gerankt werde.

Jochen

Und dieser Schritt ist ja

Jochen

das Allersimpelste, dass man halt

Jochen

anfängt, sich zu überlegen, okay, wie kommen

Jochen

Leute eigentlich hin? Das machen die meistens schon nicht.

Jochen

Sondern die gehen halt umgekehrt

Jochen

von der Seite aus, die sie halt bauen

Jochen

und sagen dann, okay, ich habe jetzt

Jochen

diese Seite, völlig

Jochen

unabhängig davon, ob das irgendjemand interessiert

Jochen

oder nicht, wie kriege ich die denn jetzt hochgerankt?

Jochen

Und dann packen sie da irgendwie

Jochen

komische Warte rein oder kaufen Links

Jochen

oder machen irgendwie seltsame Dinge,

Jochen

ändern die Farben, verstecken

Jochen

weißen Text auf weißem Hintergrund.

Jochen

Ja, oder kaufen Hellhits bei Google.

Jochen

Und wundern sich dann, dass die Leute irgendwie, wenn sie halt

Jochen

quasi da landen, dann irgendwie enttäuscht

Jochen

sind.

Dominik

Ja, aber diese ganzen Tricks, also mit den

Dominik

Sachen verstecken, hinter weißem Hintergrund und mit den

Dominik

extra Keywords und mit den zu vielen Links, das hat, glaube ich,

Dominik

Google mit den ganzen neuen Pässen alle rausgenommen.

Jochen

Ja, die sind da sehr gut. Also das wird alles nicht so richtig

Dominik

funktionieren. Ja, es wird sogar bestraft. Also du wirst tatsächlich

Dominik

abgerankt, wenn du sowas machst noch. Also wenn die

Dominik

solche Methoden finden, die können die identifizieren, dann schmeißen

Dominik

die viel raus. Das wird bestraft.

Dominik

Würde ich jetzt, finde ich,

Jochen

wüsste ich jetzt nicht genau,

Jochen

warum man das machen sollte, weil im Grunde ist es ja,

Jochen

wenn ich Google wäre, würde ich das ignorieren.

Dominik

Nö, also ich habe gehört, dass das tatsächlich drinsteht.

Dominik

Ich weiß nicht, was das ist. Google Dolphin oder was?

Dominik

Wie ist das denn für Google? Ja, das ist halt nur noch

Dominik

Sachen gerankt, wenn die halt diesen Content-Qualitätsding

Dominik

besser machen können. Das heißt, weil die halt

Dominik

auf diese Qualitätssachen denken. Und Leute, die halt

Dominik

dann versuchen, mit Keywords das

Dominik

einzubinden, die legen nicht so viel Wert

Dominik

auf guten, qualitativ hochwertigen Content.

Jochen

Ja, aber dann würdest

Jochen

du sagen, du kannst eine Regel aufstellen,

Jochen

die funktioniert. Du sagst, Leute, die

Jochen

irgendwie so shady Geschichten machen oder die halt

Jochen

die falsche, sich halt

Jochen

von der falschen SEO-Agentur

Jochen

übers Ohr haben hauen lassen,

Jochen

die sind halt prinzipiell

Jochen

nicht gut. Genau.

Jochen

Da weiß ich nicht, ob diese Regel wirklich stimmt. Ich würde

Jochen

tatsächlich das eher

Jochen

dann aus Trainingsdaten lernen lassen,

Jochen

ob das so ist oder nicht, weil

Jochen

diese Annahme muss ja nicht richtig sein. Es kann ja sein,

Jochen

tatsächlich, dass irgendwie der Hotdog-Stand

Jochen

um die Ecke, der eigentlich total super Hotdogs macht,

Jochen

hat aber jetzt nicht so die perfekte

Jochen

SEO-Auswahlkompetenz und

Jochen

greift da halt ins Klo.

Jochen

Da würde ich den gar nicht dafür bestrafen wollen,

Jochen

unbedingt dafür, dass halt seine SEO-Agentur

Jochen

kacke ist, sondern ich würde das ignorieren.

Jochen

Aber ich weiß es nicht.

Jochen

Aber ich glaube, also Google hat das tatsächlich gemacht,

Dominik

das steht irgendwie in den Rules da drin, aber

Dominik

ja, sollte man

Dominik

vielleicht nochmal drüber nachdenken.

Dominik

Ja gut, aber

Dominik

ich hoffe jetzt, also so Ressourcungsbewertung

Dominik

aber das haben wir glaube ich heute nicht mehr

Dominik

die Zeit für und das ist auch nicht unser Thema.

Dominik

Warum, wieso, weshalb, dann welche Sternchen

Dominik

vergeben werden sollen, sollten, sollten, nicht sollten

Dominik

oder? Ja, aber

Jochen

genau, zum Beispiel

Jochen

haben wir noch irgendwie ein großes

Jochen

Thema oder sowas da drin ist, was

Jochen

wir noch gar nicht angeschnitten haben

Jochen

oder was irgendwie

Jochen

Ich glaube die großen Sachen

Dominik

haben wir einigermaßen durch. Wir haben so ein bisschen erklärt, wie es funktioniert

Dominik

was für Algorithmen dahinter stecken. Wir sind jetzt nicht

Dominik

ganz so detailliert eingegangen auf diese ganze

Dominik

mathematische Komponente

Dominik

von den Wertberechnungen, aber das ist vielleicht

Dominik

auch einfach hier an der Stelle too much

Dominik

Wir haben vielleicht noch wieder mal

Dominik

leider ein bisschen weniger Zeit, wie man das

Dominik

Python macht, also aus dem, was wir gesagt haben, dass es irgendwie so

Dominik

Pylusin und Woosh gibt, habe ich jetzt

Dominik

natürlich Postgres und damit das man

Dominik

in Django implementieren kann.

Jochen

Genau, vielleicht wenn man, also

Jochen

ich finde auch gerade Python ist super

Jochen

geeignet dafür, weil dann kann man diese beiden Dinge

Jochen

halt total gut miteinander kombinieren. Man kann halt zum Beispiel

Jochen

irgendwie diese

Jochen

ganzen

Jochen

Ranking-Geschichten

Jochen

halt wahrscheinlich, also ich denke mal,

Jochen

es müsste eigentlich, so Python ist wahrscheinlich die Sprache,

Jochen

mit der das am besten geht.

Jochen

wenn man halt eben diese ganze NumPy,

Jochen

SciPy, Machine Learning

Jochen

Geschichte mit dranhängen hat.

Jochen

Das heißt, selbst wenn man jetzt nicht unbedingt

Jochen

ein Machine Learning Modell verwendet, aber halt diese

Jochen

Listen, oder sagen wir mal so

Jochen

Vektoren von

Jochen

Features halt irgendwie

Jochen

auch mit Handgedenken Listen

Jochen

schnell zu lenken, das geht mit Python

Jochen

wahrscheinlich sehr, sehr gut.

Jochen

Und bei anderen Sprachen hätte man da wahrscheinlich so ein bisschen

Jochen

Naja, aber

Dominik

man hört sich an, das braucht man auf jeden Fall erstmal Content,

Dominik

bevor man wirklich eine vernünftige Suche implementiert.

Jochen

Ja, tatsächlich, das ist wahrscheinlich auch nicht so

Dominik

schlecht. Weil sonst kann man ja selber aussuchen, was dann da rauskommt.

Jochen

Ja, und genau, und das ist halt

Jochen

ich weiß jetzt gar nicht, ob es ein

Jochen

großartiges anderes

Jochen

also ist das alles Web

Jochen

heutzutage? Ja, ne?

Jochen

Gibt es irgendwie noch eine? Da gibt es bestimmt noch irgendwelche

Dominik

Studierenden-Datenbanken, wo man dann nach

Dominik

wissenschaftlichen Texten suchen kann oder

Dominik

Juristen sind sehr gerne dabei mit irgendwelchen

Dominik

Volltext-Sachen, irgendwelchen Gesetzestexten

Dominik

und Urteilsverkündungsgeschichten.

Dominik

Aber das wird auch alles eher mehr oder weniger

Dominik

webbasiert laufen.

Dominik

Ja.

Dominik

Es gibt bestimmt noch mehr, wenn ich noch genug nachdenke.

Dominik

Ja, aber es ist glaube ich

Jochen

heutzutage eigentlich das meiste

Jochen

Web, was man da so macht.

Jochen

Ja, oder selbst wenn es irgendwie auf Mobilgeräten

Jochen

ist oder so, dann wird man wahrscheinlich eine API-Anfrage

Jochen

machen und also letztlich wird es auch wieder Web sein.

Jochen

Ja.

Jochen

Genau.

Jochen

Ja, ich wollte eigentlich auch schon immer mal, das mache ich

Jochen

vielleicht mal irgendwie einfach irgendwo ein Repository

Jochen

anlegen und dann mal Dinge miteinander

Jochen

vergleichen, zum Beispiel einfach

Jochen

einen Standard-Korpus von irgendwie oder mehr

Jochen

irgendwelchen Dokumenten

Jochen

halt in Postgres

Jochen

reinhauen, in Redis reinhauen,

Jochen

in Elasticsearch reinhauen und mal gucken, was

Jochen

sind so die Unterschiede und was macht irgendwie

Jochen

großartig Schmerzen und was halt nicht so

Jochen

was ist angenehm. Gut, dass du das jetzt

Dominik

bei einer Stunde dreißig gesagt hast, wo vielleicht

Dominik

einige Hörer schon eingeschlafen sind.

Dominik

Aber das Versprechen

Dominik

ist aufgeschrieben.

Jochen

Ja, vielleicht, genau.

Jochen

sag ich nochmal Bescheid, also ich meine,

Jochen

es ist auch teilweise nicht so einfach, bei Django ist es so,

Jochen

dass es halt, wenn man da einfach nur das macht, was

Jochen

in der Dokumentation steht, funktioniert es auch nicht so richtig.

Jochen

Das ist schon so ein bisschen

Jochen

hakliger, ja.

Jochen

Aber das

Jochen

muss ich mir nochmal,

Jochen

muss ich mir auch nochmal genau angucken.

Dominik

Ja, da ist ja Fragen, das verabschiede ich dir gerne mit der E-Mail,

Dominik

hallo at pythonpodcast.de. Ich würde sagen,

Dominik

wir sind aber jetzt mit der Suche so quasi

Dominik

durch und wollten jetzt noch

Dominik

ein bisschen Woche machen und so.

Dominik

Oder hast du noch was, was du zur Suche sagen willst?

Dominik

Ja.

Dominik

Gut.

Dominik

Ja, ich nehme jetzt deinen Blick weg.

Dominik

Den musst du später machen.

Dominik

Armin Ronacher von Flask, der Mensch, der Creator,

Dominik

hat etwas Schönes vorgestellt

Dominik

und hat da einen kleinen Patch eingebaut.

Dominik

Das heißt, er nimmt einfach die Build-Ins

Dominik

und packt da Drachen dran.

Dominik

Und zwar True, False und Null, jeweils in klein geschrieben.

Dominik

setzt sie auf True, False und Null.

Dominik

Und dann kann man einfach

Dominik

JSON lesen.

Dominik

Ja, beziehungsweise halt reinpasten.

Dominik

Ja, genau, also basen und das ist direkt ein Dictionary-Objekt.

Dominik

Das ist schon relativ interessant.

Dominik

Das ist schon eine gute Idee.

Dominik

Ich wusste gar nicht, dass man das so machen kann und

Jochen

war so, das geht, aber

Dominik

cool. Der erste Kommentar über

Dominik

diesen Twitter-Feed, von dem du das gefunden hast,

Dominik

ist übrigens, I strongly recommend not doing this,

Dominik

it opens up a huge security hole.

Dominik

Ja, ja.

Dominik

Das ist völlig überbewertet.

Dominik

Aber ja, es ist sehr interessant und

Dominik

lustige Sachen sind da möglich, wenn man

Dominik

was wie die Build-ins einfach überschreibt.

Dominik

Also ich habe

Dominik

diesmal tatsächlich kein Modul

Dominik

zum Picken, aber ich habe ein wunderschönes GitHub-Repository

Dominik

entdeckt, was The Algorithms

Dominik

heißt und da gibt es einen

Dominik

Folder mit Python. Da gibt es quasi

Dominik

alle Algorithmen, die man so

Dominik

irgendwie mal für Python gebaut hat. Die sind jetzt alle

Dominik

nicht perfekt implementiert oder

Dominik

besonders schnell, aber man sieht

Dominik

so ein bisschen, wie das Prinzip dahinter steckt.

Dominik

Also, ob ihr jetzt Suchalgorithmen habt,

Dominik

Suchalgorithmen, ja, oder Sortieralgorithmen,

Dominik

oder für Webpringing, oder Matrizen,

Dominik

oder mathematische Sachen, und Machine Learning,

Dominik

oder Algebra, oder wie man mit Images was macht,

Dominik

wie man Hashes errechnet, oder so,

Dominik

welche gut sein sollen.

Dominik

So, das steht alles drin.

Dominik

Zahl, Verschlüsselung, Kompression.

Dominik

Könnt ihr euch alles mal angucken, ist eine tolle Bibliothek.

Dominik

Einfach so, Algorithms, Python und GitHub.

Dominik

Sehr interessant.

Dominik

Ach so, und was ich noch fast ganz vergessen habe,

Dominik

wir haben ja letztes Mal über Environments gesprochen.

Dominik

Und ich habe es tatsächlich geschafft, nach ein bisschen Struggle

Dominik

meine Environment, ich habe ja eine große

Dominik

Windows-Entwicklungs-Environment,

Dominik

umzustellen auf PyInfo und Poetry

Dominik

und habe das auch auf GitHub

Dominik

mal dokumentiert, wie das denn eigentlich geht.

Dominik

Falls ihr das irgendwie vorhabt, ich empfehle,

Dominik

wenn ihr das mit Poetry machen wollt, schmeißt alles Python,

Dominik

was ihr schon drauf habt, einmal weg,

Dominik

weil es sonst Hakeligkeiten mit eurem Pfad

Dominik

geben kann. Dann müsst ihr vielleicht auch einmal komplett aufräumen

Dominik

und putzen, weil

Dominik

die Dementierung

Dominik

PyInfo,

Dominik

das so ein bisschen komisch löst, die wird eure

Dominik

ja, Windows-Libraries

Dominik

mit einem grafischen Installer

Dominik

dann installieren, also die Python-Version,

Dominik

dass das ein bisschen anstrengend, aber dann passiert das alles automatisch

Dominik

und ihr habt diesen ganzen Struggle nicht

Dominik

und dann könnt ihr Portree und PyEnv

Dominik

wunderbar kombinieren, auch mit

Dominik

ja, eurer PowerShell.

Dominik

Es geht aber leider nicht so gut mit Toko, also nehmt nicht

Dominik

die Toko-Version, sondern versucht das, aber das GitHub-Repository

Dominik

zu ziehen, kann ich empfehlen. Ich hab da auch ein paar

Dominik

Skripte geschrieben, die das automatischer machen können.

Dominik

Wollte ich noch mal so kurz

Dominik

für die Menschen, die tatsächlich noch

Dominik

mit Windows arbeiten. Ich habe

Dominik

in NixOS reingeschaut, das gefällt mir

Jochen

richtig gut. Ja, das ist auch eine sehr coole Idee.

Jochen

Ja, dann bin ich

Dominik

aber noch dabei, meine Price Implementierung zu bauen. Mal gucken,

Dominik

ob ich das so

Dominik

weiterführe.

Dominik

Ja, aber das hat relativ wenig mit Suchmaschinen zu tun. Aber das war

Dominik

so für den Pick der Woche. Haben wir irgendwas vergessen?

Dominik

Ja,

Dominik

mir ist jetzt doch eingefallen,

Jochen

in dem Moment, wo ich gesagt habe, so haben wir nicht noch irgendwas vergessen.

Jochen

Ich hatte schon das Gefühl, wir haben irgendwas vergessen.

Jochen

Ja, haben wir auch. Aber egal.

Jochen

Und zwar gibt es halt noch ein ganz

Jochen

nicht unerheblich großen Teil

Jochen

Volltext

Jochen

suche, wo es nicht um Dinge

Jochen

geht, die jetzt

Jochen

ja so

Jochen

traditionellerweise da so, also

Jochen

dass man Queries hat, die man so gut in Tokens zerlegen kann

Jochen

oder wo man halt Tokens

Jochen

sucht,

Jochen

sondern

Jochen

solche Sachen wie

Jochen

Autocomplete in der Suchbox

Jochen

oder wo man

Jochen

halt einfach nur ein paar Buchstaben hat und möchte das

Jochen

halt finden.

Jochen

oder man möchte halt irgendwie

Jochen

einen Teil von einem Wort finden, irgendwo drin.

Jochen

Und das ist halt nochmal so

Jochen

ein bisschen anderes Problem und braucht halt ein bisschen

Jochen

andere Datenstrukturen dafür.

Jochen

Und

Jochen

ja, das

Jochen

vielleicht machen wir das auch einfach mal in anderen

Jochen

Szenen.

Jochen

Machen wir dieses Fass nicht nochmal auf.

Jochen

Aber das hätte eigentlich eventuell auch noch dazu

Jochen

gehört, weil das ist auch ein nicht unerheblich großer Teil,

Jochen

der halt auch im Grunde

Jochen

Es ist ja auch Volltext-Suche,

Jochen

das ist nur ein bisschen anders.

Jochen

Ja, okay.

Jochen

Naja.

Jochen

Ja, dann das nächste Mal.

Jochen

Also wenn ihr Fragen dazu habt,

Jochen

dann gerne wieder an

Jochen

highlightpricepodcast.de,

Jochen

das haben wir schon vorhin gesagt.

Dominik

Mögt uns und folgt uns auf allen Dingen,

Dominik

die wir so posten.

Dominik

Schreibt uns, freut uns auf euch.

Dominik

Bleibt uns gewogen,

Dominik

hört uns immer morgens, mittags, nachts, abends.

Dominik

Und ja, bis zum nächsten Mal.

Dominik

Jo, alles klar.

Dominik

Jo, tschüss.