Thinking Sphinx es una biblioteca para conectar ActiveRecord a la herramienta de búsqueda de texto completo Sphinx y se integra estrechamente con Rails (pero también funciona con otros marcos web Ruby). La versión actual es v5.6.0.
Consulte el registro de cambios y las notas de la versión para conocer cualquier cambio que necesite realizar al actualizar. Las notas de la versión en particular son bastante buenas para cubrir cambios importantes y más detalles sobre nuevas funciones.
La documentación también tiene más detalles sobre lo que implica la actualización de v4 a v5, de v3 a v4 y de v1/v2 a v3.
Es una joya, así que instálala como lo harías con cualquier otra joya. También necesitarás especificar la gema mysql2 si estás usando MRI , o jdbc-mysql si estás usando JRuby:
gem 'mysql2', '~> 0.4', :platform => :ruby
gem 'jdbc-mysql', '~> 5.1.35', :platform => :jruby
gem 'thinking-sphinx', '~> 5.5'
Las gemas MySQL mencionadas son necesarias para conectarse a Sphinx, así que inclúyalas incluso cuando esté utilizando PostgreSQL para su base de datos.
También necesitarás instalar Sphinx; esto se trata en la documentación ampliada.
Comience leyendo la guía de inicio rápido y, más allá de eso, la documentación le resultará bastante útil.
La versión actual de Thinking Sphinx funciona con las siguientes versiones de sus dependencias:
Biblioteca | Mínimo | Probado contra |
---|---|---|
Rubí | v2.4 | v2.4, v2.5, v2.6, v2.7, v3.0, v3.1, v3.2 |
Esfinge | v2.2.11 | v2.2.11, v3.4.1 |
mantícora | v2.8 | v4.0, v6.0 |
registro activo | v4.2 | v4.2..v7.0 |
Puede que funcione con versiones anteriores de Ruby, pero se recomienda encarecidamente actualizar a una versión compatible.
También debería funcionar con JRuby, pero el entorno de prueba para eso en CI no ha sido confiable, por lo que no se está probando activamente en este momento.
Si está utilizando Sphinx, se recomienda la versión 2.2.11 aunque es bastante antigua, ya que funciona bien con bases de datos PostgreSQL (pero si está utilizando MySQL – o índices en tiempo real – entonces la v3.3.1 también debería estar bien).
Si opta por Manticore, la versión 2.8 o posterior funciona, pero se recomienda la versión 4 o posterior, ya que es con lo que se prueba activamente. Las versiones v4.2 y 5.0 tenían errores con la búsqueda de facetas, pero eso se solucionó en Manticore v6.0.
Actualmente, Thinking Sphinx está diseñado para admitir Rails/ActiveRecord 4.2 o posterior. Si estás usando Sinatra y ActiveRecord en lugar de Rails, está bien; solo asegúrate de agregar la opción :require => 'thinking_sphinx/sinatra'
cuando incluyas thinking-sphinx
en tu Gemfile.
Si desea compatibilidad con ActiveRecord 3.2-4.1, consulte las versiones 4.x de Thinking Sphinx. O, para obtener compatibilidad con ActiveRecord 3.1, consulte las versiones 3.0.x. Cualquier cosa anterior a eso, entonces estarás atrapado con Thinking Sphinx v2.x (para Rails/ActiveRecord 3.0) o v1.x (Rails 2.3). Tenga en cuenta que estas versiones anteriores ya no cuentan con soporte activo.
Necesitará Ruby estándar (v2.4 o posterior) o JRuby (9.1 o posterior).
Se admiten MySQL 5.x y Postgres 8.4 o superior.
Tenga en cuenta que este proyecto tiene un Código de conducta para colaboradores. Al participar en este proyecto, usted acepta cumplir con sus términos.
Para contribuir, clone este repositorio y observe detenidamente las especificaciones: notará la distinción entre las pruebas de aceptación que realmente usan Sphinx y revisan la pila completa, y las pruebas unitarias (todo lo demás) que usan dobles de prueba liberales para garantizar que Sólo estamos probando el comportamiento de la clase en cuestión. Descubrí que esto conduce a un diseño de código mucho mejor.
Todo el desarrollo se realiza en la rama develop
; base cualquier solicitud de extracción en esa rama. Escriba las pruebas y luego el código para que se aprueben y envíe una solicitud de extracción.
Para ejecutar las pruebas, necesitarás crear una base de datos llamada thinking_sphinx
:
# Either fire up a MySQL console:
mysql -u root
# OR a PostgreSQL console:
psql
# In that console, create the database:
CREATE DATABASE thinking_sphinx;
Luego puede ejecutar las pruebas unitarias con rake spec:unit
, las pruebas de aceptación con rake spec:acceptance
o todas las pruebas solo con rake
. Para ejecutarlos con PostgreSQL, deberá configurar la variable de entorno DATABASE
en consecuencia:
DATABASE=postgresql rake
Copyright © 2007-2024, Thinking Sphinx es desarrollado y mantenido por Pat Allan y se publica bajo la licencia abierta del MIT . Muchas gracias a todos los que han contribuido con parches.