-
Notifications
You must be signed in to change notification settings - Fork 165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Faire une étude pour voir si le passage à ElasticSearch est possible/justifié #3748
Comments
Bonne idée. J'ai utilisé :
il y a 2 ans et j'avais trouvé très facile à mettre en place et à utiliser. |
C'était l'idée de Spacefox à la base, rendons au renard, le fromage. Ça serait bien de faire un tour des compétences de l'équipe sur cette techno pour savoir qui a des connaissances. |
Mon point de vue d'il y'a un an sur la question n'a pas changé. J'approuve cette idée. Ayant une bonne connaissance du bidule, je peux répondre a des questions si vous en avez, mais pas forcément le temps d'en faire plus. Sinon,
Coté perf, Elasticsearch fait au moins aussi bien que Solr (je n'ai pas de chiffre sous la main, mais la dernière fois que j'ai comparé les deux, sur la v1.7 d'ES, c'était ça). La doc d'eslasticsearch est clairement mieux fournie que celle de Solr. Ils se basent tout les deux sur Lucene, donc pas de souci, pour la recherche en Français, c'est géré out of the box. Pour la difficulté d'install, déjà ES est fournie dans pas mal de package manager, debian 8 propose même une version pas trop ancienne. Il y'a aussi la possibilité d'utiliser un tarball. Bref, que du positif.
De moins point de vue, ES propose assez de connecteurs pour pouvoir se passer de haystack sans problème. Il faudra certainement redévelopper les scripts de build index, mais c'est pour le bien de la planète. Là ou Haystack perd de l'intérêt c'est qu'ils ont du mal à suivre les release d'ES. Typiquement ES a changé sa gestion des facets entre la v1.x et la v2.x et donc Haystack aura besoin d'un bon travail en profondeur pour parvenir à le gérer (autant dire que ça ne sera pas pour bientôt). En gros, il faudra peut-être apprendre comment s'organise l'indexation avec ES, et avec la lib dispo sur pypy on pourra faire une migration en douceur. En sachant qu'on peut aussi récupérer les index de Solr, donc l'historique ne sera pas perdue. |
Très honnêtement, on a absolument pas besoin de « transition en douceur » ni de « récupérer les index de Solr ». Les index complets de prod se re-construisent en moins d'un quart d'heure et ne contiennent pas d'historique. Mon avis personnel après avoir joué avec ElasticSearch 2, c'est qu'on aurait tout intérêt à l'utiliser, et surtout à l'utiliser le plus directement possible. Pour moi on a là une occasion en or d'obtenir enfin une recherche utile, ce qui passerait par :
|
Au moins, on a quelqu'un à qui se référer, c'est déjà cool.
La question était plus, est-ce simple à mettre en place, car pour Haystack, c'était marqué dans les petits caractères de la documentation. C'était pas difficile au final mais pour le trouver ^^ .
À la louche repartir de zéro veut dire un peu prés une trentaine à une cinquantaine d'heure de dev.
Pas de retour en arriére possible, c'est un peu risqué. |
Bon. Voilà mon point de départ. Je prend. |
Si tu veux un peu plus d'information sur comment Solr et Haystack sont utilisé dans le projet, n'hésite pas à consulter, la doc que j'avais faite pendant la zep-12. Si tu as un souci sur un morceau de code, n'hésite pas à me contacter par mp sur zds ou ici. J'essayerais d'y répondre :) . Peut-être que pour juger de la fiabilité, tu devrais avoir une sortie de la base de prod ? Je pense que sinon ça va être compliquer de juger. |
Ok. Mais je croyais que ça avais bloqué parce que Haystack n'était pas compatible avec ES ou un truc du genre. Mais je vais regarder les deux directions: avec Haystack et sans. |
Il n'était compatible qu'avec de vielles versions de ES (lequel évolue Le 19 octobre 2016 à 16:25, Pierre Beaujean [email protected] a
|
Ouai, mais ça à l'air d'avancer néanmoins pull request (1391) sur le projet https://github.com/django-haystack/django-haystack/. |
Cela dit vues les contraintes imposées par Haystack, son état actuel (125 2016-10-19 16:39 GMT+02:00 Hugo Courtecuisse [email protected]:
|
Je suis entièrement d'accord avec toi, mon sentiment au fond de moi est de laisser tomber Haystack. Faut juste mesurer les conséquences, le travail nécessaire et le fait qu'on devrait tout ré-écrire si on voudrais passer a un autre moteur. |
Bon, en gros:
Question code, il faudrait donc réécrire tout ça + recoder la commande Ensuite, il faudrait réfléchir à l'indexation des contenus. Au pire, il "suffit" d’appeler l'API directement, mais j'ai l'impression que y'a moyen de faire ça plus simplement. Là, faut creuser. Ça, c'est si on veut un résultat qui soit à peu près équivalent à celui qu'on a actuellement (éventuellement avec de meilleurs performances, probablement avec des résultats plus pertinent). Sauf que ça c'est qu'une partie du problème, et la deuxième partie, c'est "comment rendre la recherche sur ZdS plus performante au delà d'utiliser un meilleur outil" ? (vraie question). À vous ;-) |
Déjà, passer à ES permettrait de définir des règles et critères de recherche beaucoup plus facilement qu'avec Solr. Ensuite, contrairement à aujourd'hui où on renvoie tous les résultats en vrac, il faudrait catégoriser les résultats (contenus rédigés d'abord, forums ensuite) et les champs de recherche (terme trouvé dans le titre prioritaire sur le terme trouvé dans le corps de texte, avec un système de poids – de mémoire c'est assez simple à faire). Rien que ça devrait permettre d'avoir une recherche beaucoup plus efficace qu'aujourd'hui. Après on pourrait raffiner. |
Si j'ai bon souvenir aussi, il faudrait supprimer les balises dans les contenu pour que ça soit du plain text. Même si c'est pas indispensable. Utiliser les tokeniser en français aussi. |
Done <3 |
Bonjour,
Ça serait bien de faire une étude pour voir si le passage à Elasticsearch serait possible, cela comprend étudier les performances, niveau documentation, possibilité ou non d'utiliser d'avoir une recherche en français (tokenizers, …), niveau de difficulté de l'installation sur la prod et pour un poste de développeur.
La deuxième partie serait de voir si on y gagnerait pas de virer Haystack pour elasticsearch-dsl. Faudrait comparer le temps de migration de l'un à l'autre, les impacts en terme de performance, la documentation possible, comment est maintenu le projet (date des derniers commits, réactivité), possibilité de faire des tests unitaires avec elasticsearch-dsl.
Note: Elasicsearch 2.0 n'est pas compatible avec Haystack pour l'instant.
The text was updated successfully, but these errors were encountered: