2011-02-18 61 views
25

Estoy buscando una guía completa para usar Sphinx con PHP y MySQL. Me gustaría uno que sea un poco más simple y fácil que el que se proporciona en el sitio.Guía para usar Sphinx con PHP y MySQL

Estoy buscando algunos conceptos sobre cómo funciona exactamente.

Tengo un servidor con PHP, HTML, otros datos y una base de datos MySQL. ¿Cómo voy a configurar Sphinx para potenciar la búsqueda y los resultados que se devuelven?

Me gustaría poder pasar mis términos de búsqueda a mi script PHP y hacer que se ocupe de Sphinx y devolver los datos.

P.S. También estoy abierto a la sugerencia sobre cualquier otra alternativa a Sphinx.

+2

Encontré [este artículo] (http://www.sanisoft.com/blog/2010/01/11/sphinx-search-engine-and-php-installation-indexing/). Parece ser una buena para principiantes. –

Respuesta

28

Here es un muy buen tutorial de Sphinx de IBM.

2

No estoy muy seguro de una buena guía, pero estos son mis pasos.

a) descargarlo e instalarlo es bastante sencillo

b) Haga su primer índice - que necesita una fuente de un lugar de la configuración dada es muy buena recuerde que usted puede utilizar una fuente primaria en las configuraciones todas las áreas principales y luego otras fuentes surgen de eso. Cada fuente debe comenzar con la clave principal y me parece que funciona mejor que hacer id_clave como identificación

c) Prueba de que el índice utilizando la búsqueda

d) Comience su búsqueda demonio de la esfinge - searchd esto es lo que php conectarse y cómo obtiene sus resultados.

e) hacer una función para buscar todos los índices pasan en el índice que desea buscar y devolverá los identificadores en una matriz que se han emparejado su búsqueda

f) Hacer un delta y actualizaciones.

Trabajo realizado - el foro de esfinge es muy agradable y debe proporcionarle si necesita ayuda. Richard

4

Me encontré con esta publicación pero no encontré la respuesta que quería ver. Así que aquí es mi guía de inicio rápido:

1. Instalar Sphinx

en Mac con Homebrew:

brew install sphinx 

en Amazon Linux (CentOS) con yum:

yum install sphinx 

2. Crear la configuración de Sphinx

Sphinx viene con una plantilla de configuración. Busque sphinx.conf.dist en el directorio de templates:

En Mac instala con Homebrew:

/usr/local/Cellar/sphinx/<sphinx version>/etc 

en Amazon Linux instalado con yum:

/etc/sphinx 

es bastante sencillo, pero puede contener demasiados ajustes para un novato . En tal caso, puede utilizar esta sencilla configuración:

source TestSource { 
    type = mysql 
    sql_host = <host> 
    sql_user = <user> 
    sql_pass = <password> 
    sql_db = <db> 

    sql_query_range = select min(id), max(id) from TestTable 
    sql_range_step = 2048 

    sql_query = select id, some_info from TestTable\ 
     where id >= $start and id <= $end 
} 

index TestIndex { 
    source = TestSource 
    path = /var/lib/sphinx/test-index 
    min_word_len = 3 
    min_infix_len = 3 
} 

searchd { 
    log = /var/log/sphinx/searchd.log 
    query_log = /var/log/sphinx/query.log 
    pid_file = /var/run/searchd.pid 

    max_matches = 200 

    listen = localhost:9312 
} 

que añade max_matches establecer a esta configuración ya que mi primera pregunta después de que consiguiera todo funcionando era "¿Por qué siempre me dan sólo 20 Resultados de Búsqueda?". Con max_matches puede establecer el límite para el número de resultados de búsqueda.

3. Crear un índice usando indexador

indexer --all 

4. Ejecutar Sphinx demonio

sudo searchd -c /path/to/config/sphinx.conf 

5. Instalar extensión PHP Sphinx

en Mac con Homebrew:

brew install homebrew/php/php56-sphinx 

en Amazon Linux con yum:

yum install libsphinxclient 
pecl install sphinx 

6. Consulte el índice a partir de PHP

$index = new SphinxClient(); 
$index->setServer("127.0.0.1", 9312); 

$result = $index->query('some search term', 'TestIndex'); 

print_r($result); 

En caso de cualquier error que puede obtener más información con el siguiente método:

$index->getLastError(); 

7. Manténgase al índice de fechas

Para mantener un índice hasta la fecha se pueden utilizar dos índices:

  1. índice principal, que no se actualiza con frecuencia (una vez por semana, mes, etc.)
  2. y el índice de delta, que actualiza con frecuencia (cada hora, 5 minutos, etc)

cada índice delta de tiempo es re-indexada se fusionó con el índice principal

Siga este enlace http://www.sphinxconsultant.com/sphinx-search-delta-indexing/ para leer más acerca de este enfoque.

Enlaces he encontrado útil: