Anomalie #5316
fermé[FGSEARCH] Requête invalide avec le caractère '
100%
Il ne faut pas utiliser un ordre de pertinence dans fgsearch si on utilise les quotes.
Utiliser l'ordre : "revdate desc, id desc" à la place dans ce cas (le plus récent).
Description
Des requête du type
"oulala 'lala"
"'"
est considéré comme invalide par FGSEARCH alors que cette requête est valide suivant la syntaxe des critères de recherche.
Mis à jour par Marc Claverie il y a plus de 11 ans
- Statut changé de Nouveau à À analyser
- Assigné à mis à Éric Brison
Mis à jour par Éric Brison il y a plus de 11 ans
- Statut changé de À analyser à Analysé
- Assigné à
Éric Brisonsupprimé - Solution proposée mis à jour (diff)
La différence entre la recherche dans onefam et fgsearch c'est l'ordre des résultats
Le problème est que fgsearch retourne les résultats par pertinence même si on utilise des quotes.
Hors le "'lala" n'est pas un mot valide et le critère d'ordonnancement est invalide.
Mis à jour par Charles Bonnissent il y a plus de 11 ans
Le problème provient de la requête SQL dont la partie tsquery n'est pas valide :
{DB0005} query prepare error : ERREUR: erreur de syntaxe dans tsquery : \xc2\xab ' \xc2\xbb\n\nselect doc16.id, owner, title, revision, version, initid, fromid, doctype, locked, allocated, archiveid, icon, lmodify, profid, usefor, cdate, adate, revdate, comment, classname, state, wid, postitid, domainid, lockdomainid, cvid, name, dprofid, views, atags, prelid, confidential, ldapdn, ba_title, se_author, gui_color, gui_isrss, gui_sysrss, se_memo, se_key, se_latest, se_case, se_fam, se_famid, se_cfld, se_idfld, se_trash, se_archive, se_sysfam, se_sublevel, se_sqlselect, se_idcfld, se_ccfld, se_orderby, se_famonly, se_acl, se_static, se_ol, se_ols, se_leftp, se_attrids,
se_funcs, se_keys, se_rightp, se_filter, se_typefilter, values, attrids from doc16 where (doc16.archiveid is null) and (doc16.doctype != 'T') and (doc16.locked != -1) and (usefor !~ '^S') and (svalues ~* E'[\xc2\xa3|\\\\s]''[\xc2\xa3|\\\\s]') ORDER BY ts_rank(fulltext,to_tsquery('french','''')) desc, id desc LIMIT 11 OFFSET 0;\n,
La partie tsquery n'est pas échappée correctement
Mis à jour par Marc Claverie il y a plus de 10 ans
- Statut changé de Analysé à Assigné
- Assigné à mis à Jérôme Augé
- Version cible mis à 3.2.21
Mis à jour par Éric Brison il y a environ 10 ans
- Statut changé de Assigné à Intégré
Appliqué par commit commit:dynacase-core|3f871c29137e735542b60cd4f6227522399e150f.