t o m m y h i l f i g e r looking for - joker

115
Mikhail Khludnev Principal Engineer [email protected] Looking for T O M M Y H I L F I G E R http://mokkomikko.blogspot.ru/2012/10/tommy-hilfiger-men-fallwinter-2012.html

Upload: others

Post on 07-Jun-2022

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: T O M M Y H I L F I G E R Looking for - Joker

Mikhail KhludnevPrincipal [email protected]

Looking for T O M M Y H I L F I G E R

http://mokkomikko.blogspot.ru/2012/10/tommy-hilfiger-men-fallwinter-2012.html

Page 5: T O M M Y H I L F I G E R Looking for - Joker
Page 6: T O M M Y H I L F I G E R Looking for - Joker
Page 9: T O M M Y H I L F I G E R Looking for - Joker

http://nlp.stanford.edu/IR-book/

"lorem" "ipsum" "dolor""sit" "amet" "consectetur"

Page 10: T O M M Y H I L F I G E R Looking for - Joker

http://nlp.stanford.edu/IR-book/

"lorem" "ipsum" "dolor""sit" "amet" "consectetur"

O(n)

Page 11: T O M M Y H I L F I G E R Looking for - Joker

http://nlp.stanford.edu/IR-book/

"lorem" "ipsum" "dolor""sit" "amet" "consectetur"

OOME

Page 12: T O M M Y H I L F I G E R Looking for - Joker

http://hdwallpaper.ws/2667/

Page 13: T O M M Y H I L F I G E R Looking for - Joker

RDBMS

ID BRAND SIZE COLOR

23 Adidas XL Blue

45 Reebok M Red

61 Nike XL Red

Page 14: T O M M Y H I L F I G E R Looking for - Joker

ID BRAND SIZE COLOR

23 Adidas XL Blue

45 Reebok M Red

61 Nike XL Red

INSERT INTO .. VALUES

(17, ‘Tommy Hilfiger’, ‘S’, ‘White’)

Page 15: T O M M Y H I L F I G E R Looking for - Joker

ID BRAND SIZE COLOR

23 Adidas XL Blue

45 Reebok M Red

61 Nike XL Red

17 Tommy Hilfiger S White

INSERT INTO .. VALUES

(17, ‘Tommy Hilfiger’, ‘S’, ‘White’)

Page 16: T O M M Y H I L F I G E R Looking for - Joker

ID BRAND SIZE COLOR

23 Adidas XL Blue

45 Reebok M Red

61 Nike XL Red

17 Tommy Hilfiger S White

SELECT * FROM ..

WHERE SIZE=’XL’

Page 17: T O M M Y H I L F I G E R Looking for - Joker

ID BRAND SIZE COLOR

23 Adidas XL Blue

45 Reebok M Red

61 Nike XL Red

17 Tommy Hilfiger S White

SELECT * FROM ..

WHERE SIZE=’XL’

Page 18: T O M M Y H I L F I G E R Looking for - Joker

ID BRAND SIZE COLOR

23 Adidas XL Blue

45 Reebok M Red

61 Nike XL Red

17 Tommy Hilfiger S White

SELECT * FROM ..

WHERE SIZE=’XL’

Page 19: T O M M Y H I L F I G E R Looking for - Joker

ID BRAND SIZE COLOR

23 Adidas XL Blue

45 Reebok M Red

61 Nike XL Red

17 Tommy Hilfiger S White

SELECT * FROM ..

WHERE SIZE=’XL’

Page 20: T O M M Y H I L F I G E R Looking for - Joker

ID BRAND SIZE COLOR

23 Adidas XL Blue

45 Reebok M Red

61 Nike XL Red

17 Tommy Hilfiger S White

SELECT * FROM ..

WHERE SIZE=’XL’

Page 21: T O M M Y H I L F I G E R Looking for - Joker
Page 22: T O M M Y H I L F I G E R Looking for - Joker

ID BRAND SIZE COLOR

23 Adidas XL Blue

45 Reebok M Red

61 Nike XL Red

17 Tommy Hilfiger S White

CREATE INDEX SIZE_FK

ON .. (SIZE)

S

M XLL

Page 23: T O M M Y H I L F I G E R Looking for - Joker

ID BRAND SIZE COLOR

23 Adidas XL Blue

