I'm running edismax (on both a 1.4 with patch and a branch_3x version) and I'm seeing something I don't expect.
We have our mm set such that 2/2 must match and 2/3 must match (mm=2<-1 5<67% A query of dog cat ...gets interpreted as dog AND cat But a query of dog cat -mouse ...gets interpreted as (dog AND cat) OR (dog AND NOT mouse) OR (cat AND NOT mouse) In other words, the "-mouse" is being interpreted as a single token (NOT mouse) to be counted for mm. I would expect the query to interpret as: (dog AND cat) AND (NOT mouse) Are my expectations out of whack? Or is this unexpected behavior? [I've pasted the debugQuery info for a similar search below, though I freely admit to not knowing how to read it] Any thoughts on what I'm seeing here? -Bill- <lst name="debug"> <str name="rawquerystring">dog cat -trilogy</str> <str name="querystring">dog cat -trilogy</str> <str name="parsedquery">allfields:dog allfields:cat -allfields:trilogi</str> <str name="parsedquery_toString">allfields:dog allfields:cat -allfields:trilogi</str> <lst name="explain"> <str name="000107098"> 2.1741915 = (MATCH) sum of: 1.2620605 = (MATCH) weight(allfields:dog in 3187), product of: 0.7618881 = queryWeight(allfields:dog), product of: 8.744003 = idf(docFreq=64, maxDocs=150000) 0.08713264 = queryNorm 1.6564907 = (MATCH) fieldWeight(allfields:dog in 3187), product of: 1.7320508 = tf(termFreq(allfields:dog)=3) 8.744003 = idf(docFreq=64, maxDocs=150000) 0.109375 = fieldNorm(field=allfields, doc=3187) 0.912131 = (MATCH) weight(allfields:cat in 3187), product of: 0.64770865 = queryWeight(allfields:cat), product of: 7.4335938 = idf(docFreq=240, maxDocs=150000) 0.08713264 = queryNorm 1.4082427 = (MATCH) fieldWeight(allfields:cat in 3187), product of: 1.7320508 = tf(termFreq(allfields:cat)=3) 7.4335938 = idf(docFreq=240, maxDocs=150000) 0.109375 = fieldNorm(field=allfields, doc=3187) </str> <str name="000036695"> 2.1518915 = (MATCH) sum of: 1.249116 = (MATCH) weight(allfields:dog in 36426), product of: 0.7618881 = queryWeight(allfields:dog), product of: 8.744003 = idf(docFreq=64, maxDocs=150000) 0.08713264 = queryNorm 1.6395006 = (MATCH) fieldWeight(allfields:dog in 36426), product of: 2.0 = tf(termFreq(allfields:dog)=4) 8.744003 = idf(docFreq=64, maxDocs=150000) 0.09375 = fieldNorm(field=allfields, doc=36426) 0.9027756 = (MATCH) weight(allfields:cat in 36426), product of: 0.64770865 = queryWeight(allfields:cat), product of: 7.4335938 = idf(docFreq=240, maxDocs=150000) 0.08713264 = queryNorm 1.3937988 = (MATCH) fieldWeight(allfields:cat in 36426), product of: 2.0 = tf(termFreq(allfields:cat)=4) 7.4335938 = idf(docFreq=240, maxDocs=150000) 0.09375 = fieldNorm(field=allfields, doc=36426) </str> <str name="000038137"> 1.4345944 = (MATCH) sum of: 0.832744 = (MATCH) weight(allfields:dog in 37852), product of: 0.7618881 = queryWeight(allfields:dog), product of: 8.744003 = idf(docFreq=64, maxDocs=150000) 0.08713264 = queryNorm 1.0930004 = (MATCH) fieldWeight(allfields:dog in 37852), product of: 1.0 = tf(termFreq(allfields:dog)=1) 8.744003 = idf(docFreq=64, maxDocs=150000) 0.125 = fieldNorm(field=allfields, doc=37852) 0.6018504 = (MATCH) weight(allfields:cat in 37852), product of: 0.64770865 = queryWeight(allfields:cat), product of: 7.4335938 = idf(docFreq=240, maxDocs=150000) 0.08713264 = queryNorm 0.9291992 = (MATCH) fieldWeight(allfields:cat in 37852), product of: 1.0 = tf(termFreq(allfields:cat)=1) 7.4335938 = idf(docFreq=240, maxDocs=150000) 0.125 = fieldNorm(field=allfields, doc=37852) </str> <str name="000134898"> 1.2629167 = (MATCH) sum of: 0.624558 = (MATCH) weight(allfields:dog in 30673), product of: 0.7618881 = queryWeight(allfields:dog), product of: 8.744003 = idf(docFreq=64, maxDocs=150000) 0.08713264 = queryNorm 0.8197503 = (MATCH) fieldWeight(allfields:dog in 30673), product of: 1.0 = tf(termFreq(allfields:dog)=1) 8.744003 = idf(docFreq=64, maxDocs=150000) 0.09375 = fieldNorm(field=allfields, doc=30673) 0.6383587 = (MATCH) weight(allfields:cat in 30673), product of: 0.64770865 = queryWeight(allfields:cat), product of: 7.4335938 = idf(docFreq=240, maxDocs=150000) 0.08713264 = queryNorm 0.9855646 = (MATCH) fieldWeight(allfields:cat in 30673), product of: 1.4142135 = tf(termFreq(allfields:cat)=2) 7.4335938 = idf(docFreq=240, maxDocs=150000) 0.09375 = fieldNorm(field=allfields, doc=30673) </str> <str name="000029964"> 1.25527 = (MATCH) sum of: 0.728651 = (MATCH) weight(allfields:dog in 29736), product of: 0.7618881 = queryWeight(allfields:dog), product of: 8.744003 = idf(docFreq=64, maxDocs=150000) 0.08713264 = queryNorm 0.95637536 = (MATCH) fieldWeight(allfields:dog in 29736), product of: 1.0 = tf(termFreq(allfields:dog)=1) 8.744003 = idf(docFreq=64, maxDocs=150000) 0.109375 = fieldNorm(field=allfields, doc=29736) 0.5266191 = (MATCH) weight(allfields:cat in 29736), product of: 0.64770865 = queryWeight(allfields:cat), product of: 7.4335938 = idf(docFreq=240, maxDocs=150000) 0.08713264 = queryNorm 0.8130493 = (MATCH) fieldWeight(allfields:cat in 29736), product of: 1.0 = tf(termFreq(allfields:cat)=1) 7.4335938 = idf(docFreq=240, maxDocs=150000) 0.109375 = fieldNorm(field=allfields, doc=29736) </str> <str name="000100541"> 1.25527 = (MATCH) sum of: 0.728651 = (MATCH) weight(allfields:dog in 99929), product of: 0.7618881 = queryWeight(allfields:dog), product of: 8.744003 = idf(docFreq=64, maxDocs=150000) 0.08713264 = queryNorm 0.95637536 = (MATCH) fieldWeight(allfields:dog in 99929), product of: 1.0 = tf(termFreq(allfields:dog)=1) 8.744003 = idf(docFreq=64, maxDocs=150000) 0.109375 = fieldNorm(field=allfields, doc=99929) 0.5266191 = (MATCH) weight(allfields:cat in 99929), product of: 0.64770865 = queryWeight(allfields:cat), product of: 7.4335938 = idf(docFreq=240, maxDocs=150000) 0.08713264 = queryNorm 0.8130493 = (MATCH) fieldWeight(allfields:cat in 99929), product of: 1.0 = tf(termFreq(allfields:cat)=1) 7.4335938 = idf(docFreq=240, maxDocs=150000) 0.109375 = fieldNorm(field=allfields, doc=99929) </str> <str name="000036787"> 0.9310362 = (MATCH) product of: 1.8620723 = (MATCH) sum of: 1.8620723 = (MATCH) weight(allfields:dog in 36523), product of: 0.7618881 = queryWeight(allfields:dog), product of: 8.744003 = idf(docFreq=64, maxDocs=150000) 0.08713264 = queryNorm 2.4440234 = (MATCH) fieldWeight(allfields:dog in 36523), product of: 2.236068 = tf(termFreq(allfields:dog)=5) 8.744003 = idf(docFreq=64, maxDocs=150000) 0.125 = fieldNorm(field=allfields, doc=36523) 0.5 = coord(1/2) </str> <str name="000024903"> 0.89662147 = (MATCH) sum of: 0.520465 = (MATCH) weight(allfields:dog in 24680), product of: 0.7618881 = queryWeight(allfields:dog), product of: 8.744003 = idf(docFreq=64, maxDocs=150000) 0.08713264 = queryNorm 0.68312526 = (MATCH) fieldWeight(allfields:dog in 24680), product of: 1.0 = tf(termFreq(allfields:dog)=1) 8.744003 = idf(docFreq=64, maxDocs=150000) 0.078125 = fieldNorm(field=allfields, doc=24680) 0.37615648 = (MATCH) weight(allfields:cat in 24680), product of: 0.64770865 = queryWeight(allfields:cat), product of: 7.4335938 = idf(docFreq=240, maxDocs=150000) 0.08713264 = queryNorm 0.5807495 = (MATCH) fieldWeight(allfields:cat in 24680), product of: 1.0 = tf(termFreq(allfields:cat)=1) 7.4335938 = idf(docFreq=240, maxDocs=150000) 0.078125 = fieldNorm(field=allfields, doc=24680) </str> <str name="000002131"> 0.728651 = (MATCH) product of: 1.457302 = (MATCH) sum of: 1.457302 = (MATCH) weight(allfields:dog in 2108), product of: 0.7618881 = queryWeight(allfields:dog), product of: 8.744003 = idf(docFreq=64, maxDocs=150000) 0.08713264 = queryNorm 1.9127507 = (MATCH) fieldWeight(allfields:dog in 2108), product of: 2.0 = tf(termFreq(allfields:dog)=4) 8.744003 = idf(docFreq=64, maxDocs=150000) 0.109375 = fieldNorm(field=allfields, doc=2108) 0.5 = coord(1/2) </str> <str name="000007984"> 0.728651 = (MATCH) product of: 1.457302 = (MATCH) sum of: 1.457302 = (MATCH) weight(allfields:dog in 7901), product of: 0.7618881 = queryWeight(allfields:dog), product of: 8.744003 = idf(docFreq=64, maxDocs=150000) 0.08713264 = queryNorm 1.9127507 = (MATCH) fieldWeight(allfields:dog in 7901), product of: 2.0 = tf(termFreq(allfields:dog)=4) 8.744003 = idf(docFreq=64, maxDocs=150000) 0.109375 = fieldNorm(field=allfields, doc=7901) 0.5 = coord(1/2) </str> </lst> -- Bill Dueber Library Systems Programmer University of Michigan Library