Projet

Général

Profil

Development #53284

ajouter les infos des blocs de champs à l'indexation fulltext

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
20 avril 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Aujourd'hui on ne s'arrête pas sur ces champs,

        for field in self._formdef.get_all_fields():
            if not self.data.get(field.id):
                continue
            value = None
            if field.key in ('string', 'text', 'email'):
                value = self.data.get(field.id)
            elif field.key in ('item', 'items'):
                value = self.data.get('%s_display' % field.id)
            if value:
                if isinstance(value, str):
                    fts_strings.append(value)
                elif type(value) in (tuple, list):
                    fts_strings.extend(value)

voir pour le faire (a priori en itérant sur le contenu, plutôt qu'en prenant la valeur _display).


Fichiers

Révisions associées

Révision 709baa78 (diff)
Ajouté par Nicolas Roche il y a presque 3 ans

test: do fulltext indexation on item(s) field display value (#53284)

Révision b5d25271 (diff)
Ajouté par Nicolas Roche il y a presque 3 ans

sql: add blockdef fields to fulltext indexation (#53284)

Historique

#2

Mis à jour par Nicolas Roche il y a presque 3 ans

  • Assigné à mis à Nicolas Roche
#3

Mis à jour par Nicolas Roche il y a presque 3 ans

0001: pour (re-)gagner ces 2 lignes à la couverture de code

                elif type(value) in (tuple, list):
                    fts_strings.extend(value)

0002: en m'inspirant de wcs/formdef.py::FormDef::set_live_condition_sources::get_all_fields

#4

Mis à jour par Frédéric Péters il y a presque 3 ans

0001 idéalement il aurait fallu passer par vérif du type et store_display_value etc. mais ok ainsi.

0002 dans le migrate() plutôt qu'ajouter une ligne de condition il faut mettre à jour la condition qui gère actuellement ça, façon :

-    if sql_level < 41:
+    if sql_level < 51:
        # 17: store last_update_time in tables
        # 18: add user name to full-text search index
        # 21: (third part), add user ascii_names to full-text index
        # 23: (second part) use misc.simplify() over full text queries
        # 28: add display id and formdef name to full-text index
        # 29: add evolution parts to full-text index
        # 31: add user_label to formdata
        # 38: extract submission_agent_id to its own column
        # 41: update full text normalization
+       # 51: add index on formdata blockdef fields
        set_reindex('formdata', 'needed', conn=conn, cur=cur)
#6

Mis à jour par Nicolas Roche il y a presque 3 ans

Et je réalise que 0001 écrase un test de #15802, j'aurais peut-être du m'en tenir à "mais ok ainsi".

#7

Mis à jour par Frédéric Péters il y a presque 3 ans

j'aurais peut-être du m'en tenir

(oui). (aussi ça semble tout innocent mais avec pêche → peach tu perds l'accent et subitement quelque chose qui n'était qu'implicitement testé ne le devient plus).

#9

Mis à jour par Frédéric Péters il y a presque 3 ans

  • Statut changé de Solution proposée à Solution validée
#10

Mis à jour par Nicolas Roche il y a presque 3 ans

commit b5d252719dab01601533d772bb0568ff20479c7f
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Tue May 18 09:28:37 2021 +0200

    sql: add blockdef fields to fulltext indexation (#53284)

commit 709baa78535e75127d084b619b0ad83eb2c8c6b6
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Fri Apr 30 17:36:30 2021 +0200

    test: do fulltext indexation on item(s) field display value (#53284)
#11

Mis à jour par Frédéric Péters il y a presque 3 ans

  • Statut changé de Solution validée à Solution déployée

Formats disponibles : Atom PDF