3 votes

Indexer une liste d'entiers en utilisant Solr (Sunspot)

Existe-t-il un moyen d'indexer une liste d'entiers en utilisant Sunspot et Rails ?

Exemple

Je veux pouvoir rechercher l'identité d'un acteur.
Le code ci-dessous n'est qu'un pseudo-code.

class Movie < ActiveRecord::Base
  searchable do
    integers :actors_lists do
      actors.map(&:id)
    end
  end
end

I Ne le fais pas. J'ai besoin de la possibilité de rechercher le nom des acteurs, je veux juste pouvoir rechercher les identifiants des acteurs.

J'utilise Rails 3.1 RC avec Sunspot 1.2.1 et Ruby 1.9.2.

3voto

Oleander Points 2978

Voici ma solution.

integer :actors_lists, multiple: true do
  actors.map(&:id)
end

Ajout de la multiple: true a en partie résolu le problème.

Note : Si vous utilisez Ruby 1.8.7, n'oubliez pas de modifier multiple: true a :multiple => true .

0voto

Nox Points 375

Si un film possède et appartient à plusieurs acteurs, alors

integer :actor_ids, multiple => true

devrait fonctionner. Le paramètre de recherche est nommé différemment de ce que vous vouliez, mais il s'agit d'un cas de "convention sur configuration", et ici vous pouvez utiliser

:references => ::Actor

J'ai juste pensé que je devais mentionner toutes les options.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X