Something like this works pretty well
public static Map <String, Integer> getFullTerms(IndexReader ir, String
fieldName, IndexSearcher is) throws IOException{
Map<String,Integer > termMap = new LinkedHashMap<String,Integer>();
TermEnum terms = ir.terms(new Term(fieldName, ""));
while (fieldName.equals(terms.term().field()))
{
// System.out.println(terms.term().text());
termMap.put(getCatName(terms.term().text(), ir, is),
terms.docFreq());
System.out.println("Unique category ids: " +terms.term().text()
+ " catname: "+getCatName(terms.term().text(), ir, is)+" shows up in this
many docs: "+ terms.docFreq());
if (!terms.next())
break;
}
return termMap;
}
On Sat, Jan 1, 2011 at 4:32 PM, Benzion G <[email protected]> wrote:
> Lets' say I have documents with following.
>
> id text
> 1 User not found
> 2 User not found
> 3 Address not found
> 4 Fatal error
> 5 User not found
> 6 Address not found
> 7 User not found
>
>
> How can I get each text only once in search results (similar to SQL "GROUP
> BY"),
> i.e.
>
> id text
> 1 User not found
> 3 Address not found
> 4 Fatal error
>
>
> Regards,
> Benzion.
>
>
>
--
Joe Scanlon
[email protected]
Mobile: 603 459 3242
Office: 312 445 0018