Development #6793
Intégrer un moteur de recherche
0%
Description
cf django-haystack
Fichiers
Demandes liées
Révisions associées
add internal page contents search service (#6793)
debian: require latest hobo for tenant aware haystack config (#6793)
Historique
Mis à jour par Frédéric Péters il y a presque 9 ans
- Fichier search-cell.ogv search-cell.ogv ajouté
- Statut changé de Nouveau à En cours
Cellule de type "recherche" dans la branche wip/search; cf vidéo.
Ça demandera à réfléchir à comment déployer l'indexation en multitenant (vu les volumes, un index whoosh posé dans le répertoire du tenant pourrait même être praticable).
Mis à jour par Thomas Noël il y a plus de 7 ans
- Lié à Development #14159: système de recherche central (utilisateurs, demandes, base de connaissance) ajouté
Mis à jour par Frédéric Péters il y a environ 7 ans
Après #15085 réduire le taf ici à l'indexation full text des cellules et la prise en charge d'un /api/search/?q=whatever qui retournerait {'data': [{'text': '...', 'url': '...', 'description': '...'}]}.
Mis à jour par Frédéric Péters il y a environ 7 ans
- Fichier 0002-add-internal-page-contents-search-service-6793.patch 0002-add-internal-page-contents-search-service-6793.patch ajouté
- Fichier 0001-add-indexing-of-pages-6793.patch 0001-add-indexing-of-pages-6793.patch ajouté
- Patch proposed changé de Non à Oui
0001 c'est une reprise de ce qui était dans la vieille branche wip/cell, pour gérer l'indexation des contenus. Ça reste une indexation plutôt basique, avec quantité d'évolutions possibles.
Un truc à noter à la marge, ce sont les modifs à newsletters/models.py et notifications/models.py, qui remplacent le is_relevant() par un is_visible(); je me dis là-dessus qu'il y a un nettoyage à faire dans combo autour de ces deux méthodes, dont les rôles ne sont pas très nets.
0002 c'est l'ajout de /api/search/?q=..., j'ai pris l'option d'inclure "en dur" ce service de recherche dans le code, plutôt que de demander à ce qu'il soit ajouté à settings.SEARCH_SERVICES.
Mis à jour par Frédéric Péters il y a environ 7 ans
(correction de copié/collé dans la modif à NewsletterCell)
Mis à jour par Frédéric Péters il y a environ 7 ans
- Fichier 0002-add-internal-page-contents-search-service-6793.patch 0002-add-internal-page-contents-search-service-6793.patch ajouté
- Fichier 0001-add-indexing-of-pages-6793.patch 0001-add-indexing-of-pages-6793.patch ajouté
Avec des tests.
Mis à jour par Thomas Noël il y a environ 7 ans
Il a ajout d'un double {% if item.description %}
inutile dans search-cell-results.html
Je voudrais d'abord passer #15352 qui va nécessiter de revoir un peu ce patch, parce que le q=%(q)s
était une mauvaise idée.
L'import de haystack sur 0001 : je pense que ça nécessite d'ajouter la dépendance dans setup.py dans le même patch (voire dans debian/). Et peut-être woosh en recommends.
A part ça, j'ai pas encore compris comment l'index était généré, y'a une magie qui doit m'échapper.
Mis à jour par Frédéric Péters il y a environ 7 ans
- Fichier 0002-add-internal-page-contents-search-service-6793.patch 0002-add-internal-page-contents-search-service-6793.patch ajouté
- Fichier 0001-add-indexing-of-pages-6793.patch 0001-add-indexing-of-pages-6793.patch ajouté
Version rebasée des patchs.
Il a ajout d'un double {% if item.description %} inutile dans search-cell-results.html
Corrigé.
L'import de haystack sur 0001 : je pense que ça nécessite d'ajouter la dépendance dans setup.py dans le même patch (voire dans debian/). Et peut-être woosh en recommends.
Tout à fait.
A part ça, j'ai pas encore compris comment l'index était généré, y'a une magie qui doit m'échapper.
La magie d'un fichier oublié, voilà intégrée la modification au fichier cron distribué dans le paquet, pour y ajouter :
su combo -s /bin/sh -c "/usr/bin/combo-manage tenant_command update_index --remove --all-tenants -v0"
L'autre possibilité, qui est en place côté Welco, c'est de déclarer dans les setttings,
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
qui fera que sur toutes les modifs d'objet il y aura réindexation. (mais je préfère y aller mollo au début).
Mis à jour par Thomas Noël il y a environ 7 ans
- peut-être faire les «
return ''
» dans le render_for_search dès 0001 (combo/data/models.py, lignes 471 et suivantes) ? - mais surtout, quid de l'index whoosh en multitenant ? (a priori il nous faudra un settings_loader dans hobo pour adapter le PATH en fonction du tenant)
Mis à jour par Thomas Noël il y a environ 7 ans
Thomas Noël a écrit :
- mais surtout, quid de l'index whoosh en multitenant ? (a priori il nous faudra un settings_loader dans hobo pour adapter le PATH en fonction du tenant)
Certainement ajouter ceci :
--- a/debian/debian_config.py +++ b/debian/debian_config.py @@ -18,6 +18,13 @@ INSTALLED_APPS = ('hobo.agent.combo', ) + INSTALLED_APPS # add statics_hash context processor TEMPLATE_CONTEXT_PROCESSORS = tuple(TEMPLATE_CONTEXT_PROCESSORS) + ('hobo.context_processors.statics_hash',) +# use multitenant haystack configuration +HAYSTACK_CONNECTIONS = { + 'default': { + 'ENGINE': 'hobo.multitenant.haystack.WhooshEngine', + } +} + # # local settings #
Mis à jour par Frédéric Péters il y a environ 7 ans
- Fichier 0002-add-internal-page-contents-search-service-6793.patch 0002-add-internal-page-contents-search-service-6793.patch ajouté
- Fichier 0001-add-indexing-of-pages-6793.patch 0001-add-indexing-of-pages-6793.patch ajouté
peut-être faire les « return '' » dans le render_for_search dès 0001 (combo/data/models.py, lignes 471 et suivantes) ?
Oui.
mais surtout, quid de l'index whoosh en multitenant ? (a priori il nous faudra un settings_loader dans hobo pour adapter le PATH en fonction du tenant)
(pour ceux qui auraient raté le ticket hobo, c'est #15391, fait dans #8744).
Je serais bien pour mettre ça dans le debian_config_common.py de Hobo, parce que je pensais qu'il y était pour Welco :
HAYSTACK_CONNECTIONS = { 'default': { 'ENGINE': 'hobo.multitenant.haystack.WhooshEngine', } }
(j'ai créé #15392)
Mis à jour par Thomas Noël il y a environ 7 ans
Ack pour les deux patches de ce ticket.
Mais attendre cependant que #15392 soit passé (et packagé voire installé) pour éviter un drame.
Mis à jour par Frédéric Péters il y a environ 7 ans
- Statut changé de En cours à Résolu (à déployer)
Mais attendre cependant que #15392 soit passé (et packagé voire installé) pour éviter un drame.
J'ai ajouté une modif au debian/control pour empêcher ça.
commit abbdf60cd8aa6cd93ea7505e784040c1181adfd6 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Mon Mar 13 09:29:05 2017 +0100 debian: require latest hobo for tenant aware haystack config (#6793) commit 6491f69cd119ff4e4b32835539dec6e5d44f6483 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Sat Mar 4 15:08:01 2017 +0100 add internal page contents search service (#6793) commit 63f6794e8be97ac18f887c7825242c46ce3f49f6 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Sat Jun 6 16:16:19 2015 +0200 add indexing of pages (#6793)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
add indexing of pages (#6793)