You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "jpountz (via GitHub)" <gi...@apache.org> on 2023/07/06 11:57:50 UTC

[GitHub] [lucene] jpountz commented on a diff in pull request #12345: LUCENE-10641: IndexSearcher#setTimeout should also abort query rewrites, point ranges and vector searches

jpountz commented on code in PR #12345:
URL: https://github.com/apache/lucene/pull/12345#discussion_r1254334257


##########
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:
   Woops, sorry for missing your question. @mikemccand 's understanding is correct, something like `ExitableDirectoryReader`.  +1 to @mikemccand 's suggestion:
    - Implement a package-private `ExitableIndexReader`, which is really the same as `ExitableDirectoryReader` but for any `IndexReader`. It should wrap terms and points, but not postings and doc values (which are already covered via the bulk scorer).
    - Update `IndexSearcher#getIndexReader` to return the wrapped index reader. This will automatically make sure expensive rewrites are intercepted since `IndexSearcher#getIndexReader` is their only way to get access to the reader.



-- 
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-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org