general: add fulltext search to /api/formdefs/ (#81532) #707

Merged
fpeters merged 1 commits from wip/81532-api-search-formdef into main 2023-10-27 08:35:19 +02:00
Owner

Ça ajoute une table, elle est nommée "searchable" mais il faudrait sans doute un meilleur nom ("searchable_formdefs" en acceptant que les modèles de fiches sont aussi couverts avec ce terme ?), elle est toute simple :

                                          Table « public.searchable »
   Colonne   |           Type           | Collationnement | NULL-able |               Par défaut
-------------+--------------------------+-----------------+-----------+----------------------------------------
 id          | integer                  |                 | not null  | nextval('searchable_id_seq'::regclass)
 object_type | character varying        |                 |           |
 object_id   | character varying        |                 |           |
 timestamp   | timestamp with time zone |                 |           | now()
 fts         | tsvector                 |                 |           |
Index :
    "searchable_pkey" PRIMARY KEY, btree (id)
    "searchable_fts" gin (fts)
    "searchable_unique" UNIQUE CONSTRAINT, btree (object_type, object_id)

object_type c'est pour le moment soit formdef soit carddef, timestamp c'est l'heure de modif, et fts c'est pour la recherche.

Dedans on met le titre de la démarche (poids A), sa description (poids B) et ses mots-clés (poids C). (cf https://www.postgresql.org/docs/current/textsearch-controls.html)

La table est vraiment juste dédiée à la recherche, elle n'a pas d'objet associé, juste une méthode search_searchable_table qui fait la recherche et retourne les id des objets concernés.

Ça ajoute une table, elle est nommée "searchable" mais il faudrait sans doute un meilleur nom ("searchable_formdefs" en acceptant que les modèles de fiches sont aussi couverts avec ce terme ?), elle est toute simple : ``` Table « public.searchable » Colonne | Type | Collationnement | NULL-able | Par défaut -------------+--------------------------+-----------------+-----------+---------------------------------------- id | integer | | not null | nextval('searchable_id_seq'::regclass) object_type | character varying | | | object_id | character varying | | | timestamp | timestamp with time zone | | | now() fts | tsvector | | | Index : "searchable_pkey" PRIMARY KEY, btree (id) "searchable_fts" gin (fts) "searchable_unique" UNIQUE CONSTRAINT, btree (object_type, object_id) ``` object_type c'est pour le moment soit formdef soit carddef, timestamp c'est l'heure de modif, et fts c'est pour la recherche. Dedans on met le titre de la démarche (poids A), sa description (poids B) et ses mots-clés (poids C). (cf https://www.postgresql.org/docs/current/textsearch-controls.html) La table est vraiment juste dédiée à la recherche, elle n'a pas d'objet associé, juste une méthode search_searchable_table qui fait la recherche et retourne les id des objets concernés.
fpeters added 1 commit 2023-09-23 09:28:45 +02:00
gitea/wcs/pipeline/head There was a failure building this commit Details
48db5af2d2
general: add fulltext search to /api/formdefs/ (#81532)
This introduces indexing of all formdefs/carddefs using a dedicated
postgresql table.
fpeters force-pushed wip/81532-api-search-formdef from 48db5af2d2 to 62de5d1973 2023-09-23 09:47:40 +02:00 Compare
fpeters force-pushed wip/81532-api-search-formdef from 62de5d1973 to 50e18a7468 2023-09-23 10:06:22 +02:00 Compare
fpeters force-pushed wip/81532-api-search-formdef from 50e18a7468 to 78336345fc 2023-09-23 11:52:33 +02:00 Compare
fpeters force-pushed wip/81532-api-search-formdef from 78336345fc to 0029234cf1 2023-09-23 12:00:49 +02:00 Compare
fpeters force-pushed wip/81532-api-search-formdef from 0029234cf1 to f6d06e5b76 2023-09-23 12:24:38 +02:00 Compare
fpeters force-pushed wip/81532-api-search-formdef from f6d06e5b76 to f2b63a5d1d 2023-09-23 14:18:59 +02:00 Compare
fpeters force-pushed wip/81532-api-search-formdef from f2b63a5d1d to bc7d976161 2023-09-23 15:09:55 +02:00 Compare
fpeters changed title from WIP: general: add fulltext search to /api/formdefs/ (#81532) to general: add fulltext search to /api/formdefs/ (#81532) 2023-09-29 12:21:59 +02:00
lguerin requested review from pducroquet 2023-10-02 18:50:22 +02:00
lguerin approved these changes 2023-10-02 18:50:42 +02:00
lguerin left a comment
Owner

ok pour moi, mais j'ai posé @pducroquet en relecteur pour la partie sql

ok pour moi, mais j'ai posé @pducroquet en relecteur pour la partie sql
fpeters merged commit 8aace5285d into main 2023-10-27 08:35:19 +02:00
fpeters deleted branch wip/81532-api-search-formdef 2023-10-27 08:35:19 +02:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: entrouvert/wcs#707
No description provided.