Estas cosas son configurables en Postgres, pero la implementación francesa en Postgres es lo que reduce todo esto:
discourse_development=# select to_tsvector('french', 'passants');
to_tsvector
-------------
'pass':1
(1 row)
discourse_development=# select to_tsvector('english', 'passants');
to_tsvector
-------------
'passant':1
(1 row)
Existen diccionarios más sofisticados que se pueden usar, pero son extremadamente complicados de configurar.