Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
210
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
950
Gain speed and space / precision with NLP in Solr
tkaessmann
0
85
Clustering your e-commerce products (in Solr)
tkaessmann
0
1.3k
Other Decks in Technology
See All in Technology
AWS re:Invent 2025で見たGrafana最新機能の紹介
hamadakoji
0
120
ログ管理の新たな可能性?CloudWatchの新機能をご紹介
ikumi_ono
0
470
Agentic AI Patterns and Anti-Patterns
glaforge
1
200
【pmconf2025】PdMの「責任感」がチームを弱くする?「分業型」から全員がユーザー価値に本気で向き合う「共創型開発チーム」への変遷
toshimasa012345
0
270
“決まらない”NSM設計への処方箋 〜ビットキーにおける現実的な指標デザイン事例〜 / A Prescription for "Stuck" NSM Design: Bitkey’s Practical Case Study
bitkey
PRO
1
580
モダンデータスタック (MDS) の話とデータ分析が起こすビジネス変革
sutotakeshi
0
410
Karate+Database RiderによるAPI自動テスト導入工数をCline+GitLab MCPを使って2割削減を目指す! / 20251206 Kazuki Takahashi
shift_evolve
PRO
1
470
今からでも間に合う!速習Devin入門とその活用方法
ismk
1
430
グレートファイアウォールを自宅に建てよう
ctes091x
0
140
新 Security HubがついにGA!仕組みや料金を深堀り #AWSreInvent #regrowth / AWS Security Hub Advanced GA
masahirokawahara
1
1.4k
生成AI時代の自動E2Eテスト運用とPlaywright実践知_引持力哉
legalontechnologies
PRO
0
210
AWS CLIの新しい認証情報設定方法aws loginコマンドの実態
wkm2
2
300
Featured
See All Featured
Visualization
eitanlees
150
16k
Optimizing for Happiness
mojombo
379
70k
RailsConf 2023
tenderlove
30
1.3k
Embracing the Ebb and Flow
colly
88
4.9k
Bash Introduction
62gerente
615
210k
Statistics for Hackers
jakevdp
799
230k
Thoughts on Productivity
jonyablonski
73
5k
Facilitating Awesome Meetings
lara
57
6.7k
Raft: Consensus for Rubyists
vanstee
141
7.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
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