ruby on rails - manchas solares de Solr-buscando pertenece_ a la asociación
ruby-on-rails ruby-on-rails-3 (3)
Parece que no ha reindexado los datos después de la actualización del modelo.
Ejecute este comando para reindexar:
bundle exec rake sunspot:solr:reindex
Tengo un modelo de telas que pertenece a muchas otras tablas.
class Fabric < ActiveRecord::Base
validates :name, presence: true
belongs_to :design
belongs_to :composition
belongs_to :collection
belongs_to :style
belongs_to :origin
belongs_to :texture
belongs_to :supplier
has_and_belongs_to_many :colours
searchable do
text :name, :boost => 5
text :description
text :composition do
composition.name
end
text :collection do
collection.name
end
text :style do
style.name
end
text :origin do
origin.name
end
text :texture do
texture.name
end
text :supplier do
supplier.name
end
end
end
He configurado todas las asociaciones inversas (Has_many) etc. Sin embargo, parece que no puedo obtener la búsqueda de texto completo para consultar los campos de nombre de todas estas tablas asociadas.
Cualquier ayuda sería muy apreciada.
@search = Fabric.search do
fulltext params[:search]
end
@fabrics = @search.results
Ross
Debe pasar el bloque dentro de su texto completo para especificar en qué campos desea buscar.
@search = Fabric.search do
fulltext params[:search] do
fields(:collection, :style, :origin)
end
.....
end
Aquí es cómo indexas en tu bloque de búsqueda. Solr piensa en términos de documento. No importa si es una asociación o no.
searchable do
text :collection do
collection.text
end
end
Luego reindexa.
Mira esto para más detalles https://github.com/sunspot/sunspot#full-text
En caso de que alguna asociación sea nula, no olvides probarla; de lo contrario, obtendrás un error al reconstruir el índice.
text :collection do
collection.name if collection
end