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

Bruno Roustant commented on LUCENE-8292:
----------------------------------------

Actually there is also another related issue with this 
FilterLeafReader#FilterTermsEnum delegate pattern.

It does not delegate termState() nor seekExact(ByteRef, TermState) methods. 
Which means the termState is never used, so the term queries repeat twice the 
same seek (seekCeil) instead of using the termState to improve performance 
(normally the termState is kept by TermContext#build()).

Practical example: When one configures a timeout for queries, internally a 
ExitableDirectoryReader is created. And its ExitableTermsEnum, which extends 
FilterTermsEnum, makes all term queries repeat twice the same seekCeil().

> Fix FilterLeafReader.FilterTermsEnum to delegate all seekExact methods
> ----------------------------------------------------------------------
>
>                 Key: LUCENE-8292
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8292
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: core/index
>    Affects Versions: 7.2.1
>            Reporter: Bruno Roustant
>            Priority: Major
>             Fix For: trunk
>
>         Attachments: 
> 0001-Fix-FilterLeafReader.FilterTermsEnum-to-delegate-see.patch, 
> LUCENE-8292.patch
>
>
> FilterLeafReader#FilterTermsEnum wraps another TermsEnum and delegates many 
> methods.
> It misses some seekExact() methods, thus it is not possible to the delegate 
> to override these methods to have specific behavior (unlike the TermsEnum API 
> which allows that).
> The fix is straightforward: simply override these seekExact() methods and 
> delegate.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to