45 Reebok M Red

61 Nike XL Red

17 Tommy Hilfiger S White

SELECT * FROM ..

WHERE SIZE=’XL’ AND COLOR=’Red’

Page 24: T O M M Y H I L F I G E R Looking for - Joker

ID BRAND SIZE COLOR

23 Adidas XL Blue

45 Reebok M Red

61 Nike XL Red

17 Tommy Hilfiger S White

SELECT * FROM ..

WHERE SIZE=’XL’ AND COLOR=’Red’

M XLL

S

B W

R

Page 25: T O M M Y H I L F I G E R Looking for - Joker

SELECT * FROM ..

WHERE SIZE=’XL’ AND COLOR=’Red’

CREATE INDEX SIZE_COLOR_FK

ON .. (SIZE, COLOR)

S x W

XL x B XL x RXL x B

Page 26: T O M M Y H I L F I G E R Looking for - Joker

Inverted Index

Page 27: T O M M Y H I L F I G E R Looking for - Joker

T[0] = "it is what it is"T[1] = "what is it"T[2] = "it is a banana"

Page 28: T O M M Y H I L F I G E R Looking for - Joker

"a": {2}"banana": {2}"is": {0, 1, 2}"it": {0, 1, 2}"what": {0, 1}

T[0] = "it is what it is"T[1] = "what is it"T[2] = "it is a banana"

Page 29: T O M M Y H I L F I G E R Looking for - Joker

"a": {2}"banana": {2}"is": {0, 1, 2}"it": {0, 1, 2}"what": {0, 1} postings list

term dictionary

Page 30: T O M M Y H I L F I G E R Looking for - Joker

"a" "banana""is""it""what"

{2}{2}{0, 1, 2}{0, 1, 2}{0, 1}

index/_1.tis

index/_1.frq

Page 32: T O M M Y H I L F I G E R Looking for - Joker

What is a Scorer?

Page 33: T O M M Y H I L F I G E R Looking for - Joker

"a": {2}"banana": {2}"is": {0, 1, 2}"it": {0, 1, 2}"what": {0, 1}

Page 34: T O M M Y H I L F I G E R Looking for - Joker

"a": {2}"banana": {2}"is": {0, 1, 2}"it": {0, 1, 2}"what": {0, 1}

Page 35: T O M M Y H I L F I G E R Looking for - Joker

"a": {2}"banana": {2}"is": {0, 1, 2}"it": {0, 1, 2}"what": {0, 1}

Page 36: T O M M Y H I L F I G E R Looking for - Joker
Page 37: T O M M Y H I L F I G E R Looking for - Joker
Page 38: T O M M Y H I L F I G E R Looking for - Joker

while(

(doc = nextDoc())!=NO_MORE_DOCS){

println("found "+ doc +

" with score "+score());

}

Page 39: T O M M Y H I L F I G E R Looking for - Joker
Page 40: T O M M Y H I L F I G E R Looking for - Joker
Page 41: T O M M Y H I L F I G E R Looking for - Joker

Note: Weight is omitted for sake of compactness

Page 42: T O M M Y H I L F I G E R Looking for - Joker
Page 44: T O M M Y H I L F I G E R Looking for - Joker

Doc-at-time search

Page 45: T O M M Y H I L F I G E R Looking for - Joker

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"it": {0, 1, 2}

"what": {0, 1}

what OR is OR a OR banana

Page 46: T O M M Y H I L F I G E R Looking for - Joker

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"it": {0, 1, 2}

"what": {0, 1}

what OR is OR a OR banana

Page 47: T O M M Y H I L F I G E R Looking for - Joker

"is": {0, 1, 2}

"what": {0, 1}

"a": {2}

"banana": {2}

"it": {0, 1, 2}

Page 48: T O M M Y H I L F I G E R Looking for - Joker

"is": {0, 1, 2}

"what": {0, 1}

"a": {2}

"banana": {2}

collect(0)score():2

Collector

Page 49: T O M M Y H I L F I G E R Looking for - Joker

"is": {0, 1, 2}

"what": {0, 1}

"a": {2}

"banana": {2}

docID×score0×2

Page 50: T O M M Y H I L F I G E R Looking for - Joker

"is": {0, 1, 2}

"what": {0, 1}

"a": {2}

