Development #53284
ajouter les infos des blocs de champs à l'indexation fulltext
0%
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
sql: add blockdef fields to fulltext indexation (#53284)
Historique
Mis à jour par Nicolas Roche il y a presque 3 ans
- Fichier 0002-sql-add-blockdef-fields-to-fulltext-indexation-53284.patch 0002-sql-add-blockdef-fields-to-fulltext-indexation-53284.patch ajouté
- Fichier 0001-test-do-fulltext-indexation-on-item-s-field-display-.patch 0001-test-do-fulltext-indexation-on-item-s-field-display-.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
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
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)
Mis à jour par Nicolas Roche il y a presque 3 ans
- Fichier 0002-sql-add-blockdef-fields-to-fulltext-indexation-53284.patch 0002-sql-add-blockdef-fields-to-fulltext-indexation-53284.patch ajouté
- Fichier 0001-test-do-fulltext-indexation-on-item-s-field-display-.patch 0001-test-do-fulltext-indexation-on-item-s-field-display-.patch ajouté
Oui, merci pour les remarques.
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".
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).
Mis à jour par Nicolas Roche il y a presque 3 ans
- Fichier 0002-sql-add-blockdef-fields-to-fulltext-indexation-53284.patch 0002-sql-add-blockdef-fields-to-fulltext-indexation-53284.patch ajouté
- Fichier 0001-test-do-fulltext-indexation-on-item-s-field-display-.patch 0001-test-do-fulltext-indexation-on-item-s-field-display-.patch ajouté
Je reviens à la première version de 0001, sinon je vais tout compliquer.
Mis à jour par Frédéric Péters il y a presque 3 ans
- Statut changé de Solution proposée à Solution validée
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)
Mis à jour par Frédéric Péters il y a presque 3 ans
- Statut changé de Solution validée à Solution déployée
test: do fulltext indexation on item(s) field display value (#53284)