Indexed_search_engine: index multiple fields


#1

Does anyone know of a way to index multiple fields in this engine? I’ve
tried making an array from the field list, but it doesn’t seem to work.

Any help would be appreciated.

Thanks
Josh


#2

I figured it out. All that was necessary was to create two entries for
an indexable record, one for each field I wanted to index. Then, the
array is built in the ‘update_index’ call, not the IndexableRecord.new
call.

For example, it would look like this:

  index_text = IndexableRecord::IndexData.new(@document.text, url,

@document.name)
index_comment = IndexableRecord::IndexData.new(@document.comment,
url, @document.name)
IndexableRecord.index_records([index_text, index_comment])


#3

Yep. That will do it. I wonder, looking at your code, however, if
there
isn’t an refactoring in order for IndexData. It seems wrong to have 2
IndexData records for the same URL and title.

What if you could do something like:

index_data = IndexableRecord::IndexData.new(url, @document.name)
index_data << @document.text
index_data << @document.comment

If it’s useful, I’ll put it on the TODO list.

Lance

On 14 Feb 2006 00:34:16 -0000, Joshua S. <


#4

Hi Josh

Thanks for the offer. I’ve actually got the code about 99% there
already.
I hope to have a release out this week with relevant changes. I’ll be
sure
to keep you (and the list) posted.

Lance

On 14 Feb 2006 18:21:32 -0000, Joshua S. <


#5

Lance,

I think that would be great. Would there be a way that I could pass an
array of attributes in? Like this:

index_data << [@document.text, @document.comment, @document.note, etc]

Or something such as that. I’d be more than happy to help out with
anything you need, I’m still fairly new, but could hack around some if
you needed it.

Josh