Skip to content

Instantly share code, notes, and snippets.

@MarionLeHerisson
Created April 17, 2019 12:36
Show Gist options
  • Save MarionLeHerisson/83282410e42db5a7657dc346e28d9d26 to your computer and use it in GitHub Desktop.
Save MarionLeHerisson/83282410e42db5a7657dc346e28d9d26 to your computer and use it in GitHub Desktop.
This regex was so cool I had to save it somewhere

This is a regexp to catch footnotes in an article.

/(?=(\[\^(\w*)\])[^:].*(\1:)(.*)(\[\^|$))/Usg

Si nous prenons l'exemple de Wordpress, voici ce qui est dit sur la recherche[^1] :

Ce n'est pas exactement ce que j'appellerai une "killer search". Tous les mots écrits peuvent être recherchés, mais grâce a une simple requête *LIKE*[^2] :

<img src="/media/original/2013/11/realistic.png" class="right" alt="ElasticSearch logo" />ElasticSearch est un logiciel champion du buzzword bingo[^3] :

Vous avez maintenant des millions de documents, des recherches très complexes et les temps de réponse commencent à en pâtir.
Comment soulager votre serveur ? Ajouter un node ElasticSearch !

ElasticSearch va automatiquement (configuration par défaut) découvrir le nouveau node, et il va distribuer ses shards[^4] sur le cluster automatiquement. La prochaine requête de recherche sera traitée par les deux nodes, chacun sur une partie des données !

La recherche et bien plus encore[^5]
------------------------------------------

Il y aurait encore tellement à dire, mais je souhaitais simplement ici démontrer qu'il n'y a aucune raison aujourd'hui pour avoir une recherche lente et limitée : ElasticSearch est **la**[^6] solution à vos problèmes, et aussi à ceux que vous n'avez pas encore. Vous pouvez même l'utiliser comme base de donnée NoSQL indexée. Le temps où il fallait deux ingénieurs Lucene à temps plein pour avoir un autocomplete est révolu.

[^1]: Extrait de [codex.wordpress.org/WordPress_Features](http://codex.wordpress.org/WordPress_Features)
[^2]: Il existe certainement des plugins pour faire mieux… La ligne incriminée à été [trouvé ici](https://github.com/WordPress/WordPress/blob/master/wp-includes/query.php#L2251).
[^3]: ["Elasticsearch is a very buzz-word compliant piece of software."](http://www.youtube.com/watch?v=UNsDUNWRWzg&feature=youtu.be)
[^4]: Dans chaque index, les données sont *shardées*, c'est à dire séparées dans différents indexes plus petits ([Shard sur Wikipédia](https://en.wikipedia.org/wiki/Shard_(database_architecture))
[^5]: [et bien plus encore](https://www.youtube.com/watch?feature=player_detailpage&v=dFY-VWey5xw#t=16)
[^6]: Apache Solr est une très bonne alternative aussi, mais [plus complexe a scaler](http://solr-vs-elasticsearch.com/)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment