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

Proyecto Buscalibre Tecnologías de busqueda en ...

Avatar for _hidal _hidal
March 19, 2012

Proyecto Buscalibre Tecnologías de busqueda en la web

Avatar for _hidal

_hidal

March 19, 2012
Tweet

Other Decks in Technology

Transcript

  1. Definición del Problema • Buscalibre.com: Retail Web en proceso de

    crecimiento • Migración de una Librería Web a un Retail Web • Búsqueda funcional pero poco óptima
  2. Definición del Problema • Búsquedas Faceteadas – ¿Cómo facetear 4M

    de distintas elementos? – OK… ¿y si son 10req/sec a distintas categorías? (distintas categorías implica distintos atributos a facetear) • Ayudar/Guiar al usuario en la navegación del sitio
  3. No

  4. No

  5. 0 10 20 30 40 50 60 70 80 Utilización

    promedio de CPU [% por segundo] 1000 requests a 10 req/s Solr 11 Solr 12 Sphinx 11 Sphinx 12
  6. 0 50000 100000 150000 200000 250000 300000 350000 400000 450000

    Utilización de memoria [por segundo] 1000 requests a 10 req/s solr11 solr12 sphinx11 sphinx12
  7. 11,9 14,6 50,1 53,2 Reply Response Time [ms] 1000 requests

    a 10 req/s Solr 11 Solr 12 Sphinx 11 Sphinx 12
  8. • Archivos de prueba con aproximadamente 1000 URL’s distintas aplicando

    distintos filtros • Solr11 y Sphinx11: URL’s solo tomando en cuenta las categorías que tienen menos de 1M de datos • Solr12 y Sphinx12: URL’s de todas las categorías.
  9. Técnicas a explorar • Stemming Snowball * + Porter •

    BM25: Scoring por defecto http://wiki.apache.org/solr/LanguageAnalysis#Notes_about_solr.SnowballPorterFilterFactory
  10. Metodología de Desarrollo • SCRUM • Dos Personas • 2

    semanas de desarrollo • Configuraciones y arreglos en caliente
  11. Herramientas Usadas • Solr 4 • PHP 5.3.8 • Java

    • Tomcat 6 • MySQL 5.2 • Servidor RHEL
  12. Criterios de Diseño • Carga de Datos a índice mediante

    DataImportHandler • Actualización de índice: – Mediante Cron Jobs • Task Symfony • Cada 15 min actualiza información • Una vez al día (noches) rehace índice completo
  13. Criterios de Diseño – Carga en RAM: • Java Heap

    Exception: Alta carga de RAM • Soluciones: – Entregar más RAM a Tomcat – Fetching por partes en entidades super-pobladas – Id único
  14. Casos de Prueba y Validación • Dos puntos a tomar

    en cuenta: – Tiempo de Respuesta – Fiabilidad de Respuesta
  15. Casos de Prueba y Validación • Tiempo de Respuesta –

    Solr tiene tiempos de respuesta muy por debajo de Sphinx… – … a pesar de esto, no por ser más bajo, es aceptable a priori – Validación tomando en cuenta tiempo de carga del sitio mediante el uso de Solr
  16. Casos de Prueba y Validación • Fiabilidad de Respuesta –

    Netamente dependiente de la programación – Tanto Solr como Sphinx, entregan los datos de formas correcta