Otra opción es Sphinx y Thinking Sphinx
http://www.sphinxsearch.com/
http://freelancing-god.github.com/ts/en/

y una que requiere mayor configuración pero es más potente es Solr que usa
la librería de Java Lucene
http://lucene.apache.org/solr/
http://github.com/railsfreaks/acts_as_solr

Puede que me equivoque pero creo haber leído que Ferret se encuentra medio
"abandonado"
y que algunas veces los índices se corrompen. Si no es así, no me molestaría
que me
actualicen del estado de Ferret.

Saludos,
Ezequiel


<http://www.sphinxsearch.com/>

2010/1/17 Matias Toselli <[email protected]>

> Buenas gente, segunda vez que posteo una pregunta en la lista. Esta vez es
> mas puntual (creo). Estamos trabajando en un proyecto y necesitabamos hacer
> una busqueda de texto en la base de datos. Buscando nos encontramos con
> Ferret y acts_as_ferret. Siguiendo la documentacion y los tutoriales en
> internet tenemos el siguiente codigo:
>
> Modelo:
>
> class Item < ActiveRecord::Base
>   ...
>   acts_as_ferret :fields => [:title, :description]
>   ...
> end
>
>
> En el controller
>
> ...
> @items = Item.find_with_ferret params[:keyword]
> ...
>
>
> La idea es que busque el keyword (texto) en el modelo Item por los campos
> :title y :description. Haciendo solo eso no hemos conseguido una busqueda
> que arroje resultados. Hemos probado de eliminar el index que crea para que
> lo reconstruya pero sigue sin funcionar. En algunos caso pudimos obtener
> resultados, pero luego deja de andar por algun motivo raro. La cuestion es
> que renegamos mucho y la busqueda no anda bien, a veces funciona y a  veces
> no.
> Otra cosa que no pudimos resolver bien es el tema del score. El plugin
> tiene dos metodos (ademas de otros) que agrega al modelo: uno es
> find_with_ferret y el otro find_ids_with_ferret. El primero realiza la
> busqueda y arroja los objetos que contienen el keyword, la otra en cambio
> retorna un array que contiene el modelo donde se encontro el resultado, un
> campo data que no sabemos que podria contener (siempre lo vimos vacio), el
> id del objeto y un score. Estaria interesante poder usar el score, pero
> vimos que mucha gente opta por realizar la busqueda con ferret de los ids, y
> luego buscar otra vez los ids para obtener los datos. No nos parece muy
> correcto realizar una doble busqueda ¿hay alguna forma de hacer que el
> plugin traiga el score de los resultados o los datos que nos interesan para
> mostrar en los resultados, sin hacer una doble busqueda?
>
> Otra cosa que vemos es que la carpeta index la crea en un solo lado.
> Estamos usando git en modo local y a mi compañero, al querer buscar y usar
> el plugin no le crea el index en su copia local, sino que usa la mia. (el
> repositorio y las copias locales estan en la misma maquina servidora), algo
> conflictivo, porque usamos base de datos separadas a fin de no generar
> conflictos en los archivos de sqlite entre pulls.
>
> En fin, la pregunta es ¿esta bien lo que estamos haciendo o hay que
> configurar mas el plugin y la gema y escribir algun codigo adicional? Nose
> si alguien estuvo renegando con eso. Y por otro lado ¿es bueno usar ese
> plugin para busqueda de texto en los modelos o hay algo mejor?
>
> Cualquier consejo ayuda.
> Gracias.
>
>
>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a