Hi Ian,

I'm using Version 2.93 of lucene.

q.getClass() and q.toString() are exactly equal:
org.apache.lucene.search.BooleanQuery
TITLE:672 BOOK:672

However, the results for searcher.explain(q,n) significantly differ. It seems to me that "Query q = parser.parse("672");" searches only one the Book field, whereas "Query q = parser.parse("TITLE:672 BOOK:672");" searches on both fields. Do you have a explanation for this behaviour? I only observed this problem for this field...

I appended the result of both explain strings below:

"Query q = parser.parse("672");"
9.987344E10 = (MATCH) sum of:
  9.987344E10 = (MATCH) weight(BOOK:672 in 7078), product of:
    0.6583703 = queryWeight(BOOK:672), product of:
      6.085349 = idf(docFreq=109, maxDocs=17780)
      0.10818941 = queryNorm
    1.51697965E11 = (MATCH) fieldWeight(BOOK:672 in 7078), product of:
      3.3166249 = tf(termFreq(BOOK:672)=11)
      6.085349 = idf(docFreq=109, maxDocs=17780)
      7.5161928E9 = fieldNorm(field=BOOK, doc=7078)


"Query q = parser.parse("TITLE:672 BOOK:672");"
9.5225594E10 = (MATCH) sum of:
  9.5225594E10 = (MATCH) weight(BOOK:672 in 4979), product of:
    0.6583703 = queryWeight(BOOK:672), product of:
      6.085349 = idf(docFreq=109, maxDocs=17780)
      0.10818941 = queryNorm
    1.44638345E11 = (MATCH) fieldWeight(BOOK:672 in 4979), product of:
      3.1622777 = tf(termFreq(BOOK:672)=10)
      6.085349 = idf(docFreq=109, maxDocs=17780)
      7.5161928E9 = fieldNorm(field=BOOK, doc=4979)
  52.366344 = (MATCH) weight(TITLE:672 in 4979), product of:
    0.7526941 = queryWeight(TITLE:672), product of:
      6.957188 = idf(docFreq=45, maxDocs=17780)
      0.10818941 = queryNorm
    69.571884 = (MATCH) fieldWeight(TITLE:672 in 4979), product of:
      1.0 = tf(termFreq(TITLE:672)=1)
      6.957188 = idf(docFreq=45, maxDocs=17780)
      10.0 = fieldNorm(field=TITLE, doc=4979)

Cheers,
    P.
Am 22.07.2010 10:02, schrieb Ian Lea:
They look the same to me too.

What does q.getClass().getName() say in each case? q.toString()?
searcher.explain(q, n)?

What version of lucene?


--
Ian.




On Wed, Jul 21, 2010 at 10:25 PM, Philippe<mailer.tho...@gmail.com>  wrote:
Hi,

I just performed two queries which, in my opinion, should lead to the same
document rankings. However, the document ranking differ between these two
queries. For better understanding I prepared  minimal examples for both
queries. In my understanding both queries perform the same task. Namely
search for "lucene" in two different fields.

Maybe someone can explain me my misunderstanding?


String[] fields = {"TITLE", "BOOK"};
MultiFieldQueryParser parser = new MultiFieldQueryParser(Version.LUCENE_29,
fields, new StandardAnalyzer(Version.LUCENE_29));

1.)
Query q = parser.parse("lucene");

2.)
Query q = parser.parse(TITLE:lucene OR BOOK:lucene);

Regards,
    philippe

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to