[ 
https://issues.apache.org/jira/browse/LUCENE-1821?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12744854#action_12744854
 ] 

Tim Smith commented on LUCENE-1821:
-----------------------------------

bq. I'm not saying we should make it impossible for you to do this - but I 
don't think we should open a path for scorers to reconstruct multi-reader 
virtual ids. I don't think a Scorer should know or care why type of IndexReader 
it is working with.

i disagree with that, i think the APIs should make it clear whether you are 
working with a sub reader or a top level reader
if a Scorer is given an IndexReader, it should have the same ability to 
reconstruct the "client facing" docid in the same manner as the Collector 
interface provides in order to provide a consistent interface between 
Collectors and Scorers
This reconstruction should be documented as "advanced", however it should still 
be available

Whereever an IndexReader is exposed in API calls, it should be possible to walk 
the IndexReader's parent IndexReaders until you get the top level reader in 
order to have the full context of that IndexReader. This walking should only be 
done at "init" time (Scorer construction/Collector setScorer(), and so on 
depending on need of the application, but it should be possible (ideally 
without doing nasty things))


> 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: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to