"banana": {2}

collect(1)score():2

Collector0×2

Page 51: T O M M Y H I L F I G E R Looking for - Joker

"is": {0, 1, 2}

"what": {0, 1}

"a": {2}

"banana": {2}

Collector0×21×2

Page 52: T O M M Y H I L F I G E R Looking for - Joker

"is": {0, 1, 2}

"a": {2}

"banana": {2}

"what": {0, 1}collect(2)score():3

Collector0×21×2

Page 53: T O M M Y H I L F I G E R Looking for - Joker

"is": {0, 1, 2}

"a": {2}

"banana": {2}

"what": {0, 1}

Collector2×30×21×2

Page 54: T O M M Y H I L F I G E R Looking for - Joker

Term-at-time search"lorem" "ipsum" "dolor""sit" "amet" "consectetur"

Page 55: T O M M Y H I L F I G E R Looking for - Joker

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"it": {0, 1, 2}

"what": {0, 1}

what OR is OR a OR banana

Page 56: T O M M Y H I L F I G E R Looking for - Joker

Accumulator... 0×1 ... 1×1 ...

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"it": {0, 1, 2}

"what": {0, 1}

Page 57: T O M M Y H I L F I G E R Looking for - Joker

Accumulator... 0×2 ... 1×2 ... 2×1 ...

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"it": {0, 1, 2}

"what": {0, 1}

Page 58: T O M M Y H I L F I G E R Looking for - Joker

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"it": {0, 1, 2}

"what": {0, 1}

Accumulator... 0×2 ... 1×2 ... 2×2 ...

Page 59: T O M M Y H I L F I G E R Looking for - Joker

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"it": {0, 1, 2}

"what": {0, 1}

Accumulator... 0x2 ... 1x2 ... 2x3 ...

Page 60: T O M M Y H I L F I G E R Looking for - Joker

Accumulator... 0×2 ... 1×2 ... 2×3 ...

Collector2×30×21×2

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"it": {0, 1, 2}

"what": {0, 1}

Page 61: T O M M Y H I L F I G E R Looking for - Joker

http://nlp.stanford.edu/IR-book/

"lorem" "ipsum" "dolor""sit" "amet" "consectetur"

O(n)

Page 62: T O M M Y H I L F I G E R Looking for - Joker

1×97×92×72×59×56×4......≤4......

k

n

Page 64: T O M M Y H I L F I G E R Looking for - Joker

6×4

log k 9×5 2×4

2×7 7×9 1×9

...

...≤4......

n

Page 65: T O M M Y H I L F I G E R Looking for - Joker

q

p

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"it": {0, 1, 2}

"what": {0, 1}

what OR is OR a OR banana

Page 66: T O M M Y H I L F I G E R Looking for - Joker

doc at time term at time

complexity

memory

Page 67: T O M M Y H I L F I G E R Looking for - Joker

doc at time term at time

complexity O(p + n log k)

memory

Page 68: T O M M Y H I L F I G E R Looking for - Joker

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"what": {0, 1}

q1

1 2

2

Page 69: T O M M Y H I L F I G E R Looking for - Joker

doc at time term at time

complexity O(p log q + n log k) O(p + n log k)

memory

Page 70: T O M M Y H I L F I G E R Looking for - Joker

doc at time term at time

complexity O(p log q + n log k) O(p + n log k)

memory q + k

Page 71: T O M M Y H I L F I G E R Looking for - Joker

doc at time term at time

complexity O(p log q + n log k) O(p + n log k)

memory q + k n

Page 72: T O M M Y H I L F I G E R Looking for - Joker
Page 73: T O M M Y H I L F I G E R Looking for - Joker

q=village OR operations OR years OR disaster OR visit

Page 74: T O M M Y H I L F I G E R Looking for - Joker

q=village OR operations OR years OR disaster OR visit OR etc OR map OR seventieth OR peneplains OR tussock OR sir OR memory OR character OR campaign OR author OR public OR wonder OR forker OR middy OR vocalize OR enable OR race OR object OR signal OR symptom OR deputy OR where OR typhous OR rectifiable OR polygamous OR originally OR look OR generation OR ultimately OR reasonably OR ratio OR numb OR apposing OR enroll OR manhood OR problem OR suddenly OR definitely OR corp OR event OR material

