Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sphinx - Very small introduction

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for bhernez bhernez
August 21, 2014

Sphinx - Very small introduction

Very small introduction of Sphinx (full-text searching) for the audience of "Chorizo Data Tech Community" in Pachuca, Hgo, MEX.

Avatar for bhernez

bhernez

August 21, 2014

Other Decks in Technology

Transcript

  1. LIKE LOWER(nombre) LIKE ‘%miguel%’ OR LOWER (apellido_paterno) LIKE ‘%miguel%’ OR

    LOWER (apellido_materno) LIKE ‘%miguel%’ SELECT * FROM PERSONAS WHERE
  2. Motor de búsqueda de Texto-Integral (full-text searching) Se ejecuta como

    proceso en el fondo (daemon) API para la mayoría de clientes (PHP, Perl, Ruby, Java, C#) SPHINX
  3. sphinx.conf indexer { mem_limit = 32M } searchd { listen

    = 9312 log = /var/log/searchd.log query_log = /var/log/query.log pid_file = /var/run/searchd.pid max_matches = 1000 ... }
  4. source src_my_articles { type = mysql sql_host = localhost sql_user

    = myuser sql_pass = mypassword sql_db = mydatabase sql_query = SELECT SQL_NO_CACHE `alumnos`.`id` * CAST(7 AS SIGNED) + 0 AS `id` , `personas`.`nombre` AS `nombre`, `personas`.`apellido_paterno` AS `apellido_paterno`, `personas`.`apellido_materno` AS `apellido_materno`, `alumnos`.`matricula` AS `matricula`, `alumnos`.`id` AS `sphinx_internal_id`, 0 AS `sphinx_deleted`, 328847387 AS `class_crc`, IFNULL('Alumno', '') AS `sphinx_internal_class`, GROUP_CONCAT(DISTINCT IFNULL(`ciclos`.`escuela_id`, '0') SEPARATOR ',') AS `escuela_id` FROM `alumnos` LEFT OUTER JOIN [...] }
  5. class Contacto < ActiveRecord::Base belongs_to :contactable, :polymorphic => true belongs_to

    :identidad, :polymorphic => true ... end class Persona < ActiveRecord::Base has_one :contacto, :as => :identidad ... end MODELOS INDEXADOS
  6. class Alumno < ActiveRecord::Base belongs_to :carrera has_one :contacto, :as =>

    :contactable ... define_index do indexes contacto.persona.nombre, :as => :nombre indexes contacto.persona.apellido_paterno, :as => :apellido_paterno indexes contacto.persona.apellido_materno, :as => :apellido_materno indexes matricula end ... end
  7. EL USUARIO: NO BUSCA COMO LO GUARDÓ NO RECUERDA TODO

    LO QUE GUARDÓ NO SABE EN DONDE LO GUARDÓ
  8. ?