La funzione di ricerca restituisce risultati approssimativi?

Ciao.

Stavo cercando questo argomento sul mio forum: les passants - Autour d'une roue - Monocycle.info

Il titolo dell’argomento è “les passants”.

Prima, cercando con “passants in:title” questo argomento appariva tra i primi risultati.

Ma ora, mostra risultati approssimativi:

Invece di “passants”, vedrai “passe”, “pass”, “passage”, “passion”, alcune di queste parole prima ancora della stringa esatta “passants”…

Suppongo sia un bug?

Temo di non sapere abbastanza riguardo alla Ricerca per sapere se sia intenzionale o meno, ma puoi aggiungere le virgolette doppie attorno a una parola per renderla una ricerca esatta, se questo può aiutare?

Ad esempio: "passants"

1 Mi Piace

Questo aiuta sicuramente, ma il comportamento predefinito è sconcertante.

Per un motivo sconosciuto, quando si cerca la stringa esatta con le virgolette doppie, restituisce anche un risultato che non ha “passants” nel titolo (ma li ha nel contenuto del primo post):

1 Mi Piace

In francese, passants viene ridotto al lessema pass prima di cercare nei contenuti dei post.

Un lessema è una stringa, proprio come un token, ma è stata normalizzata in modo che forme diverse della stessa parola vengano rese uguali.

4 Mi Piace

Capisco.

I lessemi sono correlati alla lingua?

Non mi sembra molto sensato in francese ridurre una parola del genere a “pass”. :thinking: Questo crea più confusione che aiuto, considerando che ci sono molte parole che iniziano con “pass” senza essere (direttamente o indirettamente) correlate al verbo “passer”.

Ma se possiamo puntare alla stringa esatta tra virgolette, andrà benissimo :slight_smile:.

Inoltre, che succede al secondo risultato che non ha “passants” nel titolo nonostante l’uso delle virgolette nel mio ultimo screenshot?

Queste cose sono configurabili in Postgres, ma l’implementazione francese in Postgres è ciò che riduce tutto questo:

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)

Esistono dizionari più sofisticati che possono essere utilizzati, ma sono estremamente complicati da configurare.

3 Mi Piace