Projet

Général

Profil

Development #16252

Utiliser setweight dans l'indexation full text

Ajouté par Frédéric Péters il y a presque 7 ans. Mis à jour il y a environ 2 ans.

Statut:
Fermé
Priorité:
Bas
Assigné à:
Version cible:
-
Début:
10 mai 2017
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Lié à w.c.s. - Development #61608: recherche full text : permette de prioriser un des champsFermé09 février 2022

Actions

Révisions associées

Révision 397eb457 (diff)
Ajouté par Lauréline Guérin il y a environ 2 ans

sql: use setweight on fts strings (#16252)

Historique

#1

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)

#2

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é
#3

Mis à jour par Lauréline Guérin il y a environ 2 ans

  • Assigné à mis à Lauréline Guérin
  • Planning mis à Non
#4

Mis à jour par Lauréline Guérin il y a environ 2 ans

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.

#5

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 ?)

#11

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)

#12

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é

#13

Mis à jour par Transition automatique il y a environ 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#15

Mis à jour par Transition automatique il y a presque 2 ans

Automatic expiration

Formats disponibles : Atom PDF