ruby-on-rails ruby-on-rails-3 solr full-text-search sunspot

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

https://github.com/sunspot/sunspot#setting-up-objects


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