Ruby on rails 3.1 Mongoid和全文搜索问题

Ruby on rails 3.1 Mongoid和全文搜索问题,ruby-on-rails-3.1,full-text-search,mongoid,Ruby On Rails 3.1,Full Text Search,Mongoid,我一直在从事rails项目,该项目是使用noSqlMongoid制作的。一切都很顺利,问题是我想补充。。全文搜索也在这里。我一直在用这些宝石做这个 gem 'mongoid_fulltext' 我的模型文件如下所示 class Keyword include Mongoid::Document include Mongoid::FullTextSearch field :name, type:String #index :name, unique: true embeds_

我一直在从事rails项目,该项目是使用noSqlMongoid制作的。一切都很顺利,问题是我想补充。。全文搜索也在这里。我一直在用这些宝石做这个

gem 'mongoid_fulltext'
我的模型文件如下所示

class Keyword
  include Mongoid::Document
  include Mongoid::FullTextSearch
  field :name, type:String
  #index :name, unique: true
  embeds_many :posts

  validates_presence_of :name
  validates_uniqueness_of :name

  fulltext_search_in :name, :index_name => 'name_index'
end
在控制器中

@keywords = Keyword.fulltext_search(params[:search], :index => 'name_index')
然后@keywords总是返回一个空数组

谢谢
awiet

除了我假设的是格式错误之外,我能找到的唯一错误是您似乎在手动命名索引

也许在全文搜索调用中,您应该使用:index\u name=>“name\u index”而不是:index=>“name\u index”

不过,我建议不要弄乱索引的默认名称,并将该参数完全从方法调用中删除

另外,在您添加mongoid_全文宝石之前,记录是否保存了下来?如果是这样,您需要对类对象或每个实例调用update\ngram\u index方法,将它们添加到索引中

除此之外,您是否已将mongoid_搜索gem作为mongoid_全文的替代品

我尝试了这两种方法,发现这一种的实现和接口更干净。再说一遍,我只是少用全文搜索。您可能比我更喜欢使用全文搜索,我不确定在功能方面有什么不同,但值得一看

希望有帮助