# Acts\_as\_ferret derived fields and custom analyzer

**URL:** <https://www.ruby-forum.com/t/acts-as-ferret-derived-fields-and-custom-analyzer/173853>\
**Category:** Ferret\
**Created:** [August 17, 2009, 3:53am UTC](https://www.ruby-forum.com/t/acts-as-ferret-derived-fields-and-custom-analyzer/173853 "2009-08-17T03:53:45Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![vsvaidya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/d07c76/32.png) [@vsvaidya](https://www.ruby-forum.com/u/vsvaidya)\
**Post date:** [August 17, 2009, 3:53am UTC](https://www.ruby-forum.com/t/acts-as-ferret-derived-fields-and-custom-analyzer/173853/1 "2009-08-17T03:53:45Z")

</div>

Hello!

I am using the following Analyzer:

require ‘rubygems’  
require ‘ferret’  
module Ferret  
module Analysis  
class StemmingAnalyzer \< Analyzer

```
  def initialize(stop_words = FULL_ENGLISH_STOP_WORDS, lower = true)
        @lower = lower
        @stop_words = stop_words
  end

  def token_stream(field, text)
    ts = StandardTokenizer.new(text)
    ts = LowerCaseFilter.new(ts) if @lower
    ts = StopFilter.new(ts, @stop_words)
    ts = HyphenFilter.new(ts)
    StemFilter.new(ts)
  end
end

```

end  
end

And my model looks like:

class Product \< ActiveRecord::Base  
include UUIDHelper

acts\_as\_ferret(:fields =\> [:name, :description, :category\_name],  
:remote =\> true,  
:ferret =\> { :analyzer =\>  
Ferret::Analysis::StemmingAnalyzer.new },  
:store\_class\_name =\> true)

validates\_presence\_of :name, :upc, :ucc\_12  
validates\_presence\_of :category\_id, :manufacturer\_id, :brand\_id

validates\_length\_of :name, :maximum =\> 50,  
:message =\> ‘is too long. Maximum length is 50  
characters.’

validates\_length\_of :description, :maximum =\> 255,  
:message =\> ‘is too long. Maximum length is 255  
characters.’

belongs\_to :category

def category\_name  
return self.category.name  
end

def self.per\_page  
20  
end  
end

My problem is that the custom analyzer does not seem to be getting  
applied to the “category\_name” derived field.

Has anyone else had this problem?

Thank you,  
Vivek
