You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by cu...@lucene.com on 2002/05/07 22:38:08 UTC

RE: org.apache.lucene.document.Document.getFields(String name) me thod?

Multiple fields with the same name are indeed supported.  Currently, if you
have multiple values for a given field name in a Document, then you must
enumerate all of the fields with Document.field() to find the multiple
values.

It would be good to add the following Document methods:
  Field[] getFields(String name);
  String[] getValues(String name);

Doug

> -----Original Message-----
> From: Otis Gospodnetic
> [mailto:otis_gospodnetic.at.yahoo.com@apache.at.lucene.com]
> Sent: Monday, May 06, 2002 8:11 PM
> To: dcutting@grandcentral.com
> Subject: Re: 
> org.apache.lucene.document.Document.getFields(String name)
> method?
> 
> 
> I'm not sure...
> Can you really add multiple fields with the same name to the index?
> 
> Check this method comment in Document.java:
>   /** Adds a field to a document.  Several fields may be added with
>    * the same name.  In this case, if the fields are indexed, their 
>    * text is treated as though appended for the purposes of search.
>    */
>   public final void add(Field field)
> 
> It sounds like indexed fields are just concatenated (into a single
> field with the given name).  I'm not sure what happens with 
> non-indexed
> fields.
> 
> Does Lucene store multiple values for the same field name in 
> such a way
> that you can retrieve them separately?
> 
> Thanks,
> Otis
> 
> 
> --- Martin_Sévigny <se...@ajlsm.com> wrote:
> > Hi,
> > 
> > The method org.apache.lucene.document.Document.getField(String name)
> > is
> > documented as this :
> > 
> > "Returns a field with the given name if any exist in this document,
> > or
> > null. If multiple fields may exist with this name, this method
> > returns
> > the last added such added."
> > 
> > I'm wondering why the limit for multiple fields. In some cases, I'm
> > interested in retrieving all the values for a field. Looking at the
> > code, I see that it returns a field as soon as it finds one with the
> > right name :
> > 
> > -----
> >     for (DocumentFieldList list = fieldList; list != null; list =
> > list.next)
> >       if (list.field.name().equals(name))
> > 	return list.field;
> > -----
> > 
> > Would it be possible to add something like a "public Field[]
> > getFields(String name)" method to the Document class? It is pretty
> > simple to write, I can send the code if needed.
> > 
> > Thank's,
> > 
> > Martin Sévigny
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Health - your guide to health and wellness
> http://health.yahoo.com
> 
> --
> To unsubscribe, e-mail:   
<ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>