From 54a5a68ca38962f033ab8b615f0cf75dc09b74a9 Mon Sep 17 00:00:00 2001 From: Sarthak Nandi Date: Fri, 2 Dec 2022 10:41:20 -0800 Subject: [PATCH] Call weight.getQuery().toString() once per query instead of once per leaf --- .../yelp/nrtsearch/server/luceneserver/MyIndexSearcher.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/yelp/nrtsearch/server/luceneserver/MyIndexSearcher.java b/src/main/java/com/yelp/nrtsearch/server/luceneserver/MyIndexSearcher.java index 96314f2a0..7198b23da 100644 --- a/src/main/java/com/yelp/nrtsearch/server/luceneserver/MyIndexSearcher.java +++ b/src/main/java/com/yelp/nrtsearch/server/luceneserver/MyIndexSearcher.java @@ -239,6 +239,9 @@ public static LeafSlice[] slices( @Override protected void search(List leaves, Weight weight, Collector collector) throws IOException { + boolean isDrillSidewaysQueryOrCompletionQuery = + weight.getQuery() instanceof CompletionQuery + || weight.getQuery().toString().contains("DrillSidewaysQuery"); for (LeafReaderContext ctx : leaves) { // search each subreader // we force the use of Scorer (not BulkScorer) to make sure // that the scorer passed to LeafCollector.setScorer supports @@ -251,8 +254,7 @@ protected void search(List leaves, Weight weight, Collector c // continue with the following leaf continue; } - if (weight.getQuery().toString().contains("DrillSidewaysQuery") - || weight.getQuery() instanceof CompletionQuery) { + if (isDrillSidewaysQueryOrCompletionQuery) { BulkScorer scorer = weight.bulkScorer(ctx); if (scorer != null) { try {