1

私が読んだすべてから、これはうまくいくはずです。変更するたびにインデックスを再作成しています。

私のカテゴリ名は、「本」、「映画」、「テープ」など、複数形で保存されています。Railsの用語では、これはと同じです@resource.category.name

検索すると機能しますが、検索するとbooks機能しませんbook。単数形または複数形のいずれかを検索して、カテゴリの結果を見つけることができるようにしようとしています

  # Tire

  include Tire::Model::Search
  include Tire::Model::Callbacks

  mapping do
    indexes :url
    indexes :title,       :boost => 3
    indexes :description, :boost => 2
    indexes :categories do
      indexes :name, analyzer: 'snowball', :boost => 1.5, store: 'true'
    end
    indexes :user do
      indexes :username, analyzer: 'keyword'
    end
  end  

  def self.elasticsearch(params)
    tire.search(
        :load => { :include => [:tags] }, 
        :page => params[:page], 
        :per_page => 20) do
      query { string params[:e], default_operator: "OR" } # if params[:e].present?
    end
  end

  def to_indexed_json
    to_json( include: { user: { only: [:username] }, 
                    category: { only: [:name] } } )
  end
4

0 に答える 0