【问题标题】:Mongoid and Full_text search issueMongoid 和全文搜索问题
【发布时间】:2012-02-26 15:39:47
【问题描述】:

我一直在使用 noSql(Mongoid) 制作 rails 项目。一切都运行良好。问题是我想在这里添加..全文搜索。我一直在用这个宝石来做这个......

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 总是返回一个空数组。

谢谢 阿维埃特

【问题讨论】:

    标签: ruby-on-rails-3.1 full-text-search mongoid


    【解决方案1】:

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

    也许在您的 fulltext_search 调用中,您应该使用 :index_name => 'name_index' 而不是 :index => 'name_index'

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

    另外,在您添加 mongoid_fulltext gem 之前记录是否已保留?如果是这样,您需要在 Class 对象(或每个实例)上调用 update_ngram_index 方法将它们添加到索引中。

    除此之外,您是否查看了 mongoid_search gem 作为 mongoid_fulltext 的替代品?

    https://github.com/mauriciozaffari/mongoid_search

    我都试过了,发现这个实现和接口要干净得多。再说一次,我只谨慎地使用全文搜索。您可能比我更多地使用全文搜索,我不确定在功能方面有什么区别,但值得一看。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-28
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-28
      • 2013-04-19
      相关资源
      最近更新 更多