Thanks eric in Ian's link, particularly see the section "Don't iterate over morehits than necessary".
A couple of other things: 1> Loading the entire document just to get a field or two isn't very efficient, think about lazy loading (See FieldSelector) i done it , but have couple of questions 2> What do you mean when you say "not very good"? Using too much memory? Slow? yes , of course , it went for java heap space . here is my code IndexReader open = IndexReader.open(indexDir); IndexSearcher searcher = new IndexSearcher(open); final String fName = "title"; QueryParser parser = new QueryParser("contents", new StopAnalyzer()); Query query = parser.parse(qryStr); TopDocCollector collector = new TopDocCollector(1000);// searcher.search(query, collector); FieldSelector selector = new FieldSelector() { public FieldSelectorResult accept(String fieldName) { return fieldName == fName ? FieldSelectorResult.LOAD : FieldSelectorResult.LAZY_LOAD; } }; final int totalHits = collector.getTotalHits(); ScoreDoc[] scoreDocs = collector.topDocs().scoreDocs; for (int i = 0; i < totalHits; i++) { Document doc = searcher.doc(scoreDocs[i].doc, selector); System.out.println(i+" ) "+doc.get("title")); System.out.println(doc.get("path")); } can you please tune my code to work it faster and better, is it possible to display total hits like google , since am using new TopDocCollector(1000); it won't allow you to pick total hits ?? am i right??? -- View this message in context: http://www.nabble.com/optimized-searching-tp24266553p24271145.html Sent from the Lucene - Java Users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org