I was wondering if anyone can shed some light on an issue we're having: we're comparing two different indexes on the same collection - one with lots of different segments (default settings), and one with a force merged into one segment. It seems that search is sometimes faster with multiple segments.
We thought it might be because Lucene parallelizes searching over the leafSlices? But then we came across this: https://github.com/apache/lucene-solr/blob/master/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java#L570-L619 <https://github.com/apache/lucene-solr/blob/master/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java#L570-L619> where the javadoc says: "... this method will use the searcher's ExecutorService in order to parallelize execution of the collection on the configured leafSlices." But we're using the vanilla search... but does the vanilla search redirect to this anyway? Either way, we're not explicitly configuring and ExecutorService... Any insight on exactly what's going on? Thanks!