Pregunta

Estoy haciendo una búsqueda muy simple en mi DB usando acts_as_ferret. Pongo esto en mi modelo "Lugar":

acts_as_ferret :fields => [:name, :city]

Y esto es en mi acción de búsqueda de controlador:

@t = Venue.find_by_contents(params[:search]+'~')

y luego simplemente hagan que los resultados.

render :text => @t.to_json, :success => true, :status => :ok

Si corro una prueba rápida:

http://localhost:3000/venue/list?search=The

veo en mi registro de que la consulta adecuada "El ~" se está ejecutando en el índice. Sin embargo, no da resultados positivos. Definitivamente tengo algunos "Lugares" con la palabra "El" en el campo de nombre.

Dado que esta es una búsqueda muy simple y acts_as_ferret se utiliza un poco, he intentado reconstruir el índice para ver si se ha dañado .... no dados

¿Alguna idea?

Gracias!

¿Fue útil?

Solución

Sí, hurón ha sido muy bien conocido para los índices corruptores.

Yo recomiendo cambiar a otro plugin de búsqueda como Pensando Sphinx . Puede ver el Railscast al respecto con el fin de aprender más.

Otros consejos

Creo que el problema podría ser que "el" se define como un stopword- una palabra muy común que no está indexado, ya que acaba de regresar cada documento. Puede configurar su lista de palabras vacías.

Me gustaría considerar el uso de Solr si está teniendo problemas con el hurón.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top