Hi all, I made a list of 4 simple, singe term queries and do 4 searches via Lucene and find that if the term is used for search in the first time, Lucene takes quite a bit time to handle it.
- Query A 00:27:28,781 INFO LuceneSearchService:151 - Internal search took 328.21463ms 00:27:28,781 INFO SearchController:86 - Page rendered in 338.29553ms - Query B 00:27:39,171 INFO LuceneSearchService:151 - Internal search took 480.30908ms 00:27:39,187 INFO SearchController:86 - Page rendered in 493.07327ms - Query C 00:27:46,765 INFO LuceneSearchService:151 - Internal search took 189.33635ms 00:27:46,765 INFO SearchController:86 - Page rendered in 195.43823ms - Query D 00:28:00,312 INFO LuceneSearchService:151 - Internal search took 330.3596ms 00:28:00,328 INFO SearchController:86 - Page rendered in 347.34747ms It looks no good at the first glance because I have only 500 000 indexed documents. However, when I searched them again I found that Lucene run much faster. - Query A 00:28:04,046 INFO LuceneSearchService:151 - Internal search took 3.90301ms 00:28:04,062 INFO SearchController:86 - Page rendered in 15.694173ms - Query C 00:28:15,390 INFO LuceneSearchService:151 - Internal search took 1.425879ms 00:28:15,390 INFO SearchController:86 - Page rendered in 7.946541ms - Query D 00:28:26,031 INFO LuceneSearchService:151 - Internal search took 1.849956ms 00:28:26,046 INFO SearchController:86 - Page rendered in 12.023037ms - Query B 00:28:31,609 INFO LuceneSearchService:151 - Internal search took 1.668648ms 00:28:31,625 INFO SearchController:86 - Page rendered in 15.57237ms Why does it happens? Does it mean that Lucene has an internal cache engine, just like MySQL query result cache or Oracle query execution plan cache? Thanks Dinh