貌似rmmseg + ferret中文分词不是很好

用了一下ruby的中文分词rmmseg + ferret,发现rmmseg的中文分词并不是很好,比如:Hawkins开始了他第一部掌上电脑的设计构想。搜索“掌上电脑”并不能搜索到结果,但是如果把上面这一句改为:Hawkins开始了他第一部 掌上电脑 的设计构想。请注意“掌上电脑”两边的空格,这样的话,rmmseg就可以正确地分词了。

对英文的分词倒是很准确的(好像个个全文检索对英文分词都很强的吧)。

也不知道是不是我用得不对,贴上我使用的代码:
#全文检索
  #rmmseg中文分词
  analyzer = RMMSeg::Ferret::Analyzer.new { |tokenizer|
    Ferret::Analysis::LowerCaseFilter.new(tokenizer)
  } 
  $index = Ferret::Index::Index.new(:analyzer => analyzer)
  acts_as_ferret :field => [:title,:summary,:body] #,:ferret => {:analyzer => analyzer}

  #全文检索方法
  def self.full_text_search(q, options = {})  
    return nil if q.nil? or q==""  
    default_options = {:limit => 10, :page => 1}  
    options = default_options.merge options  
    
    # get the offset based on what page we're on  
    options[:offset] = options[:limit] * (options.delete(:page).to_i-1)  
    results = Page.find_by_contents(q, options)     
     
    return [results.total_hits, results]  
  end

你可能感兴趣的:(Ruby,全文检索,rubygems,rmmseg)