Ruby ferret question -> how to get list of values for a give


#1

hi all,

So I have a ferret question. Suppose I have a bunch of documents I
indexed using ferret. For the sake of simplicity, all my documents have
basically 1 relevant field: “city”, which I set up during indexing.

So my question is: how do I get all the different values for ‘city’ ?
(without having to go through every single document).

There’s got to be something that can tell me all the different cities
used in all my document, like [‘NY’, ‘SF’, ‘LA’] (assuming all my
documents are either in LA, SF or NY)

Thanks for your help

-Didier

ps: I know that I can already get the list of ‘field names’ using:
reader = Index::IndexReader.open()
p reader.get_field_names
but I can’t seem to find the missing link to get to the list of values
for a given term…


#2

On 12/5/05, removed_email_address@domain.invalid removed_email_address@domain.invalid wrote:

used in all my document, like [‘NY’, ‘SF’, ‘LA’] (assuming all my
documents are either in LA, SF or NY)

Hi Didier,

Something like this. I don’t have time to test it but it should be
pretty close.

reader = Index::IndexReader.open(<index dir>)
term_enum = reader.terms_from(Term.new("city", ""));
cities = []
while (term_enum.term.field == "city")
    cities << term_enum.term.text
    break if not term_enum.next?
end

Cheers,
Dave


#3

Exactly what I needed.
thanks a bunch dave,

-Didier