Page 75: T O M M Y H I L F I G E R Looking for - Joker

q=village AND operations AND years AND disaster AND visit

Page 76: T O M M Y H I L F I G E R Looking for - Joker

Conjunction(+, MUST, AND)

Page 77: T O M M Y H I L F I G E R Looking for - Joker

"a": {2,3}

"banana": {2,3}

"is": {0, 1, 2, 3}

"it": {0, 1, 3}

"what": {0, 1, 3}

what AND is AND a AND it

Page 78: T O M M Y H I L F I G E R Looking for - Joker

"a": {2,3}

"banana": {2,3}

"is": {0, 1, 2, 3}

"it": {0, 1, 3}

"what": {0, 1, 3}

Page 79: T O M M Y H I L F I G E R Looking for - Joker

"a": {2,3}

"banana": {2,3}

"is": {0, 1, 2, 3}

"it": {0, 1, 3}

"what": {0, 1, 3}

Page 80: T O M M Y H I L F I G E R Looking for - Joker

"a": {2,3}

"banana": {2,3}

"is": {0, 1, 2, 3}

"it": {0, 1, 3}

"what": {0, 1, 3}

Page 81: T O M M Y H I L F I G E R Looking for - Joker

"a": {2,3}

"banana": {2,3}

"is": {0, 1, 2, 3}

"it": {0, 1, 3}

"what": {0, 1, 3}

Page 82: T O M M Y H I L F I G E R Looking for - Joker

"a": {2,3}

"banana": {2,3}

"is": {0, 1, 2, 3}

"it": {0, 1, 3}

"what": {0, 1, 3}Collector

3 x 4

Page 83: T O M M Y H I L F I G E R Looking for - Joker

http://www.flickr.com/photos/fatniu/184615348/

Page 84: T O M M Y H I L F I G E R Looking for - Joker

Ω(n q + n log k)

Page 85: T O M M Y H I L F I G E R Looking for - Joker

Wrap-up● doc-at-time vs term-at-time

● conjunction & leapfrog

Page 86: T O M M Y H I L F I G E R Looking for - Joker

complexity O(n)

memory O(const)

Page 87: T O M M Y H I L F I G E R Looking for - Joker

One War Story

finally

http://www.aboutww2militaria.com/Febr2011/M40_helmet%20%281%29.jpg

Page 88: T O M M Y H I L F I G E R Looking for - Joker
Page 89: T O M M Y H I L F I G E R Looking for - Joker
Page 90: T O M M Y H I L F I G E R Looking for - Joker

http://localhost:8983/solr/collection1/select?q=

(operations OR years OR disaster OR visit OR etc OR

map OR seventieth OR peneplains OR tussock OR sir

OR memory OR character OR campaign OR author OR

public OR wonder OR forker OR middy OR vocalize OR

enable OR race OR object OR signal OR symptom OR

deputy OR where OR typhous OR rectifiable OR

polygamous OR originally OR look OR generation OR

ultimately OR reasonably OR ratio OR numb OR

apposing OR enroll OR manhood OR problem) ...

Page 91: T O M M Y H I L F I G E R Looking for - Joker

http://localhost:8983/solr/collection1/select?q=

(operations OR years OR disaster OR visit OR etc OR

map OR seventieth OR peneplains OR tussock OR sir

OR memory OR character OR campaign OR author OR

public OR wonder OR forker OR middy OR vocalize OR

enable OR race OR object OR signal OR symptom OR

deputy OR where OR typhous OR rectifiable OR

polygamous OR originally OR look OR generation OR

ultimately OR reasonably OR ratio OR numb OR

apposing OR enroll OR manhood OR problem) …

AND (id:yes_49912894 OR id:nurse_30134968)

Page 92: T O M M Y H I L F I G E R Looking for - Joker

http://localhost:8983/solr/collection1/select?q=

(operations OR years OR disaster OR visit OR etc OR

map OR seventieth OR peneplains OR tussock OR sir

OR memory OR character OR campaign OR author OR

public OR wonder OR forker OR middy OR vocalize OR

enable OR race OR object OR signal OR symptom OR

deputy OR where OR typhous OR rectifiable OR

polygamous OR originally OR look OR generation OR

ultimately OR reasonably OR ratio OR numb OR

apposing OR enroll OR manhood OR problem) ...

