OK, that's good you got to the bottom of it. This is (for better or worse) how FieldCache works. It uninverts the requested field to reconstruct the "forward" index (mapping docID -> value), so the field must be indexed (and every field must have a single token/value).
I agree it's odd... and there's work underway to add index values to Lucene (called column-stride fields): https://issues.apache.org/jira/browse/LUCENE-2186 These would be directly stored in the index in "forward" index form. Mike On Wed, Aug 18, 2010 at 2:31 PM, <karl.wri...@nokia.com> wrote: > This field was *not* indexed, just stored. That seems to have been the > problem. Not sure why it must be indexed to be retrievable, but clearly it > does. > > Karl > > -----Original Message----- > From: ext Michael McCandless [mailto:luc...@mikemccandless.com] > Sent: Wednesday, August 18, 2010 2:28 PM > To: dev@lucene.apache.org > Subject: Re: Question about string retrieval with FieldCache in trunk > > Odd... the field is definitely indexed? If you try getTermsIndex are > they still empty? > > Are you just calling .utf8ToString() to get the String from the BytesRef? > > Mike > > On Wed, Aug 18, 2010 at 1:18 PM, <karl.wri...@nokia.com> wrote: >> Thanks, didn't think to look there. >> >> Unfortunately I'm still getting back empty strings - and this is for a >> required field. So something isn't right... >> >> Maybe I'll pester Simon. ;-) >> Karl >> >> -----Original Message----- >> From: ext Michael McCandless [mailto:luc...@mikemccandless.com] >> Sent: Wednesday, August 18, 2010 12:43 PM >> To: dev@lucene.apache.org >> Subject: Re: Question about string retrieval with FieldCache in trunk >> >> Also note that the MIGRATE.txt in the lucene subdir should cover this. >> >> Mike >> >> Sent from my iPad >> >> On Aug 18, 2010, at 11:26 AM, Jason Rutherglen <jason.rutherg...@gmail.com> >> wrote: >> >>> Karl, >>> >>> I believe one may pass an empty BytesRef in, and the values will be >>> set within the getTerm method. >>> >>> On Wed, Aug 18, 2010 at 8:18 AM, <karl.wri...@nokia.com> wrote: >>>> Exactly. getTerms() returns a DocTerms, which has this: >>>> >>>> /** The BytesRef argument must not be null; the method >>>> * returns the same BytesRef, or an empty (length=0) >>>> * BytesRef if the doc did not have this field or was >>>> * deleted. */ >>>> public abstract BytesRef getTerm(int docID, BytesRef ret); >>>> >>>> How in the blazes do you create the correct BytesRef in the first place? >>>> Or is the comment wrong? >>>> >>>> Karl >>>> >>>> >>>> -----Original Message----- >>>> From: ysee...@gmail.com [mailto:ysee...@gmail.com] On Behalf Of ext Yonik >>>> Seeley >>>> Sent: Wednesday, August 18, 2010 10:55 AM >>>> To: dev@lucene.apache.org >>>> Subject: Re: Question about string retrieval with FieldCache in trunk >>>> >>>> Check out getTerms and getTermsIndex >>>> >>>> -Yonik >>>> http://www.lucidimagination.com >>>> >>>> On Wed, Aug 18, 2010 at 10:49 AM, <karl.wri...@nokia.com> wrote: >>>>> Hi folks, >>>>> >>>>> What is the proper way to retrieve a string field from lucene in trunk? >>>>> I'm >>>>> specifically looking for the equivalent of: >>>>> >>>>> String[] fieldValues = FieldCache.DEFAULT.getStrings(reader,fieldName); >>>>> String actualValue = fieldValues[luceneID-docBase]; >>>>> >>>>> The getStrings() method seems to have gone away in FieldCache.java, and >>>>> it's >>>>> not clear how to work with ByteRefs to do the equivalent. Any hints? >>>>> >>>>> Karl >>>>> >>>>> >>>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org >>>> For additional commands, e-mail: dev-h...@lucene.apache.org >>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org >>>> For additional commands, e-mail: dev-h...@lucene.apache.org >>>> >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org >>> For additional commands, e-mail: dev-h...@lucene.apache.org >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org >> For additional commands, e-mail: dev-h...@lucene.apache.org >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org >> For additional commands, e-mail: dev-h...@lucene.apache.org >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org > For additional commands, e-mail: dev-h...@lucene.apache.org > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org > For additional commands, e-mail: dev-h...@lucene.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org