lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Trcek <wzzelfz...@abas.de>
Subject Re: Get info wheter a field is multivalued
Date Wed, 17 Mar 2010 18:48:57 GMT
On Wednesday 17 March 2010 18:42:10 mark harwood wrote:
> Not the fastest thing in the world but works:
>
>             Term startTerm=new Term("myFieldName","");
>                     TermEnum te=reader.terms(startTerm);
>                     BitSet docsRead=new BitSet(reader.maxDoc());
>                     boolean multiValued=false;
>                     do{
>                         Term t=te.term();
>                         if((t==null)||(t.field()!=startTerm.field()))
>                         {
>                             break;
>                         }
>                         TermDocs td = reader.termDocs(t);
>                         while(td.next())
>                         {
>                             if(docsRead.get(td.doc()))
>                             {
>                                 multiValued=true;
>                                 break;
>                             }
>                             docsRead.set(td.doc());
>                         }
>                     }while(te.next()&&multiValued==false);

Nice idea. Just running it: 1,5s for 1M terms. I guess I'll track it at 
index time. 

Thanks,
Stefan

---------------------------------------------------------------------
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