Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MongoID Search not working #99

Open
Loschcode opened this issue May 17, 2016 · 1 comment
Open

MongoID Search not working #99

Loschcode opened this issue May 17, 2016 · 1 comment

Comments

@Loschcode
Copy link
Collaborator

It doesn't seem to work and as soon as I add a search_in :name to my models it shows this error

message:
  Invalid index specification on Product: _keywords, {:background=>true}
summary:
  Indexes in Mongoid are defined as a hash of field name and direction/2d pairs, with a hash for any additional options.
resolution:
  Ensure that the index conforms to the correct syntax and has the correct options.

 Valid options are:
   background: true|false
   database: 'database_name'
   drop_dups: true|false
   name: 'index_name'
   sparse: true|false
   unique: true|false
   min: 1
   max: 1
   bits: 26
   bucket_size : 1
   weights: { content: 1, title: 2 }
   expire_after_seconds: number_of_seconds
 Valid types are: 1, -1, '2d', '2dsphere', 'geoHaystack', 'text', 'hashed'

 Example:
   class Band
     include Mongoid::Document
     index({ name: 1, label: -1 }, { sparse: true })
     index({ location: '2d' }, { background: true })
   end

My model looks like so

class Product
  include MongoidBase
  include Mongoid::Search

  strip_attributes

  field :name,        type: String,   localize: true
  field :brand,       type: String,   localize: true
  field :cover,       type: String # deprecated ?
  field :desc,        type: String,   localize: true
  field :tags,        type: Array,    default: Array.new(Rails.configuration.max_num_tags)
  field :status,      type: Boolean,  default: true
  field :data,        type: String,   localize: true

  embeds_many :options,   inverse_of: :product,   cascade_callbacks: true,  class_name: 'VariantOption'
  embeds_many :skus,      inverse_of: :product,   cascade_callbacks: true

  has_and_belongs_to_many :collections,   inverse_of: :products
  has_and_belongs_to_many :categories,    inverse_of: :products

  has_many :order_items,  inverse_of: :product

  belongs_to :shop,           inverse_of: :products
  belongs_to :duty_category,  inverse_of: :products,  counter_cache: true

  accepts_nested_attributes_for :skus
  accepts_nested_attributes_for :options

  search_in :name

  mount_uploader :cover,   ProductImageUploader # deprecated ?

  scope :without_detail, -> { only(:_id, :name, :brand, :shop_id, :cover) }

  validates :name,        presence: true,   length: {maximum: (Rails.configuration.max_short_text_length * 1.25).round}
  validates :brand ,      presence: true,   length: {maximum: (Rails.configuration.max_short_text_length * 1.25).round}
  validates :shop,        presence: true
  validates :status,      presence: true

  validates :desc,        length: { maximum: (Rails.configuration.max_long_text_length * 1.25).round}
  validates :tags,        length: { maximum: Rails.configuration.max_num_tags }

  scope :has_tag,         ->(value) { where( :tags => value ) }
  scope :is_active,       ->        { where( :status => true ) }
  scope :has_sku,         ->()      { where( :skus.ne => [] ) }

  index({name: 1},          {unique: false, name: :idx_product_name})
  index({brand: 1},         {unique: false, name: :idx_product_brand})
  index({shop: 1},          {unique: false, name: :idx_product_shop})
  index({tags: 1},          {unique: false, name: :idx_product_tags,        sparse: true})
  index({users: 1},         {unique: false, name: :idx_product_users,       sparse: true})
  index({collections: 1},   {unique: false, name: :idx_product_collections, sparse: true})
  index({categories: 1},    {unique: false, name: :idx_product_categories,  sparse: true})
end

Is there a bug or am I doing something wrong ?

@Loschcode Loschcode changed the title MongoID not workign MongoID not working May 17, 2016
@Loschcode Loschcode changed the title MongoID not working MongoID Search not working May 17, 2016
@fake-or-dead
Copy link

same as me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants