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

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

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

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. Recherche dans WP, native, plugins,
    serveur Elasticsearch, SAAS, on vous
    explique tout !

    View Slide

  2. < 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)

    View Slide

  3. 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 !)

    View Slide

  4. Pourquoi ne pas investir
    dans un moteur de recherche ?

    View Slide

  5. La fonctionnalité de recherche
    est utilisée par 5.4% des
    utilisateurs.

    View Slide

  6. Le site contient trop peu de
    contenu

    View Slide

  7. 80% du trafic est généralement
    issu de Google et des réseaux
    sociaux

    View Slide

  8. Pourquoi investir
    dans un moteur de recherche ?

    View Slide

  9. La fonctionnalité de recherche
    est utilisée par 30% des
    utilisateurs sur les sites
    e-commerce

    View Slide

  10. Le taux de conversion est doublé
    pour les internautes ayant fait
    une recherche

    View Slide

  11. View Slide

  12. View Slide

  13. “WordPress as CMS”

    View Slide

  14. View Slide

  15. Qu’attendre d’un moteur de recherche

    View Slide

  16. Trouver & trier

    View Slide

  17. 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

    View Slide

  18. Les solutions de recherche
    au sein de WordPress

    View Slide

  19. Core Plugins
    Serveurs de recherche SAAS

    View Slide

  20. Core WP

    View Slide

  21. Core WP 0.72 à 3.6.x

    View Slide

  22. 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}'))";

    View Slide

  23. Core WP 3.7 à 5.0

    View Slide

  24. Version 3.7
    Improved Search
    More relevant search results.

    View Slide

  25. 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

    View Slide

  26. Plugins

    View Slide

  27. 2 compétiteurs

    View Slide

  28. Fonctionnalités
    / Relevanssi

    View Slide

  29. Lequel choisir ?
    Relevanssi
    Interface --
    Base code --
    Sécurité --
    Recherche multisite ++
    SearchWP
    Interface ++
    Base code ++
    Ne supporte pas les “guillemets” --

    View Slide

  30. Oui… Mais !

    View Slide

  31. Serveurs de recherche

    View Slide

  32. 2 compétiteurs

    View Slide

  33. 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/

    View Slide

  34. 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

    View Slide

  35. Solutions SAAS

    View Slide

  36. 5 compétiteurs

    View Slide

  37. 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é

    View Slide

  38. Elasticsearch on SAAS
    Pour les blogueurs(*) : Jetpack
    Pour les développeurs : ElasticPress
    Pour les autres : Swiftype

    View Slide

  39. Algolia
    Startup française ( )
    Un plugin WordPress officiel
    ● Recherche
    ● Facettes
    ● Autocompletion
    ● Développeurs
    Support WooCommerce à venir
    Pricing $$$

    View Slide

  40. Core Plugins
    Serveurs de recherche SAAS

    View Slide

  41. Concrètement

    View Slide

  42. Cas d’étude
    Journaldugeek.com
    1,5 millions de commentaires
    123 591 articles
    Recherche basique sur l’expression “WordPress”

    View Slide

  43. 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

    View Slide

  44. Elasticsearch concrètement

    View Slide

  45. Poste de développement
    Elasticsearch = applicatif Java
    WAMP, XAMP, MAMP
    Vagrant, Docker, oui !

    View Slide

  46. View Slide

  47. Lando = Docker on steroids
    https://docs.devwithlando.io/

    View Slide

  48. 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

    View Slide

  49. Démo

    View Slide

  50. Des questions ?
    50

    View Slide

  51. < belle journée et
    merci pour votre
    écoute />
    Amaury @be_api
    51

    View Slide