Instalé Sphinx y Thinking-Sphinx hace algunos días en mi ruby on rails 2.3.2, y la búsqueda básica funciona muy bien. Esto significa, sin ninguna condición. Ahora, quiero filtrar la búsqueda con algunas condiciones.Sphinx: cuándo usar 'has' e 'indexes' para los campos
que tienen el modelo de anuncio, y el índice es el siguiente:
define_index do
indexes title, :as => :title, :sortable => true
indexes description, :as => :description, :sortable => true
end
Tal vez me equivoque, pero me di cuenta de que sólo cuando he añadido la sintaxis :sortable => true
a estos atributos, podría utilizarlos como condiciones en mi búsqueda. De lo contrario, no encontrará nada.
Ahora, también estoy usando el plugin acts_as_taggable_on, que generó mis dos tablas de db: etiquetas y etiquetas. No tengo un modelo para etiquetas, solo tengo acts_as_taggable_on :tags, :categories
en mi modelo Anuncios.
Lo que me gustaría hacer ahora es filtrar por etiquetas. Entonces, traté de agregar a mi índice has tags(:id), :as => :tag_ids
sin suerte, y también indexes tags(:id), :as => :tag_ids
, pero tampoco funcionó.
¿Cómo puedo construir los índices para que pueda hacer algo como esto:
Announcement.search 'some word', :conditions => {:tag_ids => some_id}
Y también, que es la diferencia entre has
y indexes
Gracias, Brian
¡Muchas gracias! Lo intentaré. –
No sé por qué, pero no está funcionando. Como dije antes, no tengo un modelo Tag, solo uso el plugin acts_as_taggable_on. ¿Es posible que el problema esté causando el problema? –
Quiero decir, no tengo un campo 'etiquetas' en la tabla de anuncios. El complemento genera dos tablas: etiquetas y etiquetas. Entonces, la relación entre los anuncios y las etiquetas es a través de la tabla de etiquetas. ¿Tiene algo que ver con esto? –