You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by David Massart <dm...@acm.org> on 2008/10/14 08:44:39 UTC
querying without hits
Dear all,
Could one of you point me to an example of code for querying without using
the deprecated class Hits ?
Thank you,
David
Re: querying without hits
Posted by Ganesh <em...@yahoo.co.in>.
Hello David,
Use TopDocs or TopFieldDocs to collect only required hits.
----
TopDocs topDocs = searcher.search(query,10)
int docID = topDocs.scoreDocs[index].doc;
Document doc = searcher.doc(docID);
----
Regards
Ganesh
----- Original Message -----
From: "David Massart" <dm...@acm.org>
To: <ja...@lucene.apache.org>
Sent: Tuesday, October 14, 2008 12:14 PM
Subject: querying without hits
> Dear all,
> Could one of you point me to an example of code for querying without using
> the deprecated class Hits ?
>
> Thank you,
>
> David
>
Send instant messages to your online friends http://in.messenger.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
Re: querying without hits
Posted by Michael McCandless <lu...@mikemccandless.com>.
If you want to keep every single hit, which is very dangerous for a
large index, you should make a new collector.
Here's an example (pulled from upcoming LIA revision):
public class AllDocCollector extends HitCollector {
List<ScoreDoc> docs = new ArrayList<ScoreDoc>();
public void collect(int doc, float score) {
if (score > 0.0f) {
docs.add(new ScoreDoc(doc, score));
}
}
public void reset() {
docs.clear();
}
public List<ScoreDoc> getHits() {
return docs;
}
}
If you need the results sorted then you should do the sort at the end.
Mike
David Massart wrote:
> Thanks guys.
> Just looking at the examples and I wonder if there is a means to
> directly
> get the total number of hits. Or is it always necessary to search
> for a few
> top docs, get the the total number of hits and then create a new
> collector
> to get all the results?
>
> TopDocCollector collector = new TopDocCollector(5);
>
> searcher.search(query, collector);
>
> int numTotalHits = collector.getTotalHits();
>
> collector = new TopDocCollector(numTotalHits);
>
> searcher.search(query, collector);
>
> ScoreDoc[] hits = collector.topDocs().scoreDocs;
>
> If the later is true, is the code above the best way to do this?
>
> Cheers,
>
> David
>
> On Wed, Oct 15, 2008 at 5:16 AM, Chris Hostetter
> <ho...@fucit.org>wrote:
>
>>
>> : Could one of you point me to an example of code for querying
>> without
>> using
>> : the deprecated class Hits ?
>>
>> The demo code included with Lucene releases was updated in Lucene
>> 2.4 so
>> that it does not use the Hits class.
>>
>> -Hoss
>>
>>
>> ---------------------------------------------------------------------
>> 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
Re: querying without hits
Posted by David Massart <dm...@acm.org>.
Thanks guys.
Just looking at the examples and I wonder if there is a means to directly
get the total number of hits. Or is it always necessary to search for a few
top docs, get the the total number of hits and then create a new collector
to get all the results?
TopDocCollector collector = new TopDocCollector(5);
searcher.search(query, collector);
int numTotalHits = collector.getTotalHits();
collector = new TopDocCollector(numTotalHits);
searcher.search(query, collector);
ScoreDoc[] hits = collector.topDocs().scoreDocs;
If the later is true, is the code above the best way to do this?
Cheers,
David
On Wed, Oct 15, 2008 at 5:16 AM, Chris Hostetter
<ho...@fucit.org>wrote:
>
> : Could one of you point me to an example of code for querying without
> using
> : the deprecated class Hits ?
>
> The demo code included with Lucene releases was updated in Lucene 2.4 so
> that it does not use the Hits class.
>
> -Hoss
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>
Re: querying without hits
Posted by Chris Hostetter <ho...@fucit.org>.
: Could one of you point me to an example of code for querying without using
: the deprecated class Hits ?
The demo code included with Lucene releases was updated in Lucene 2.4 so
that it does not use the Hits class.
-Hoss
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org