Sphinx y su integracion con PHP

download Sphinx y su integracion con PHP

If you can't read please download the document

Transcript of Sphinx y su integracion con PHP

  • 1. Asier Ramos Nacido en Bilbao Trabajo en Acilia Apasionado por el desarrollo web ...y por la msica y el ciclismo @uthopiko

2. Necesidades Tenemos un blog Necesitamos realizar bsquedas Bsquedas por varios campos Mostrar primero los resultados relevantes 3. Necesitamos un search server Rendimiento Modularidad Relevancia Potencia de bsqueda 4. Alternativas 5. Nos centramos en Sphinx Rpido en el indexado Fcil instalacin Fcil configuracin Integracin 100 % con MySQL Integracin con PHP y otros lenguajes Buena documentacin y muchos recursos 6. Desgranando Sphinx Instalacin Configuracin Indexer Searchd Bsquedas 7. Instalacin Desde repositorio Desde las fuentes 8. Desgranando Sphinx Instalacin Configuracin Indexer Searchd Bsquedas 9. Configuracin nico archivo de configuracin Se definen conexiones, ndices y orgenes de datos Muy configurables Stopwords Wordforms Exceptions Pre-queries ... 10. Desgranando Sphinx Instalacin Configuracin Indexer Searchd Bsquedas 11. Indexer Indexa y comprime los datos ndices previamente definidos enconfiguracin Real Time Indexes Normales 12. Con pocos datos Reindexar todo el ndice Con muchos datos Main + Delta Se reindexa slo el delta y el mainocasionalmente No actualiza los datos del main salvo reindexacincompleta 13. Desgranando Sphinx Instalacin Configuracin Indexer Searchd Busquedas 14. SearchdDemonio que se ocupa de realizar lasbsquedas 15. Otras herramientas! Search 16. Desgranando Sphinx Instalacin Configuracin Indexer Searchd Bsquedas 17. BsquedaAPI Nativa Para mltiples lenguajesSphinxQL Utiliza el conector de MySQL Sintaxis muy parecida a MySQL 18. Multitud de modos de bsqueda ALL, ANY, PHRASE legacy modes MATCH_EXTENDED hace todo el trabajo ahora ALLQuery: one two threeRanker: PROXIMITY ANYQuery: "one two three"/1Ranker: PROXIMITY PHRASEQuery: "one two three"Ranker: PROXIMITY BOOLEANQuery: one two threeRanker: NONE 19. Ranking Modes Solo con Match Extended se puede definir Con la opcin RANKER en SphinxQL, puedesindicar tu propia expresin Cmo se calcula la relevancia? 20. ALGN EJEMPLO! 21. Sinnimos, Corrector, Stopwords 22. Para terminar con las bsquedas 23. Y respecto a Symfony 2 Con la build por defecto de Sphinx tenemosun cliente para PHP Quieres Sphinx como un bundle? maninhat / search-sphinxsearchbundle leonnleite / Tear-SphinxsearchBundle ... 24. Pero no es totalmente necesario... Copia el archivo en tu carpeta de vendors services:search:class: SphinxClientcalls:- [setArrayResult, [true]]- [setLimits, [0, 20, 1000]] $search = $this->get(search);$results = $search->Query($search_terms, myindex); Y a funcionar!! 25. Enlaces interesanteshttp://sphinxsearch.comhttp://www.god-object.com/2009/10/20/geospatial-search-using-sphihttp://www.ivinco.com/blog/tag/sphinx-in-action/http://www.mysqlperformanceblog.com/2013/01/16/sphinx-search-pe 26. Preguntas? 27. Joind: http://joind.in/talk/view/8854Twitter: @uthopikoGracias!!