Deepika0510 commented on code in PR #12345: URL: https://github.com/apache/lucene/pull/12345#discussion_r1257492761
########## lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java: ########## @@ -763,6 +763,11 @@ public Query rewrite(Query original) throws IOException { for (Query rewrittenQuery = query.rewrite(this); rewrittenQuery != query; rewrittenQuery = query.rewrite(this)) { + if (queryTimeout != null) { Review Comment: Thank you @mikemccand and @jpountz for suggestion! I was going through the code and came across the below scenario. We want to wrap terms and points, but the related methods are in `LeafReader` class and we access these method generally using the `getContext().leaves().get(0).reader().<method>`. E.g. ``` IndexReaderContext topReaderContext = reader.getContext(); for (LeafReaderContext context : topReaderContext.leaves()) { final Terms terms = context.reader().terms(query.field); …… …… …… } ``` So, even if we wrap `LeafReader` and update `IndexSearcher#getIndexReader()` to return the wrapped reader, we would not be able to return wrapped class at such above point where we get the reader using `ReaderContext` . Maybe one way out would be to create a separate `ReaderContext` such that it returns our wrapped `IndexReader`? ########## lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java: ########## @@ -763,6 +763,11 @@ public Query rewrite(Query original) throws IOException { for (Query rewrittenQuery = query.rewrite(this); rewrittenQuery != query; rewrittenQuery = query.rewrite(this)) { + if (queryTimeout != null) { Review Comment: Thank you @mikemccand and @jpountz for suggestion! I was going through the code and came across the below scenario. We want to wrap terms and points, but the related methods are in `LeafReader` class and we access these method generally using the `getContext().leaves().get(0).reader().<method>`. E.g. ``` IndexReaderContext topReaderContext = reader.getContext(); for (LeafReaderContext context : topReaderContext.leaves()) { final Terms terms = context.reader().terms(query.field); …… …… …… } ``` So, even if we wrap `LeafReader` and update `IndexSearcher#getIndexReader()` to return the wrapped reader, we would not be able to return wrapped class at such above point where we get the reader using `ReaderContext` . Maybe one way out would be to create a separate `ReaderContext` such that it returns our wrapped `IndexReader`? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org