Hi, Mike. You're right. After having a look at the comments on LUCENE-1518, I find that my idea about that has many bugs. Sorry for that.
Thus, I have checked some other suggestions you gave me to see whether relevant comments can be found in jira. I think I have some idea on "LUCENE-4396: BooleanScorer should sometimes be used for MUST clauses". Can we adjust the query to make the problem easier? For the query "+a b c +e +f" as an example, maybe we can turn it into "(+a +e +f) b c" which has only one MUST clause. Then, it would be easier to judge which scorer to use? Besides, I seems that the suggestion "we should pass a needsScorers boolean up-front to Weight.scorer" is not on jira. But it sounds that it can be done by adjusting some class methods' arguments and return value to pass the "needsScorers"? not sure. At last, recently I find something strange in the code about heap. I find heap has been implemented duplicately for many times in the trunk, and a PriorityQueue is also implemented in the package org.apache.lucene.util. I remember java has already implemented the PriorityQueue. Why not use that? Thanks, Da Huang -- 黄达(Da Huang) Team of Search Engine & Web Mining School of Electronic Engineering & Computer Science Peking University, Beijing, 100871, P.R.China
