lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ian Lea <ian....@gmail.com>
Subject Re: optimized searching
Date Tue, 30 Jun 2009 13:21:59 GMT
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.harig@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"));
>
>                }
>
> 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-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>

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


Mime
View raw message