Configurar Sphinx en una aplicación Rails

Instalar Sphinx

Sólo tiene que ejecutar los siguientes tres comandos en su servidor o máquina de desarrollo para instalar Sphinx:

./configure make sudo make install

Eso configurará Sphinx por defecto para su uso con MySQL. Si desea utilizarlo con PostgreSQL, a continuación, ejecute configure con la siguiente bandera:

./configurar --con-pgsql

Nota: puede descargar la esfinge desde //sphinxsearch.com/descargas//

Instalar Thinking Sphinx

Aunque hay un par de Esfinges en  Rails, he optado por Thinking Sphinx, ya que parece ser el más popular y completo. Así que puedes instalarlo como un plugin Rails usando script/plugin install mando:

script/plugin install git://github.com/freelancing-god/thinking-sphinx.git

Escribiendo código para usar la búsqueda sphinx:

Ahora necesitamos indexar nuestros modelos. Esto consiste en añadir unas pequeñas líneas de código en cada modelo en el que quieras poder buscar. Digamos que tenemos una aplicación Blog (¡no la tiene todo el mundo!), que tiene un modelo Post. Y ese modelo Post contiene el habitual título y descripción campos. Por lo tanto, añadimos el siguiente fragmento de código debajo de nuestras declaraciones de asociación en

aplicación/modelos/post.rb: define_index do índices título, descripción end

Estas tres breves líneas le dirán a Thinking Sphinx que indexe el archivo título y descripción campos del Correo y nos permitirá buscar en todos nuestros mensajes. Ahora sólo tenemos que indexar e iniciar Sphinx. Y Thinking Sphinx hace esto muy fácil con sus útiles tareas Rake.

Sólo ejecuta esto:

rake ts:rebuild

Eso detendrá (si está iniciado), indexará e iniciará Sphinx por usted. Ahora tenemos que crear un formulario de búsqueda rápida. Esto será finalmente una búsqueda global del sitio, y no sólo una búsqueda Post. Así que vamos a crear un nuevo controlador:

script/generar controlador de búsqueda

A continuación, cree una vista en app/views/búsqueda/index.html.erb y coloque el formulario dentro de él:

Ahora, en su nuevo controlador de búsqueda, cree un nuevo controlador crear acción:

def create @posts = Post.search params[:search] end

Crea tu crear ver en app/views/buscar/crear.html.erb con un poco de código para mostrar su @posts de la forma habitual.

Nota:

Incluso podemos paginar nuestros resultados utilizando el plugin WillPaginate:

definitivamente crear

@posts = Post.search params[:search], :page => params[:page], :per_page => 10 end

Póngase en contacto con nosotros. Ahorrar

Suscríbete para recibir las últimas actualizaciones

Artículos Relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

es_ESSpanish