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

Recherche dans WP, native, plugins, serveur Ela...

Recherche dans WP, native, plugins, serveur Elasticsearch, SAAS, on vous explique tout ! - WPtech 2018

Fonctionnalité assez secondaire sur les plateformes d’actualité, la recherche est une fonctionnalité essentielle dès qu’on utilise WordPress dans un contexte entreprise, et notamment pour des outils métiers (extranet, base documentaires)
Panorama des solutions existantes :
Native
Extensions (SearchWP / Relevanssi)
Serveur (Elasticsearch, Solr)
SAAS (Algolia, ElasticPress, Google, Swiftype, Jetpack)
La seconde partie de la conférence aura vocation à présenter l’installation et le paramétrage de la solution open-source Elasticsearch et notamment l’extension ElasticPress (car c’est pas si compliqué que cela !)

Amaury Balmer

April 28, 2018
Tweet

More Decks by Amaury Balmer

Other Decks in Programming

Transcript

  1. < Amaury BALMER >/ 13 ans que WordPress est mon

    quotidien BeAPI existe depuis 9 ans Fondateur, développeur, directeur technique et maintenant ambassadeur Une agence WordPress qui travaille avec des grands comptes (et avec le sourire)
  2. Pitch Fonctionnalité assez secondaire sur les plateformes d’actualité, la recherche

    est une fonctionnalité essentielle dès qu’on utilise WordPress dans un contexte entreprise, et notamment pour des outils métiers (extranet, base documentaires) Panorama des solutions existantes : • Native • Extensions (SearchWP / Relevanssi) • Serveur (Elasticsearch) • SAAS (Algolia) La seconde partie de la conférence aura vocation à présenter l’installation et le paramétrage de la solution open-source Elasticsearch et notamment l’extension ElasticPress (car c’est pas si compliqué que cela !)
  3. Mais pas que... • Tolérance lors de la saisie (typo,

    accent) • Recherche géolocalisée • Synonymes (carabistouille <=> mensonge) • Highlighting / Snippetting • Naviguer avec des filtres et des facettes • Analytics & reporting
  4. Une recherche qui trouve (parfois) mais qui ne trie pas

    WP 0.72 : AND ((post_title LIKE \''.$n.$s.$n.'\') OR (post_content LIKE \''.$n.$s.$n.'\')) WP 3.6 : $search .= "{$searchand}(($wpdb->posts.post_title LIKE '{$n}{$term}{$n}') OR ($wpdb->posts.post_content LIKE '{$n}{$term}{$n}'))";
  5. Algorithme de recherche “core” 1. Full sentence matches in post

    titles. 2. All search terms in post titles. 3. Any search terms in post titles. 4. Full sentence matches in post content. https://core.trac.wordpress.org/changeset/25632 https://core.trac.wordpress.org/ticket/7394
  6. Lequel choisir ? Relevanssi Interface -- Base code -- Sécurité

    -- Recherche multisite ++ SearchWP Interface ++ Base code ++ Ne supporte pas les “guillemets” --
  7. Lequel choisir ? Elasticsearch Plus récent, écosystème + dynamique Davantage

    “plug & play” Aspect “analytics” ++ Apache SOLR Plus ancien Plus complexe à mettre en oeuvre Base d’utilisateurs + importante Comparatif complet : http://solr-vs-elasticsearch.com/
  8. Les extensions WordPress ElasticPress • Intégration à WP_Query • Support

    de WooCommerce • Articles relatifs • Suggestion automatique • WP-CLI https://github.com/10up/ElasticPress SOLR Power • Intégration à WP_Query • WP-CLI • Choix des contenus à indexer https://github.com/pantheon-systems/solr-power
  9. Google Custom Search Engine Avantages • Meilleur algo “du monde”

    • Comme sur Google (UX) • Rapide à déployer Inconvénients • Des pages, uniquement • Pas de facettes personnalisées • UX/UI limité
  10. Elasticsearch on SAAS Pour les blogueurs(*) : Jetpack Pour les

    développeurs : ElasticPress Pour les autres : Swiftype
  11. Algolia Startup française ( ) Un plugin WordPress officiel •

    Recherche • Facettes • Autocompletion • Développeurs Support WooCommerce à venir Pricing $$$
  12. Cas d’étude Journaldugeek.com 1,5 millions de commentaires 123 591 articles

    Recherche basique sur l’expression “WordPress”
  13. Résultats Solution Temps d'exécution Poids de la BDD Nombre de

    résultats Core 8-30 secondes 3,35 GB 199 SearchWP 2 secondes 3,35 GB + 5 GB 430 ElasticSearch 192 ms 3,35 GB + 1,82 GB 2859
  14. Recipes - Lando • WordPress ◦ https://docs.devwithlando.io/tutorials/wordpress.html • Elasticsearch ◦

    https://docs.devwithlando.io/services/elasticsearch.html • SOLR ◦ https://docs.devwithlando.io/services/solr.html