Development #16252
Utiliser setweight dans l'indexation full text
0%
Description
Je lisais django/contrib/postgres/search.py et j'ai du coup découvert ce que j'aurais pu lire dans la documentation de postgresql, il y a moyen de contrôler le poids de certains éléments dans une indexation full text.
The function setweight can be used to label the entries of a tsvector with a given weight, where a weight is one of the letters A, B, C, or D. This is typically used to mark entries coming from different parts of a document, such as title versus body. Later, this information can be used for ranking of search results.
— https://www.postgresql.org/docs/9.4/static/textsearch-controls.html
Du coup, on pourrait par exemple (à réfléchir) mettre plus de poids sur les champs nom/prénom de l'usager, l'identifiant de la demande, les champs configurés pour apparaitre dans les listings vs les autres, etc.
Proposition :
- A: identifiant de la demande, nom(/prénom) de l'usager
- B: champs configurés pour apparaitre dans les listings
- C: autres champs
- D: données tirées du journal (formdata.evolution)
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Thomas Noël il y a presque 7 ans
Idée approuvée. Ajouter le tracking_code en A.
Adopter ce principe pour la recherche des usagers, en mettant en avant leur display_name (même si, je sais, il faut plutôt aller voir dans authentic ; allez, on peut continuer à penser w.c.s. comme une solution autonome quand même)
Mis à jour par Frédéric Péters il y a environ 2 ans
- Lié à Development #61608: recherche full text : permette de prioriser un des champs ajouté
Mis à jour par Lauréline Guérin il y a environ 2 ans
- Assigné à mis à Lauréline Guérin
- Planning mis à Non
Mis à jour par Lauréline Guérin il y a environ 2 ans
- Fichier 0001-sql-use-setweight-on-fts-strings-16252.patch 0001-sql-use-setweight-on-fts-strings-16252.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
tentative n°1
Adopter ce principe pour la recherche des usagers
J'ai fait ça aussi, parce que ça semblait pas bien compliqué.
Par contre, je me dis que si le paramétrage "afficher dans le listing" d'un champ change, il faudrait réindexer ?
Mais, je n'ai rien vu qui dise par exemple: si un champ est supprimé, alors réindexe l'existant.
Mis à jour par Lauréline Guérin il y a environ 2 ans
(ha et je ne sais pas trop quoi écrire comme tests, je ne sais pas si l'existant, si ça passe, suffit ?)
Mis à jour par Lauréline Guérin il y a environ 2 ans
Mis à jour par Lauréline Guérin il y a environ 2 ans
Mis à jour par Frédéric Péters il y a environ 2 ans
- Statut changé de Solution proposée à Solution validée
À rebaser mais commençons ainsi,
use setweight on formdata é user indexation
é → & (3×)
Par contre, je me dis que si le paramétrage "afficher dans le listing" d'un champ change, il faudrait réindexer ?
Je me dis que dans l'idéal oui, surtout qu'on va commencer à dire que si pour donner plus de poids à un champ il faut cocher cette case, mais on peut accompagner ça dans un premier temps d'un "ça concerne uniquement les nouvelles demandes".
On pourra voir, nouveau ticket, sur une modification à ce paramètre ou une suppression de champ taper un afterjob qui réindexe. (y prendre aussi en compte les données de traitement)
Mis à jour par Lauréline Guérin il y a environ 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 397eb457d11e6ebeab5eb81b347f0ea5f58cbf75 Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Tue Mar 15 15:55:09 2022 +0100 sql: use setweight on fts strings (#16252)
é → & (3×)
corrigé
Mis à jour par Transition automatique il y a environ 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
sql: use setweight on fts strings (#16252)