Projet

Général

Profil

Development #57009

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

apostoprhe unicode (https://unicode-table.com/fr/2019/)

Cf. #57006

C'est due à la normalisation unicode par FtsMatch.get_fts_value()[1] :
<pre>
In [3]: FtsMatch.get_fts_value('Allée de l’Allier 13013 Marseille')
Out[3]: 'Allee de lAllier 13013 Marseille'
</pre>

Ça supprime l'apostrophe unicode et on se retrouve à indexer "lAllier" "lAllier@ au lieu de "Allier". Je me demande si la fonction @ts_vector()@ toute seule ne ferait pas un meilleur boulot sans qu'on lui mâche:

<pre>
wcs_demarches_departement13_test_entrouvert_org=# select to_tsvector('Allée de l’Allier 13013 Marseille');
-[ RECORD 1 ]----------------------------------------
to_tsvector | '13013':5 'alli':4 'allé':1 'marseil':6
</pre>

(bon visiblement pas sur les accents)

ou alors unidecode :
<pre>
In [1]: import unidecode

In [2]: unidecode.unidecode('Allée de l’Allier 13013 Marseille')
Out[2]: "Allee de l'Allier 13013 Marseille"
</pre>

fn1. <pre>
@classmethod
def get_fts_value(cls, value):
return unicodedata.normalize('NFKD', value).encode('ascii', 'ignore').decode('ascii')
</pre>

Retour