SlideShare une entreprise Scribd logo
1  sur  171
Télécharger pour lire hors ligne
WRITING CUSTOM QUERIES: SCORERS'
DIVERSITY AND TRAPS
Mikhail Khludnev
Principal Engineer,
eCommerce Search Team
mkhludnev@griddynamics.com
http://goo.gl/7LJFi
Custom
Queries
Custom
Queries
Custom
Queries
http://nlp.stanford.edu/IR-book/
Custom
Queries
http://nlp.stanford.edu/IR-book/
Custom
Queries
Match Spotting
http://nlp.stanford.edu/IR-book/
Custom
Queries
Inverted Index
T[0] = "it is what it is"
T[1] = "what is it"
T[2] = "it is a banana"
"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"
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1} postings list
What is a Scorer?
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
while(
(doc = nextDoc())!=NO_MORE_DOCS){
println("found "+ doc +
" with score "+score());
}
Note: Weight is omitted for sake of compactness
Custom
Queries
http://nlp.stanford.edu/IR-book/
Doc-at-time search
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
what OR is OR a OR banana
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
what OR is OR a OR banana
"is": {0, 1, 2}
"what": {0, 1}
"a": {2}
"banana": {2}
"it": {0, 1, 2}
"is": {0, 1, 2}
"what": {0, 1}
"a": {2}
"banana": {2}
collect(0)
score():2
Collector
"is": {0, 1, 2}
"what": {0, 1}
"a": {2}
"banana": {2}
docID×score
0×2
"is": {0, 1, 2}
"what": {0, 1}
"a": {2}
"banana": {2}
collect(1)
score():2
Collector
0×2
"is": {0, 1, 2}
"what": {0, 1}
"a": {2}
"banana": {2}
Collector
0×2
1×2
"is": {0, 1, 2}
"a": {2}
"banana": {2}
"what": {0, 1}
collect(2)
score():3
Collector
0×2
1×2
"is": {0, 1, 2}
"a": {2}
"banana": {2}
"what": {0, 1}
Collector
2×3
0×2
1×2
Term-at-time search
see Appendix
doc at time term at time
complexity O(p log q + n log k) O(p + n log k)
memory q + k n
q=village operations years disaster visit etc
map seventieth peneplains tussock sir
memory character campaign author public
wonder forker middy vocalize enable race
object signal symptom deputy where typhous
rectifiable polygamous originally look
generation ultimately reasonably ratio numb
apposing enroll manhood problem suddenly
definitely corp event material affair diploma
would dimout speech notion engine artist
hotel text field hashed rottener impeding i
cricket virtually valley sunday rock come
observes gallnuts vibrantly prize involve
q=village operations years disaster visit
q=+village +operations +years +disaster +visit
Conjunction
(+, MUST)
"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
"a": {2,3}
"banana": {2,3}
"is": {0, 1, 2, 3}
"it": {0, 1, 3}
"what": {0, 1, 3}
"a": {2,3}
"banana": {2,3}
"is": {0, 1, 2, 3}
"it": {0, 1, 3}
"what": {0, 1, 3}
"a": {2,3}
"banana": {2,3}
"is": {0, 1, 2, 3}
"it": {0, 1, 3}
"what": {0, 1, 3}
"a": {2,3}
"banana": {2,3}
"is": {0, 1, 2, 3}
"it": {0, 1, 3}
"what": {0, 1, 3}
"a": {2,3}
"banana": {2,3}
"is": {0, 1, 2, 3}
"it": {0, 1, 3}
"what": {0, 1, 3}
Collector
3 x 4
http://www.flickr.com/photos/fatniu/184615348/
Ω(n q + n log k)
Wrap-up
● doc-at-time vs term-at-time
● leapfrog
Custom
Queries
http://nlp.stanford.edu/IR-book/
Custom Queries
● HelloWorld
● Deeply Branched vs Flat
● Steadiness Problem
● minShouldMatch Performance Problem
● Filtering Performance Problem
"silver" "jeans" "dress"
silver jeans dress
Note: "foo bar" is not a phrase query, just a string
"silver" "jeans" "dress"
"silver jeans dress"
silver jeans dress
"silver" "jeans" "dress"
"silver jeans dress"
"silver jeans" "dress"
"silver" "jeans dress"
silver jeans dress
"silver" "jeans" "dress"
"silver jeans dress"
"silver jeans" "dress"
"silver" "jeans dress"
"silver" "dress"
"silver jeans" "jeans"
"silver jeans"
"jeans" "dress"
silver jeans dress
Note: "foo bar" is not a phrase query, just a string
boolean verifyMatch(){
int sumLength=0;
for(Scorer child:getChildren()){
if(child.docID()==docID()){
TermQuery tq=child.weight.query;
sumLength += tq.term.text.length;
}
}
return sumLength>=expectedLength;
}
Deeply Branched vs Flat
(+"silver jeans" +"dress")
ORmax
(+"silver jeans dress")
ORmax
(+"silver" +(
(+"jeans" +"dress")
ORmax
+"jeans dress"
)
)
ORmax
is DisjunctionMaxQuery
(+"silver jeans" +"dress")
ORmax
(+"silver jeans dress")
ORmax
(+"silver" +(
(+"jeans" +"dress")
ORmax
+"jeans dress"
)
)
ORmax
is DisjunctionMaxQuery
(+"silver jeans" +"dress")
ORmax
(+"silver jeans dress")
ORmax
(+"silver" +(
(+"jeans" +"dress")
ORmax
+"jeans dress"
)
)
ORmax
is DisjunctionMaxQuery
("silver jeans" "dress")
ORmax
("silver jeans dress")
ORmax
("silver" (
("jeans" "dress")
ORmax
"jeans dress"
)
)
ORmax
is DisjunctionMaxQuery
B:"silver jeans dress" ORmax
T:"silver jeans dress" ORmax
S:"silver jeans dress"
B:"silver" ORmax
T:"silver" ORmax
S:"silver"
+
B:"jeans dress" ORmax
T:"jeans dress" ORmax
S:"jeans dress"
+
ORmax
ORmax
ORmax
B:"silver jeans" ORmax
T:"silver jeans" ORmax
S:"silver jeans"
+
B:"dress" ORmax
T:"dress" ORmax
S:"dress"
+
B:"jeans" ORmax
T:"jeans" ORmax
S:"jeans"
+
B:"dress" ORmax
T:"dress" ORmax
S:"dress"
+
B - BRAND
T - TYPE
S - STYLE
B:"silver" T:"silver" S:"silver"
B:"jeans" T:"jeans" S:"jeans"
B:"dress" T:"dress" S:"dress"
B:"silver jeans" T:"silver jeans" S:"silver jeans"
B:"silver jeans dress" T:"silver jeans dress"
S:"silver jeans dress"
B:"jeans dress" T:"jeans dress" S:"jeans dress"
Steadiness problem
AFAIK 3.x only.
{1, 3, 7, 10, 27,30,..}
{3, 5, 10, 27,32,..}
{2,3, 27,31,..}
{..., 30,37,..}
3
3 20
3 30 30
{..., 30, 31,32,..}
{..., 20, 27,32,..}
{1, 3, 7, 10, 27,30,..}
{3, 5, 10, 27,32,..}
{2,3, 27,31,..}
{..., 30,37,..}
5
7 20
27 30 30
{..., 30, 31,32,..}
{..., 20, 27,32,..}
3docID=
3.x
straight jeans
silver jeans
silver jeans straight
jeans
silver
minShouldMatch=2
straight silver jeans
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
{1, 3, 7, 10, 27,30,..}
{3, 5, 10, 27,32,..}
{ 20,27,31,..}
mm=3 { 30,37,..}
{1, 3, 7, 10, 27,30,..}
{3, 5, 10, 27,32,..}
{ 20,27,31,..}
mm=3 { 30,37,..}
{1, 3, 7, 10, 27,30,..}
{3, 5, 10, 27,32,..}
{ 20,27,31,..}
mm=3 { 30,37,..}
{1, 3, 7, 10, 27,30,..}
{3, 5, 10, 27,32,..}
{ 20,27,31,..}
mm=3 { 30,37,..}
{1, 3, 7, 10, 27,30,..}
{3, 5, 10, 27,32,..}
{ 20,27,31,..}
mm=3 { 30,37,..}
Filtering
RANDOM_ACCESS_FILTER_STRATEGY
LEAP_FROG_FILTER_FIRST_STRATEGY
LEAP_FROG_QUERY_FIRST_STRATEGY
QUERY_FIRST_FILTER_STRATEGY
minShouldMatch meets
Filters
http://localhost:8983/solr/collection1/select
?q={!cache=false}village AND village operations years disaster visit etc
map seventieth peneplains tussock sir memory character campaign author
public wonder forker middy vocalize enable race object signal symptom
deputy where typhous rectifiable polygamous originally look generation
ultimately reasonably ratio numb apposing enroll manhood problem
suddenly definitely corp event material affair diploma would dimout speech
notion engine artist hotel text field hashed rottener impeding i cricket
virtually valley sunday rock come observes gallnuts vibrantly prize involve
explanation module&
qf=text_all&
defType=edismax&
mm=32&
fq= id:yes_49912894 id:nurse_30134968
CONFERENCE PARTY
The Tipsy Crow: 770 5th Ave
Starts after Stump The Chump
Your conference badge gets
you in the door
TOMORROW
Breakfast starts at 7:30
Keynotes start at 8:30
CONTACT
Mikhail Khludnev
mkhludnev@griddynamics.com
http://goo.gl/7LJFi
Appendixes
● Term-at-time search in Lucene/Solr
● Derivation of the search complexity
● Match Spotting
● Drill Sideways Facets
Appendix B
Term-at-time Search
in Lucene
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
what OR is OR a OR banana
Accumulator
... 0×1 ... 1×1 ...
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
Accumulator
... 0×2 ... 1×2 ... 2×1 ...
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
Accumulator
... 0×2 ... 1×2 ... 2×2 ...
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
Accumulator
... 0x2 ... 1x2 ... 2x3 ...
Accumulator
... 0×2 ... 1×2 ... 2×3 ...
Collector
2×3
0×2
1×2
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
BooleanScorer2
×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
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
org.apache.lucene.search
Collector
0×2
1×2×2 ×2
0 1
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
org.apache.lucene.search
Collector
0×2
1×2×1
0 1
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
org.apache.lucene.search
Collector
0×2
1×2×2
0 1
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
org.apache.lucene.search
Collector
0×2
1×2×3
0 1
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
org.apache.lucene.search
Collector
2×3
0×2
1×2
×3
0 1
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
new BooleanScorer
new BooleanScorer2
//term-at-time
//doc-at-time
if ( collector.acceptsDocsOutOfOrder() &&
topScorer &&
required.size() == 0 &&
minNrShouldMatch == 1) {
else
Linked Open Hash [2K]
×1 ×1 ×5 ×2×2
0 1 2 3 4 5 6 7
×3
Collector
DocSetCollector TopDocsCollector
TopFieldCollector
TopScoreDocsCollector
long [952045] = { 0, 0, 0, 0, 2050, 0, 0, 8, 0, 0, 0,... }
int [2079] = {4, 12, 45, 67, 103, 673, 5890, 34103,...}
int [100] = {8947, 7498,1, 230, 2356, 9812, 167,....}
DocSet or DocList?
DocList/TopDocs DocSet
Size
Ordered by
Out-of-order
collecting
k
(numHits/
rows)
N
(maxDocs)
score or
field
docID
allows* almost
could
allow
(No)
?×4 6×4
9×5 2×4
2×7 7×9 1×9
http://www.flickr.com/photos/jbagley/4303976811/sizes/o/
class OutOfOrderTopScoreDocCollector
boolean acceptsDocsOutOfOrder(){ return true;
}
..
void collect(int doc) {
float score = scorer.score();
...
if (score == pqTop.score && doc > pqTop.doc) {
...
}
Appendix B
Derivation of the
Search Complexity
1×9
7×9
2×7
2×5
9×5
6×4
...
...
≤4
...
...
k
n
http://en.wikipedia.org/wiki/Binary_heap
6×4
log k 9×5 2×4
2×7 7×9 1×9
...
...
≤4
...
...
n
q
p
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
what OR is OR a OR banana
doc at time term at time
complexity O(p + n log k)
memory
q
p
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
what OR is OR a OR banana
1
1 2
2
doc at time term at time
complexity O(p log q + n log k) O(p + n log k)
memory
Custom
Queries
Match Spotting
http://nlp.stanford.edu/IR-book/
Appendix C
BRAND:"silver jeans" TYPE:"dress" STYLE:"white"
BRAND:"alfani" TYPE:"dress" STYLE:"silver","jeans"
BRAND:"chaloree" TYPE:"dress" STYLE:"silver"
BRAND:"style&co" TYPE:"jeans dress" STYLE:"silver"
BRAND:"silver jeans" TYPE:"dress" STYLE:"black"
BRAND:"silver jeans" TYPE:"dress" STYLE:"white"
BRAND:"silver jeans" TYPE:"jacket" STYLE: "black"
BRAND:"angie" TYPE:"dress" STYLE:"silver","jeans"
BRAND:"chaloree" TYPE:"jeans dress" STYLE:"silver"
BRAND:"silver jeans" TYPE:"dress" STYLE:"blue"
BRAND:"dotty" TYPE:"dress" STYLE:"silver","jeans"
BRAND:"chaloree" STYLE:"jeans" "dress"
BRAND:"silver jeans" TYPE:"dress" STYLE:"white"
BRAND:"alfani" TYPE:"dress" STYLE:"silver","jeans"
BRAND:"chaloree" TYPE:"dress" STYLE:"silver"
BRAND:"style&co" TYPE:"jeans dress" STYLE:"silver"
BRAND:"silver jeans" TYPE:"dress" STYLE:"black"
BRAND:"silver jeans" TYPE:"dress" STYLE:"white"
BRAND:"silver jeans" TYPE:"jacket" STYLE: "black"
BRAND:"angie" TYPE:"dress" STYLE:"silver","jeans"
BRAND:"chaloree" TYPE:"jeans dress" STYLE:"silver"
BRAND:"silver jeans" TYPE:"dress" STYLE:"blue"
BRAND:"dotty" TYPE:"dress" STYLE:"silver","jeans"
BRAND:"chaloree" STYLE:"jeans" "dress"
silver jeans dress
BRAND:"silver jeans" TYPE:"dress" STYLE:"white"
BRAND:"alfani" TYPE:"dress" STYLE:"silver","jeans"
BRAND:"chaloree" TYPE:"dress" STYLE:"silver"
BRAND:"style&co" TYPE:"jeans dress" STYLE:"silver"
BRAND:"silver jeans" TYPE:"dress" STYLE:"black"
BRAND:"silver jeans" TYPE:"dress" STYLE:"white"
BRAND:"silver jeans" TYPE:"jacket" STYLE: "black"
BRAND:"angie" TYPE:"dress" STYLE:"silver","jeans"
BRAND:"chaloree" TYPE:"jeans dress" STYLE:"silver"
BRAND:"silver jeans" TYPE:"dress" STYLE:"blue"
BRAND:"dotty" TYPE:"dress" STYLE:"silver","jeans"
BRAND:"chaloree" STYLE:"jeans" "dress"
BRAND:"silver jeans" TYPE:"dress"
TYPE:"dress" STYLE:"silver","jeans"
TYPE:"jeans dress" STYLE:"silver"
BRAND:"silver jeans" TYPE:"dress"
BRAND:"silver jeans" TYPE:"dress"
TYPE:"dress" STYLE:"silver","jeans"
TYPE:"jeans dress" STYLE:"silver"
BRAND:"silver jeans" TYPE:"dress"
TYPE:"dress" STYLE:"silver","jeans"
BRAND:"silver jeans" TYPE:"dress"
TYPE:"dress" STYLE:"silver","jeans"
TYPE:"jeans dress" STYLE:"silver"
BRAND:"silver jeans" TYPE:"dress"
BRAND:"silver jeans" TYPE:"dress"
TYPE:"dress" STYLE:"silver","jeans"
TYPE:"jeans dress" STYLE:"silver"
BRAND:"silver jeans" TYPE:"dress"
TYPE:"dress" STYLE:"silver","jeans"
BRAND:"silver jeans" TYPE:"dress" (4)
TYPE:"dress" STYLE:"silver","jeans"
TYPE:"jeans dress" STYLE:"silver"
TYPE:"dress" STYLE:"silver","jeans"
TYPE:"jeans dress" STYLE:"silver"
TYPE:"dress" STYLE:"silver","jeans"
BRAND:"silver jeans" TYPE:"dress" (4)
TYPE:"dress" STYLE:"silver","jeans"
TYPE:"jeans dress" STYLE:"silver"
TYPE:"dress" STYLE:"silver","jeans"
TYPE:"jeans dress" STYLE:"silver"
TYPE:"dress" STYLE:"silver","jeans"
BRAND:"silver jeans" TYPE:"dress" (4)
TYPE:"dress" STYLE:"silver","jeans" (3)
TYPE:"jeans dress" STYLE:"silver"
TYPE:"jeans dress" STYLE:"silver"
BRAND:"silver jeans" TYPE:"dress" (4)
TYPE:"dress" STYLE:"silver","jeans" (3)
TYPE:"jeans dress" STYLE:"silver" (2)
BRAND:"silver jeans" TYPE:"dress" (4)
TYPE:"dress" STYLE:"silver","jeans" (3)
TYPE:"jeans dress" STYLE:"silver" (2)
silver jeans dress
BRAND:"silver jeans" TYPE:"dress" (4)
TYPE:"dress" STYLE:"silver","jeans" (3)
TYPE:"jeans dress" STYLE:"silver" (2)
silver jeans dress
Appendix D
Drill Sideways Facets
+CATEGORY: Denim
+FIT: Straight
+WASH: Dark&B
+CATEGORY: Denim
+FIT: Straight
+WASH: Dark&B
+CATEGORY: Denim
+WASH: Dark&B
+CATEGORY: Denim
+FIT: Straight
+WASH: Dark&B
+CATEGORY: Denim
+WASH: Dark&B
+CATEGORY: Denim
+FIT: Straight
+CATEGORY: Denim
FIT: Straight
WASH: Dark&Black
...
/minShouldMatch=Ndrilldowns
-1
+CAT: Denim
FIT: Straight
WASH: Dark
+CAT: Denim
FIT: Straight
WASH: Dark
totalHits
3
near miss
2
near miss
2
+CAT: Denim
FIT: Straight
WASH: Dark
totalHits
3
near miss
2
near miss
2
+CAT: Denim
FIT: Straight
WASH: Dark
totalHits
3
near miss
2
near miss
2
Doc at time
base query is highly selective
+CAT:D..{1, 7, 9, 15 }
FIT:S.. {2, 7, 8, 9, 10,12}
WASH:D..{2, 7, 11,13,15}
...
+CAT:D..{1, 7, 9, 15 }
FIT:S.. {2, 7, 8, 9, 10,12}
WASH:D..{2, 7, 11,13,15}
...
+CAT:D..{1, 7, 9, 15 }
FIT:S.. {2, 7, 8, 9, 10,12}
WASH:D..{2, 7, 11,13,15}
...
+CAT:D..{1, 7, 9, 15 }
FIT:S.. {2, 7, 8, 9, 10,12}
WASH:D..{2, 7, 11,13,15}
...
TopDocsCollector
+CAT:D..{1, 7, 9, 15 }
FIT:S.. {2, 7, 8, 9, 10,12}
WASH:D..{2, 7, 11,13,15}
...
TopDocsCollector
+CAT:D..{1, 7, 9, 15 }
FIT:S.. {2, 7, 8, 9, 10,12}
WASH:D..{2, 7, 11,13,15}
...
TopDocsCollector
+CAT:D..{1, 7, 9, 15 }
FIT:S.. {2, 7, 8, 9, 10,12}
WASH:D..{2, 7, 11,13,15}
...
TopDocsCollector
+CAT:D..{1, 7, 9, 15 }
FIT:S.. {2, 7, 8, 9, 10,12}
WASH:D..{2, 7, 11,13,15}
...
TopDocsCollector
+CAT:D..{1, 7, 9, 15 }
FIT:S.. {2, 7, 8, 9, 10,12}
WASH:D..{2, 7, 11,13,15}
...
TopDocsCollector
Term at time
drilldown queries are highly selective
+CAT:D..{1, 7, 9, 15 }
FIT:S.. {2, 7, 8, 9, 10,12}
WASH:D..{2, 7, 11,13,15}
...
hits
1
miss
Fit
hits
1
miss
Fit
hits
1
miss
Fit
hits
1
miss
Fit
hits
1
miss
Fit
1 2 7 11 12 13 15108 9
...
+CAT:D..{1, 7, 9, 15 }
FIT:S.. {2, 7, 8, 9, 10,12}
WASH:D..{2, 7, 11,13,15}
...
hits
1
miss
Fit
hits
1
miss
Fit
hits
1
miss
Fit
hits
2
miss
no
1 2 7 11 12 13 1510
hits
1
miss
Wash
hits
1
miss
Wash
8 9
...
hits
1
miss
Wash
hits
2
miss
no
hits
1
miss
Wash
+CAT:D..{1, 7, 9, 15 }
FIT:S.. {2, 7, 8, 9, 10,12}
WASH:D..{2, 7, 11,13,15}
...
hits
1
miss
Wash
Cat
hits
1
miss
Fit
Cat
hits
1
miss
Wash
Cat
hits
1
miss
Fit Cat
hits
2
miss
Fit
hits
2
miss
Cat
1 2 7 11 12 13 1510
hits
1
miss
Wash
Cat
8 9
...
hits
3
miss
hits
2
miss
Wash
hits
1
miss
Wash
Cat
hits
1
miss
Fit
Cat
hits
1
miss
Wash
Cat
hits
1
miss
Fit Cat
hits
2
miss
Fit
hits
2
miss
Cat
1 2 7 11 12 13 1510
hits
1
miss
Wash
Cat
8 9
...
hits
3
miss
no
hits
2
miss
Wash
hits
2
miss
Fit
1 2 7 11 12 13 15108 9
...
hits
3
miss
no
hits
2
miss
Wash
TopDocsCollector
TopDocsCollector
hits
2
miss
Fit
1 2 7 11 12 13 15108 9
...
hits
3
miss
no
hits
2
miss
Wash
TopDocsCollector
hits
2
miss
Fit
1 2 7 11 12 13 15108 9
...
hits
3
miss
no
hits
2
miss
Wash
Overflow
UML
http://www.flickr.com/photos/kristykay/2922670979/lightbox/
Custom Queries
..hm what for ?
qf=STYLE TYPE
denim dress
qf=STYLE TYPE
denim dress
DisjunctionMaxQuery((
(STYLE:denim OR TYPE:denim) |
(STYLE:dress OR TYPE:dress)
))
qf=STYLE TYPE
denim dress
( DisjunctionMaxQuery((
STYLE:denim | TYPE:denim ))
)OR( DisjunctionMaxQuery((
STYLE:dress | TYPE::dress ))
)
Writing custom queries  scorers’ diversity and traps (lucene internals)(2)

Contenu connexe

Tendances

Data Science - The Most Profitable Movie Characteristic
Data Science -  The Most Profitable Movie CharacteristicData Science -  The Most Profitable Movie Characteristic
Data Science - The Most Profitable Movie CharacteristicCheah Eng Soon
 
第4回 データフレームの基本操作 その2
第4回 データフレームの基本操作 その2第4回 データフレームの基本操作 その2
第4回 データフレームの基本操作 その2Wataru Shito
 
第5回 様々なファイル形式の読み込みとデータの書き出し
第5回 様々なファイル形式の読み込みとデータの書き出し第5回 様々なファイル形式の読み込みとデータの書き出し
第5回 様々なファイル形式の読み込みとデータの書き出しWataru Shito
 
DB Devlop- PostgreSQL 9.2.4 IQ 15.4
DB Devlop- PostgreSQL 9.2.4  IQ 15.4DB Devlop- PostgreSQL 9.2.4  IQ 15.4
DB Devlop- PostgreSQL 9.2.4 IQ 15.4Sunny U Okoro
 
ゲーム理論BASIC 演習36 -4人ゲームのシャープレイ値を求める-
ゲーム理論BASIC 演習36 -4人ゲームのシャープレイ値を求める-ゲーム理論BASIC 演習36 -4人ゲームのシャープレイ値を求める-
ゲーム理論BASIC 演習36 -4人ゲームのシャープレイ値を求める-ssusere0a682
 
Colibrí. Elisa Tovar Linares
Colibrí. Elisa Tovar LinaresColibrí. Elisa Tovar Linares
Colibrí. Elisa Tovar LinaresAlberto Montiel
 

Tendances (8)

2621008 - C++ 4
2621008 -  C++ 42621008 -  C++ 4
2621008 - C++ 4
 
Data Science - The Most Profitable Movie Characteristic
Data Science -  The Most Profitable Movie CharacteristicData Science -  The Most Profitable Movie Characteristic
Data Science - The Most Profitable Movie Characteristic
 
第4回 データフレームの基本操作 その2
第4回 データフレームの基本操作 その2第4回 データフレームの基本操作 その2
第4回 データフレームの基本操作 その2
 
第5回 様々なファイル形式の読み込みとデータの書き出し
第5回 様々なファイル形式の読み込みとデータの書き出し第5回 様々なファイル形式の読み込みとデータの書き出し
第5回 様々なファイル形式の読み込みとデータの書き出し
 
Gg chat
Gg chatGg chat
Gg chat
 
DB Devlop- PostgreSQL 9.2.4 IQ 15.4
DB Devlop- PostgreSQL 9.2.4  IQ 15.4DB Devlop- PostgreSQL 9.2.4  IQ 15.4
DB Devlop- PostgreSQL 9.2.4 IQ 15.4
 
ゲーム理論BASIC 演習36 -4人ゲームのシャープレイ値を求める-
ゲーム理論BASIC 演習36 -4人ゲームのシャープレイ値を求める-ゲーム理論BASIC 演習36 -4人ゲームのシャープレイ値を求める-
ゲーム理論BASIC 演習36 -4人ゲームのシャープレイ値を求める-
 
Colibrí. Elisa Tovar Linares
Colibrí. Elisa Tovar LinaresColibrí. Elisa Tovar Linares
Colibrí. Elisa Tovar Linares
 

Similaire à Writing custom queries scorers’ diversity and traps (lucene internals)(2)

Functional Gradient Boosting based on Residual Network Perception
Functional Gradient Boosting based on Residual Network PerceptionFunctional Gradient Boosting based on Residual Network Perception
Functional Gradient Boosting based on Residual Network PerceptionAtsushi Nitanda
 
Measuring Agile Success
Measuring Agile SuccessMeasuring Agile Success
Measuring Agile Successiwmontgomery
 
ΠΛΗ31 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ31 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
вестник южно уральского-государственного_университета._серия_математика._меха...
вестник южно уральского-государственного_университета._серия_математика._меха...вестник южно уральского-государственного_университета._серия_математика._меха...
вестник южно уральского-государственного_университета._серия_математика._меха...Иван Иванов
 
คณิตศาสตร์ 60 เฟรม กาญจนรัตน์
คณิตศาสตร์ 60 เฟรม กาญจนรัตน์คณิตศาสตร์ 60 เฟรม กาญจนรัตน์
คณิตศาสตร์ 60 เฟรม กาญจนรัตน์krookay2012
 
คณิตศาสตร์ 60 เฟรม กาญจนรัตน์
คณิตศาสตร์ 60 เฟรม กาญจนรัตน์คณิตศาสตร์ 60 เฟรม กาญจนรัตน์
คณิตศาสตร์ 60 เฟรม กาญจนรัตน์krookay2012
 
Resilient Taunton Watershed Network: Shaping the Future of Your Community
Resilient Taunton Watershed Network: Shaping the Future of Your CommunityResilient Taunton Watershed Network: Shaping the Future of Your Community
Resilient Taunton Watershed Network: Shaping the Future of Your Communitygreenbelt82
 
2c astable monostable
2c astable monostable2c astable monostable
2c astable monostableyeksdech
 
MongoDB.local Sydney 2019: Tips and Tricks for Avoiding Common Query Pitfalls
MongoDB.local Sydney 2019: Tips and Tricks for Avoiding Common Query PitfallsMongoDB.local Sydney 2019: Tips and Tricks for Avoiding Common Query Pitfalls
MongoDB.local Sydney 2019: Tips and Tricks for Avoiding Common Query PitfallsMongoDB
 
MongoDB Europe 2016 - ETL for Pros – Getting Data Into MongoDB The Right Way
MongoDB Europe 2016 - ETL for Pros – Getting Data Into MongoDB The Right WayMongoDB Europe 2016 - ETL for Pros – Getting Data Into MongoDB The Right Way
MongoDB Europe 2016 - ETL for Pros – Getting Data Into MongoDB The Right WayMongoDB
 
ETL for Pros: Getting Data Into MongoDB
ETL for Pros: Getting Data Into MongoDBETL for Pros: Getting Data Into MongoDB
ETL for Pros: Getting Data Into MongoDBMongoDB
 
Theoretical Linear Convergence of Unfolded ISTA and its Practical Weights and...
Theoretical Linear Convergence of Unfolded ISTA and its Practical Weights and...Theoretical Linear Convergence of Unfolded ISTA and its Practical Weights and...
Theoretical Linear Convergence of Unfolded ISTA and its Practical Weights and...Satoshi Hara
 

Similaire à Writing custom queries scorers’ diversity and traps (lucene internals)(2) (15)

Functional Gradient Boosting based on Residual Network Perception
Functional Gradient Boosting based on Residual Network PerceptionFunctional Gradient Boosting based on Residual Network Perception
Functional Gradient Boosting based on Residual Network Perception
 
Measuring Agile Success
Measuring Agile SuccessMeasuring Agile Success
Measuring Agile Success
 
ΠΛΗ31 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ31 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ31 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
 
вестник южно уральского-государственного_университета._серия_математика._меха...
вестник южно уральского-государственного_университета._серия_математика._меха...вестник южно уральского-государственного_университета._серия_математика._меха...
вестник южно уральского-государственного_университета._серия_математика._меха...
 
คณิตศาสตร์ 60 เฟรม กาญจนรัตน์
คณิตศาสตร์ 60 เฟรม กาญจนรัตน์คณิตศาสตร์ 60 เฟรม กาญจนรัตน์
คณิตศาสตร์ 60 เฟรม กาญจนรัตน์
 
คณิตศาสตร์ 60 เฟรม กาญจนรัตน์
คณิตศาสตร์ 60 เฟรม กาญจนรัตน์คณิตศาสตร์ 60 เฟรม กาญจนรัตน์
คณิตศาสตร์ 60 เฟรม กาญจนรัตน์
 
Resilient Taunton Watershed Network: Shaping the Future of Your Community
Resilient Taunton Watershed Network: Shaping the Future of Your CommunityResilient Taunton Watershed Network: Shaping the Future of Your Community
Resilient Taunton Watershed Network: Shaping the Future of Your Community
 
zav
zavzav
zav
 
2c astable monostable
2c astable monostable2c astable monostable
2c astable monostable
 
Delta5 Summary
Delta5 SummaryDelta5 Summary
Delta5 Summary
 
MongoDB.local Sydney 2019: Tips and Tricks for Avoiding Common Query Pitfalls
MongoDB.local Sydney 2019: Tips and Tricks for Avoiding Common Query PitfallsMongoDB.local Sydney 2019: Tips and Tricks for Avoiding Common Query Pitfalls
MongoDB.local Sydney 2019: Tips and Tricks for Avoiding Common Query Pitfalls
 
MongoDB Europe 2016 - ETL for Pros – Getting Data Into MongoDB The Right Way
MongoDB Europe 2016 - ETL for Pros – Getting Data Into MongoDB The Right WayMongoDB Europe 2016 - ETL for Pros – Getting Data Into MongoDB The Right Way
MongoDB Europe 2016 - ETL for Pros – Getting Data Into MongoDB The Right Way
 
Logic gates DLD
Logic gates DLDLogic gates DLD
Logic gates DLD
 
ETL for Pros: Getting Data Into MongoDB
ETL for Pros: Getting Data Into MongoDBETL for Pros: Getting Data Into MongoDB
ETL for Pros: Getting Data Into MongoDB
 
Theoretical Linear Convergence of Unfolded ISTA and its Practical Weights and...
Theoretical Linear Convergence of Unfolded ISTA and its Practical Weights and...Theoretical Linear Convergence of Unfolded ISTA and its Practical Weights and...
Theoretical Linear Convergence of Unfolded ISTA and its Practical Weights and...
 

Plus de lucenerevolution

Text Classification Powered by Apache Mahout and Lucene
Text Classification Powered by Apache Mahout and LuceneText Classification Powered by Apache Mahout and Lucene
Text Classification Powered by Apache Mahout and Lucenelucenerevolution
 
State of the Art Logging. Kibana4Solr is Here!
State of the Art Logging. Kibana4Solr is Here! State of the Art Logging. Kibana4Solr is Here!
State of the Art Logging. Kibana4Solr is Here! lucenerevolution
 
Building Client-side Search Applications with Solr
Building Client-side Search Applications with SolrBuilding Client-side Search Applications with Solr
Building Client-side Search Applications with Solrlucenerevolution
 
Integrate Solr with real-time stream processing applications
Integrate Solr with real-time stream processing applicationsIntegrate Solr with real-time stream processing applications
Integrate Solr with real-time stream processing applicationslucenerevolution
 
Scaling Solr with SolrCloud
Scaling Solr with SolrCloudScaling Solr with SolrCloud
Scaling Solr with SolrCloudlucenerevolution
 
Administering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud ClustersAdministering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud Clusterslucenerevolution
 
Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Implementing a Custom Search Syntax using Solr, Lucene, and ParboiledImplementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Implementing a Custom Search Syntax using Solr, Lucene, and Parboiledlucenerevolution
 
Using Solr to Search and Analyze Logs
Using Solr to Search and Analyze Logs Using Solr to Search and Analyze Logs
Using Solr to Search and Analyze Logs lucenerevolution
 
Enhancing relevancy through personalization & semantic search
Enhancing relevancy through personalization & semantic searchEnhancing relevancy through personalization & semantic search
Enhancing relevancy through personalization & semantic searchlucenerevolution
 
Real-time Inverted Search in the Cloud Using Lucene and Storm
Real-time Inverted Search in the Cloud Using Lucene and StormReal-time Inverted Search in the Cloud Using Lucene and Storm
Real-time Inverted Search in the Cloud Using Lucene and Stormlucenerevolution
 
Solr's Admin UI - Where does the data come from?
Solr's Admin UI - Where does the data come from?Solr's Admin UI - Where does the data come from?
Solr's Admin UI - Where does the data come from?lucenerevolution
 
Schemaless Solr and the Solr Schema REST API
Schemaless Solr and the Solr Schema REST APISchemaless Solr and the Solr Schema REST API
Schemaless Solr and the Solr Schema REST APIlucenerevolution
 
High Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with LuceneHigh Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with Lucenelucenerevolution
 
Text Classification with Lucene/Solr, Apache Hadoop and LibSVM
Text Classification with Lucene/Solr, Apache Hadoop and LibSVMText Classification with Lucene/Solr, Apache Hadoop and LibSVM
Text Classification with Lucene/Solr, Apache Hadoop and LibSVMlucenerevolution
 
Faceted Search with Lucene
Faceted Search with LuceneFaceted Search with Lucene
Faceted Search with Lucenelucenerevolution
 
Recent Additions to Lucene Arsenal
Recent Additions to Lucene ArsenalRecent Additions to Lucene Arsenal
Recent Additions to Lucene Arsenallucenerevolution
 
Turning search upside down
Turning search upside downTurning search upside down
Turning search upside downlucenerevolution
 
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...lucenerevolution
 
Shrinking the haystack wes caldwell - final
Shrinking the haystack   wes caldwell - finalShrinking the haystack   wes caldwell - final
Shrinking the haystack wes caldwell - finallucenerevolution
 

Plus de lucenerevolution (20)

Text Classification Powered by Apache Mahout and Lucene
Text Classification Powered by Apache Mahout and LuceneText Classification Powered by Apache Mahout and Lucene
Text Classification Powered by Apache Mahout and Lucene
 
State of the Art Logging. Kibana4Solr is Here!
State of the Art Logging. Kibana4Solr is Here! State of the Art Logging. Kibana4Solr is Here!
State of the Art Logging. Kibana4Solr is Here!
 
Search at Twitter
Search at TwitterSearch at Twitter
Search at Twitter
 
Building Client-side Search Applications with Solr
Building Client-side Search Applications with SolrBuilding Client-side Search Applications with Solr
Building Client-side Search Applications with Solr
 
Integrate Solr with real-time stream processing applications
Integrate Solr with real-time stream processing applicationsIntegrate Solr with real-time stream processing applications
Integrate Solr with real-time stream processing applications
 
Scaling Solr with SolrCloud
Scaling Solr with SolrCloudScaling Solr with SolrCloud
Scaling Solr with SolrCloud
 
Administering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud ClustersAdministering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud Clusters
 
Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Implementing a Custom Search Syntax using Solr, Lucene, and ParboiledImplementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
 
Using Solr to Search and Analyze Logs
Using Solr to Search and Analyze Logs Using Solr to Search and Analyze Logs
Using Solr to Search and Analyze Logs
 
Enhancing relevancy through personalization & semantic search
Enhancing relevancy through personalization & semantic searchEnhancing relevancy through personalization & semantic search
Enhancing relevancy through personalization & semantic search
 
Real-time Inverted Search in the Cloud Using Lucene and Storm
Real-time Inverted Search in the Cloud Using Lucene and StormReal-time Inverted Search in the Cloud Using Lucene and Storm
Real-time Inverted Search in the Cloud Using Lucene and Storm
 
Solr's Admin UI - Where does the data come from?
Solr's Admin UI - Where does the data come from?Solr's Admin UI - Where does the data come from?
Solr's Admin UI - Where does the data come from?
 
Schemaless Solr and the Solr Schema REST API
Schemaless Solr and the Solr Schema REST APISchemaless Solr and the Solr Schema REST API
Schemaless Solr and the Solr Schema REST API
 
High Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with LuceneHigh Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with Lucene
 
Text Classification with Lucene/Solr, Apache Hadoop and LibSVM
Text Classification with Lucene/Solr, Apache Hadoop and LibSVMText Classification with Lucene/Solr, Apache Hadoop and LibSVM
Text Classification with Lucene/Solr, Apache Hadoop and LibSVM
 
Faceted Search with Lucene
Faceted Search with LuceneFaceted Search with Lucene
Faceted Search with Lucene
 
Recent Additions to Lucene Arsenal
Recent Additions to Lucene ArsenalRecent Additions to Lucene Arsenal
Recent Additions to Lucene Arsenal
 
Turning search upside down
Turning search upside downTurning search upside down
Turning search upside down
 
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
 
Shrinking the haystack wes caldwell - final
Shrinking the haystack   wes caldwell - finalShrinking the haystack   wes caldwell - final
Shrinking the haystack wes caldwell - final
 

Dernier

Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxnelietumpap1
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 

Dernier (20)

Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptx
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 

Writing custom queries scorers’ diversity and traps (lucene internals)(2)