AND (id:yes_49912894 OR id:nurse_30134968)

&mm=32&...

Page 93: T O M M Y H I L F I G E R Looking for - Joker

straight jeans

silver jeans

silver jeans straight

jeans

silver

minShouldMatch=2

straight silver jeans

Page 94: T O M M Y H I L F I G E R Looking for - Joker

int nextDoc() {while(true) {

while (subScorers[0].docID() == doc) { if (subScorers[0].nextDoc() != NO_DOCS) { heapAdjust(0); } else { .... } } ... if (nrMatchers >= minimumNrMatchers) { break; }

}return doc;

}

org.apache.lucene.search.DisjunctionSumScorer

Page 95: T O M M Y H I L F I G E R Looking for - Joker
Page 96: T O M M Y H I L F I G E R Looking for - Joker

{1, 3, 7, 10, 27,30,..}

{3, 5, 10, 27,32,..}

{ 20,27,31,..}

mm=3 { 30,37,..}

Page 97: T O M M Y H I L F I G E R Looking for - Joker

{1, 3, 7, 10, 27,30,..}

{3, 5, 10, 27,32,..}

{ 20,27,31,..}

mm=3 { 30,37,..}

Page 98: T O M M Y H I L F I G E R Looking for - Joker

{1, 3, 7, 10, 27,30,..}

{3, 5, 10, 27,32,..}

{ 20,27,31,..}

mm=3 { 30,37,..}

Page 99: T O M M Y H I L F I G E R Looking for - Joker

{1, 3, 7, 10, 27,30,..}

{3, 5, 10, 27,32,..}

{ 20,27,31,..}

mm=3 { 30,37,..}

Page 100: T O M M Y H I L F I G E R Looking for - Joker

{1, 3, 7, 10, 27,30,..}

{3, 5, 10, 27,32,..}

{ 20,27,31,..}

mm=3 { 30,37,..}

Page 101: T O M M Y H I L F I G E R Looking for - Joker
Page 102: T O M M Y H I L F I G E R Looking for - Joker
Page 103: T O M M Y H I L F I G E R Looking for - Joker
Page 104: T O M M Y H I L F I G E R Looking for - Joker
Page 105: T O M M Y H I L F I G E R Looking for - Joker
Page 106: T O M M Y H I L F I G E R Looking for - Joker

http://goo.gl/7q8nHmMikhail KhludnevPrincipal [email protected]

Page 107: T O M M Y H I L F I G E R Looking for - Joker

BooleanScorer

term at time

Page 108: T O M M Y H I L F I G E R Looking for - Joker

×1

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"it": {0, 1, 2}

"what": {0, 1}

Hashtable[2]

org.apache.lucene.search.BooleanScorer

×1 0 1

chunk

Page 109: T O M M Y H I L F I G E R Looking for - Joker

x2

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"it": {0, 1, 2}

"what": {0, 1}

org.apache.lucene.search.BooleanScorer

x2 0 1

chunk

Page 110: T O M M Y H I L F I G E R Looking for - Joker

org.apache.lucene.search

Collector0×21×2×2 ×2

0 1

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"it": {0, 1, 2}

"what": {0, 1}

Page 111: T O M M Y H I L F I G E R Looking for - Joker

org.apache.lucene.search

Collector0×21×2×1

0 1

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"it": {0, 1, 2}

"what": {0, 1}

Page 112: T O M M Y H I L F I G E R Looking for - Joker

org.apache.lucene.search

Collector0×21×2×2

0 1

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"it": {0, 1, 2}

"what": {0, 1}

Page 113: T O M M Y H I L F I G E R Looking for - Joker

org.apache.lucene.search

Collector0×21×2×3

0 1

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"it": {0, 1, 2}

"what": {0, 1}

Page 114: T O M M Y H I L F I G E R Looking for - Joker

org.apache.lucene.search

Collector2×30×21×2

×3

0 1

"a": {2}

"banana": {2}

"is": {0, 1, 2}

"it": {0, 1, 2}

"what": {0, 1}

Page 115: T O M M Y H I L F I G E R Looking for - Joker

Linked Open Hash [2K]

×1 ×1 ×5 ×2 ×2

0 1 2 3 4 5 6 7

×3