Hi, I tried stressing Lucene in a controlled environment: one static IndexSearcher for an index that doesn't change, and in same process I create a number of Threads that call this Searcher concurrently for a limited time. I expected the number of successful queries to increase when using more threads, but this is not the case. From 1 thread to 10 I see 25% increase, but from 10 threads to 100 there is no change, only the average response time increases. same goes for 200 threads. I tried RAMDirectory and FSDirectory, and the behavior is the same. I Extract the first 100 results from the Hits object, but on RAMDirectory this should be insignificant, right?
I tested this in version 1.4.3 and 1.9rc1, and they are both the same in this aspect. 1.9rc1 is faster, but does not benefit from multi threading. Did anyone see other behaviour? Will it be better to dedicate a searcher for each thread (maybe http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ThreadLocal.html)? Thanks, Oren Shir