Meilisearch
Journaux liées à cette note :
Journal du samedi 17 août 2024 à 15:00
#JeMeDemande comment Elasticsearch gère le support Highlighting (search-engine) avec du contenu qui intègre initialement des balises HTML 🤔.
J'ai trouvé la réponse dans cet article Elastic Search: Highlighting Text That Contains HTML Tags.
-- from
#JeMeDemande également si pg_search, Typesense et Meilisearch peuvent réaliser la même chose que ce qui est décrit dans Elastic Search: Highlighting Text That Contains HTML Tags.
En ce qui concerne Typesense, j'ai consulté l'issue Feature Request - Ignore any HTML tags when searching but still return response with HTML included, ce qui me laisse penser que cette fonctionnalité n'est pas prise en charge.
Pour Meilisearch, la discussion Ignore HTML tags at search m'a également conduit à la conclusion que cette fonctionnalité n'est pas encore implémentée. J'ai aussi appris qu'Algolia permet d'ignorer les balises HTML lors de la recherche : Algolia ignores HTML tags during search.
Quant à pg_search, mes recherches sur les mots-clés HTML
dans les dépôts pg_search et Tantivy (Tantivy) n'ont rien donné. Il semble donc que la fonctionnalité de surlignage du texte contenant des balises HTML ne soit pas prise en charge par pg_search.
Contenu de ce constat, je vais peut-être redonner une chance à Elasticsearch malgré mon aversion pour la JVM 🤔.
Journal du samedi 17 août 2024 à 12:53
Ce matin, j'ai enfin pris le temps de parcourir attentivement la documentation d'Elasticsearch pour comparer ses fonctionnalités à celles de Meilisearch, Typesense et pg_search.
J'ai lu Text analysis overview de Elasticsearch.
Je note ici les étapes de l'Text analysis que j'ai des difficultés à retenir :
- Tokenization
- Token filtering (voir dans Anatomy of an analyzer)
- Normalization (search engine)
- Stemmer token filter (search engine)
- Character filters reference
- Customize text analysis
J'ai parcouru la liste des différents types des Built-in analyzer reference de Elasticsearch.
Je retiens le concept de stop analyzer.
#JeMeDemande l'usage du Keyword analyzer 🤔.
Je trouve le Pattern analyzer intéressant.
En lisant Fingerprint analyzer je découvre l'algorithme fingerprinting décrit dans la documentation de OpenRefine : https://openrefine.org/docs/technical-reference/clustering-in-depth#fingerprint. Je garde cela dans un coin de mon esprit, il se peut que cela me soit utile à l'avenir 🤔.
Je découvre que Elasticsearch (sans doute Lucene 🤔) propose beauoup de token filtering différent qui peuvent être combinés : Apostrophe, ASCII folding, CJK bigram, CJK width, Classic, Common grams, Conditional, Decimal digit, Delimited payload, Dictionary decompounder, Edge n-gram, Elision, Fingerprint, Flatten graph, Hunspell, Hyphenation decompounder, Keep types, Keep words, Keyword marker, Keyword repeat, KStem, Length, Limit token count, Lowercase, MinHash, Multiplexer, N-gram, Normalization, Pattern capture, Pattern replace, Phonetic, Porter stem, Predicate script, Remove duplicates, Reverse, Shingle, Snowball, Stemmer, Stemmer override, Stop, Synonym, Synonym graph, Trim, Truncate, Unique, Uppercase, Word delimiter, Word delimiter graph.
J'ai lu Stemmer token filter que je considère comme très important pour un moteur de recherche efficace.
#JaiDécouvert le support de Synonym graph token filter.
Je lis HTML strip character filter, fonctionnalité que je juge très utile.
Je lis qu'Elasticsearch propose de nombreuses méthodes de query, entre autres :
- Query DSL
- EQL search
- ES QL
- et même SQL
- Scripting
Tout cela est très riche !
J'ai lu Highlighting
#JeMeDemande comment Elasticsearch gère le support Highlighting (search-engine) avec du contenu qui intègre initialement des balises HTML 🤔.
J'ai trouvé la réponse dans cet article Elastic Search: Highlighting Text That Contains HTML Tags.
Journal du mercredi 10 juillet 2024 à 21:36
Je suis en train d'étudier Typesense et j'ai la sensation que :
- la documentation de Typesense est plus agréable à lire que celle de Meilisearch ;
- la documentaion de Typesense est plus complète, plus précise que celle de Meilisearch ;
- Typesense est plus complet que Meilisearch.
#Jaime cette la section "What is the difference between Typesense Cloud and Self-Hosted version?".
Journal du samedi 09 mars 2024 à 10:22
#iteration du Projet GH-382 - Je cherche à convertir en SQL des query de filtre basé sur un système de "tags".
#JaiLu Google Search Operators: The Complete List (44 Advanced Operators)
Je constate que le langage de query de Google support OR
, AND
, les (……)
… En résumé, toutes les fonctionnalités que je souhaite.
Dans l'article How to use advanced syntax on DuckDuckGo Search je comprends que le langage de query de DuckDuckGo supporte les fonctionnalités que je souhaite, mais avec une syntax intéressante, sans doute pratique, mais je la juge moins explicite que celle de Google.
J'ai lu la page Log queries de Loki et je ne la trouve pas adaptée à mon besoin. Cette syntax est trop puissante. Je souhaite quelque chose de plus limité, qui permette seulement d'effectuer des filtres basés sur des tags
.
J'ai lu la page Filtering projects de GitHub et je constate que ce langage de query est trop limité, ne correspond pas à mon besoin.
La syntax de recherche de Lobsters est trop limitée par rapport à mon besoin https://lobste.rs/search
Concernant Jira, j'ai commencé ma lecture sur cette page Use advanced search with Jira Query Language (JQL), j'ai ensuite lu :
Le "Jira Query Language (JQL)" est très puissant, même trop puissant par rapport à mon besoin.
J'ai lu la page Filtering de Meilisearch.
La syntaxe est puissante, intéressante.
Après avoir étudié les query search syntax de Google, Duckduckgo, Melisearch, Loki, GitHub, Jira, Lobster je constate que mon besoin est un peu spécifique, car je souhaite effectuer des filtrages seulement sur les lables.
Le moteur de syntaxe qui ressemble le plus à ce que je cherche est le langage de syntaxe de Google.
Mon objectif est de pouvoir appliquer des règles d'appartenance sur les tags
.