[
https://issues.apache.org/jira/browse/LUCENE-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12479876
]
Michael Busch commented on LUCENE-761:
--------------------------------------
Grant,
you're right, it is a simple change to clone the stream lazily. And I think I
will do that for now. The benefit then is, that it won't be more expensive
anymore to use a SegmentTermPosition object instead of a SegmentTermDocs in
scorers.
However, there might be one drawback. SegmentTermDocs implements the method
int read(final int[] docs, final int[] freqs)
which is used by TermScorer for better performance. SegmentTermPositions
overwrites this method and just throws a UnsupportedOperationException. This
just becomes a problem if we want to make TermScorer extendable, so that
subclasses can make use of payloads.... But actually I don't see much benefit
in extending TermScorer over just extending Scorer for such a use case. What do
you think?
> Clone proxStream lazily in SegmentTermPositions
> -----------------------------------------------
>
> Key: LUCENE-761
> URL: https://issues.apache.org/jira/browse/LUCENE-761
> Project: Lucene - Java
> Issue Type: Improvement
> Components: Index
> Reporter: Michael Busch
> Assigned To: Michael Busch
> Priority: Minor
>
> In SegmentTermPositions the proxStream should be cloned lazily, i. e. at the
> first time nextPosition() is called. Then the initialization costs of
> TermPositions are not higher anymore compared to TermDocs and thus there is
> no reason anymore for Scorers to use TermDocs instead of TermPositions. In
> fact, all Scorers should use TermPositions, because custom subclasses of
> existing scorers might want to access payloads, which is only possible via
> TermPositions. We could further merge SegmentTermDocs and
> SegmentTermPositions into one class and deprecate the interface TermDocs.
> I'm going to attach a patch once the payloads feature (LUCENE-755) is
> committed.
--
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]