Forum: Ferret Ferret C Indexer Error: Fields not stored in index?

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Error with Ferret C Indexer (Guest)
on 2006-04-22 05:12
I am trying to get Ferret's C indexer to work on OpenSUSE 10 and
Indexing documents appears to work correctly but when I try to display
the results I recieve the following error:

ActionView::TemplateError (undefined method `string_value' for
on line #17 of app/views/search/results.rhtml:
14: <%= render :partial => 'basic' %>
15: <ul class="search">
16: <% for result in @results
17: text = "<span class='heading'>" + result.field('title').string_value
+ "</span><br/>"
18: text += "<span class='subheading'>Posted by " +
result.field('created_by').string_value + " at " +
result.field('created_on').string_value + "</span> "
19: if !result.field('body').nil?
20:    description = strip_tags(result.field('body').string_value)

    #{RAILS_ROOT}/app/views/search/results.rhtml:16:in `each'

It appears as if the indexer is not storing the actual field strings.
Data for the index is being pulled from a MySQL database and then put
into Ferret.

If I delete the library file and rebuild the index using
the pure Ruby indexer everything works perfectly so I am certain this is
an issue with the C indexer.

I have tried the gem file and compiling from source from svn (rev 325)
and both produce the same error.
Does anyone have any ideas?


David H.on (Guest)
on 2006-04-22 06:13
After a bit of experimenting and reflection I have found that when using
the C indexer the function returns the value of the indexed
Unfortunately using the pure Ruby indexer is not a function
(its equivalent is Field.string_value).

This is not too much of an issue though as I can do some presentation
level reflection to call the correct function.

There's probably a better workaround than this but at least things are
now working nice and quickly with the C indexer and fastcgi.


David B. (Guest)
on 2006-04-25 17:33
(Received via mailing list)
Hi David,

Please use Field#data from now on. data is actually an attribute of
Field in the pure Ruby version so I'm not sure why it wasn't working
for you. ie, you shouldn't need to do any reflection to access
Field#data. Eventually I'll probably remove the string_value and
binary_value methods but they'll stay for the moment. Sorry for the

This topic is locked and can not be replied to.