On Tue, Jun 30, 2009 at 3:21 PM, Ian Lea<ian....@gmail.com> wrote:
> Have you read the javadocs? What does collector.getTotalHits() return?
>  Does it return the same when you use new TopDocCollector(1000) and
> some other number?  Are you asking basically the same questions in 2
> different threads at the same time?
>
> You are still iterating over many hits and that will still take longer
> than if you iterate over fewer hits.
>
>
> --
> Ian.
>
>
>
>
> On Tue, Jun 30, 2009 at 1:38 PM, m.harig<m.ha...@gmail.com> wrote:
>>
>> 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"));
>>
>>                }
funny that you past the code I did send you as an example and ask in a
separate thread for tuning :D

simon
>>
>> 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
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
> For additional commands, e-mail: java-user-h...@lucene.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to