Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ungefähr Populär
Search
Tobias Kässmann
June 29, 2016
Technology
0
180
Ungefähr Populär
Trackingdaten zur Sortierung von Suchergebnissen nutzen
Tobias Kässmann
June 29, 2016
Tweet
Share
More Decks by Tobias Kässmann
See All by Tobias Kässmann
Don't just sit there - start search
tkaessmann
0
890
Gain speed and space / precision with NLP in Solr
tkaessmann
0
70
Clustering your e-commerce products (in Solr)
tkaessmann
0
1.2k
Other Decks in Technology
See All in Technology
現代CSSフレームワークの内部実装とその仕組み
poteboy
7
3.6k
ServiceNow Knowledge Learning Rise up
manarobot
0
210
Building a RAG-poweredAI chat appwith Python and VS Code
pamelafox
0
100
ChatGPT for IT Service Management (IT Pro)
dahatake
7
1.6k
Cypress or Playwright?
rainerhahnekamp
0
110
MapLibreとAmazon Location Service
dayjournal
1
160
Vertex AI を中心に 生成AIのアップデートを共有します
kaz1437
0
310
Google Cloud の AI を支える裏側のインフラを垣間見る!
maroon1st
0
360
Java EE/Jakarta EEの現状と将来―クラウドネイティブ時代にJava EEは対応できるのか?―
takakiyo
1
170
APIファーストなプロダクトマネジメントの実践 〜SaaSus Platformでの例〜 / "Practicing API-First Product Management - An Example with SaaSus Platform
oztick139
0
110
GrafanaMeetup_AmazonManagedGrafanaのアクセス制御機能とマルチテナント環境下でのアクセス制御について
daitak
0
250
Cracking the KubeCon CfP
inductor
2
250
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
319
37k
In The Pink: A Labor of Love
frogandcode
138
21k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
Side Projects
sachag
451
41k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
2
3.4k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
19
1.7k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
116
18k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
121
39k
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
KATA
mclloyd
15
12k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
Transcript
Ungefähr populär Jörg Rathlev & Tobias Kässmann Trackingdaten zur Sortierung
von Suchergebnissen nutzen
None
None
< 3M 100M Zeit Produkte we are here
Sonstiges 20 % Suche 80 %
vs.
• Global • pro Portal • pro Suchanfrage • …
rock hose tv jeans 129 64 202 98 120 …
…
None
Bloomfilter Zugehörigkeit zu Mengen
0 0 0 0 0 0 0 0 0 0
0 1 0 1 0 0 0 0 0 1
„Otto“ hash1 hash2 hash3
0 1 1 1 0 1 0 0 0 1
„OGdev“ hash1 hash2 hash3
0 1 1 1 0 1 0 0 0 1
„OGdev“ hash1 hash2 hash3 Wenn alle Werte Eins sind, ist das Wort wahrscheinlich in der Menge enthalten
0 1 1 1 0 1 0 0 0 1
„Kollision“ hash1 hash2 hash3 Kollisionen bei allen Hash- Funktionen führen zu falsch positiven Antworten
0 1 1 1 0 1 0 0 0 1
„Test“ hash1 hash2 hash3 Wenn an mindestens einer Stelle eine Null steht, ist das Wort definitiv nicht enthalten
Demo
Bloom-Filter: Eigenschaften • Konstante Speichergröße • Konstante Zugriffszeit (Einfügen &
Abfrage) • Falsch positive Antworten möglich; negative Antworten sind exakt • Elemente können nicht entfernt werden
Bloom-Filter: Parameter • Anzahl Hash-Funktionen (k) • Größe des Bitsets
(m) • Wahrscheinlichkeit falsch positiver Antworten: 1 − 1 − 1 m kn k
Guava Library BloomFilter<Thing> filter = BloomFilter.create(funnel, 100, 0.01); filter.put(element); if
(filter.mightContain(element)) { … } Hash-Funktion erwartete Anzahl Elemente Falsch-Positiv-Rate
Bloom-Filter: Anwendungsfälle • Langsame Zugriffe auf nicht existierende Elemente vermeiden
• Elemente erst beim zweiten Zugriff in einen Cache einfügen • …
Count-Min-Sketch Zählung von Häufigkeit
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3
0 0 1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 3 „Otto“ hash1 hash2 hash3
0 0 2 0 0 0 0 0 0 0
0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 2 3 „Otto“ hash1 hash2 hash3
0 0 2 0 0 0 0 0 1 0
0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 2 1 2 3 „OGdev“ hash2 hash1 hash3
0 0 3 0 0 0 0 0 1 0
0 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 2 1 2 3 „Kollision“ hash1 hash2 hash3
0 0 3 0 0 0 0 0 1 0
0 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 2 1 2 3 „Otto“ hash1 hash2 hash3 3 2 2
0 0 3 0 0 0 0 0 1 0
0 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 2 1 2 3 „Otto“ hash1 hash2 hash3 3 2 2 min=2
0 0 3 0 0 0 0 0 1 0
0 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 2 1 2 3 „OGdev“ 1 1 2 min=1 hash1 hash2 hash3
Count-Min-Sketch: Eigenschaften • Konstante Speichergröße • Konstante Zugriffszeit (Einfügen &
Abfrage) • Ausgelesener Wert ist möglicherweise zu hoch, aber nicht zu niedrig • Elemente können nicht entfernt werden
Count-Min-Sketch: Parameter • Tiefe (Anzahl Hash-Funktionen) • Breite (Anzahl Werte
pro Zeile) • Auswahl über akzeptierte Abweichung mit Konfidenz (max. ε Abweichung mit Wahrscheinlichkeit p)
None
Relevanz Zeit
Exponentielles Abstrafen
Search Technology Meetup Hamburg