私が読んだすべてから、これはうまくいくはずです。変更するたびにインデックスを再作成しています。
私のカテゴリ名は、「本」、「映画」、「テープ」など、複数形で保存されています。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