[
https://issues.apache.org/jira/browse/LUCENE-1821?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12744732#action_12744732
]
Tim Smith commented on LUCENE-1821:
-----------------------------------
I think i found a workaround (to allow me to upgrade)
I already subclass IndexSearcher, so i could just add the following method (and
use this instead of regular search())
{code}
public void mySearch(Weight weight, Collector collector) throws IOException {
collector.setNextReader(reader, 0);
Scorer scorer = weight.scorer(reader, !collector.acceptsDocsOutOfOrder(),
true);
if (scorer != null) {
scorer.score(collector);
}
}
{code}
however, this prevents me from being able to take full advantage of per segment
caching (which i really want to use for all my other caches)
> Weight.scorer() not passed doc offset for "sub reader"
> ------------------------------------------------------
>
> Key: LUCENE-1821
> URL: https://issues.apache.org/jira/browse/LUCENE-1821
> Project: Lucene - Java
> Issue Type: Bug
> Components: Search
> Affects Versions: 2.9
> Reporter: Tim Smith
>
> Now that searching is done on a per segment basis, there is no way for a
> Scorer to know the "actual" doc id for the document's it matches (only the
> relative doc offset into the segment)
> If using caches in your scorer that are based on the "entire" index (all
> segments), there is now no way to index into them properly from inside a
> Scorer because the scorer is not passed the needed offset to calculate the
> "real" docid
> suggest having Weight.scorer() method also take a integer for the doc offset
> Abstract Weight class should have a constructor that takes this offset as
> well as a method to get the offset
> All Weights that have "sub" weights must pass this offset down to created
> "sub" weights
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]