Dgsphinxsearch

Hola, soy nuevo en el foro, aunque llevo unos meses con Yii. Estoy intentando poner en mi web una herramienta de búsqueda de texto completo y he pensado en Sphinx. He visto DGSphinxSearch como un componente de Yii, pero estoy algo confundido puesto que lo que he aprendido de Sphinx no lo veo claro con DGSphinxSearch. ¿Se debe seguir configurando los "data source", el demonio "sphinxd" y los "index" en el .conf de sphinx, incluida la consulta principal?.

De todas formas DGSphinxSearch usa un cliente antiguo, yo lo he sobrescrito directamente con el nuevo sphinxapi.php pero no sé si funcionará igual. Tal vez lo más sencillo sea usar Sphinx "a pelo" ¿no?

En fin, si alguien tiene experiencias me podría ayudar.

Gracias.

Aunque no he usado Sphinx (he usado Solr), el concepto es el mismo. No es mala idea (de hecho en aplicaciones con alto tráfico se ve y se siente la diferencia), pero si su aplicación no va tener tan alto tráfico creo que no valdrá mucho la pena.

En cuanto a usarlo a "pelo" o no, mmm … bueno, ahí sí ya depende de la flexibilidad y nivel de acceso que desee.

Saludos.

Gracias por contestar. Más o menos ya voy avanzando pero le veo algunas limitaciones también. Solo lo estoy usando para búsquedas de texto completo y evitar usar SQL ya que mis tablas son InnoDB y creo que no está implementado este tipo de índices (creo que la última versión si pero me parece que tiene limitaciones mayores que Spihnx).

Estamos de acuerdo, InnoDB no tiene como fuerte las búsquedas de texto completo (yo uso PostgreSQL para eso me he ahorrado unos problemas por eso, pero mis consultas son bastante sencillas).

Adelante. Nos cuenta cómo le fue con la implementación. :)

Pues he realizado las búsquedas de texto completo solamente donde debía buscar texto (nunca mejor dicho). También he usado los filtros que proporciona (un tanto limitado) para filtrar por campos adecuados. Para filtrar por fechas, primero he querido hacerlo con SQL pero he visto que Sphinx permite hacerlo si pasamos a enteros las fechas (por ejemplo con UNIX_TIMESTAMP o TO_DAYS). Es muy rápido, aunque de momento no tengo muchos datos, pero lo he preferido hacer así para un posible aumento de datos en el futuro.

Lo que no veo claro por ningún lado es como hacer que reindexe cada vez que se modifica la BD, ya que hasta ahora lo estoy haciendo desde la línea de comandos. Me imagino que será algo sencillo (sino sería imposible trabajar :) ) pero leo y releo la documentación y no veo como hacerlo desde la API cuando se inserte, borre o actualice un registro. En fi, si lo descubro, lo podré por aquí. Tal vez mediante cron aunque no me gustaría mucho hacerlo así, sino cuando toca actualizar.

Saludos.