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
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
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
160
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.4k
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
240
Context Engineeringの取り組み
nutslove
0
360
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
120
Webhook best practices for rock solid and resilient deployments
glaforge
2
300
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
180
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.5k
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
260
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
240
登壇駆動学習のすすめ — CfPのネタの見つけ方と書くときに意識していること
bicstone
3
120
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
200
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
How to make the Groovebox
asonas
2
1.9k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
120
The browser strikes back
jonoalderson
0
390
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
53
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
69
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
260
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
220
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
130
Git: the NoSQL Database
bkeepers
PRO
432
66k
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