On Mon, Mar 2, 2020 at 8:22 PM Uberto Barbini [email protected]
[it-torino-java-jug] <[email protected]> wrote:

>
>
> Concettualmente è abbastanza facile farlo a mano :
> Prendi tutti i campi di testo, li metti insieme e spesso le parole, poi
> fai stamming per ignorare parole simili e dalla pronuncia uguale, e poi
> filtri via congiunzioni, articoli e simili.
>

Concettualmente sì, praticamente ni.
La difficoltà inizia già dal primo passo: cosa significa spezzare le
"parole"? Separi sugli spazi? E la punteggiatura? Con i trattini tieni i
termini uniti o li separi (e-mail o e mail, che poi butterà via la prima *e* o
email)? L'apostrofo separa due token oppure no (l'amico vs Moody's)?
Potrei continuare per ore... :)

Per esperienza, sconsiglierei caldamente il fai da te sulla ricerca
full-text. Soprattutto se devi (o pensi in futuro di dover) gestire più
lingue!

JM2c
*Raf*



>
> Se non ti servono ricerche alla Google, funziona bene per cose semplici.
>
> Elastic search è molto più potente ma con molti più problemi di
> integrazione.
>
> Uberto
>
> On Mon, 2 Mar 2020 09:31 Federico Fissore [email protected]
> [it-torino-java-jug], <[email protected]> wrote:
>
>>
>>
>> Ciao a tutti
>>
>> Ho un'applicazione che memorizza i dati su postgres in modo
>> destrutturato, usando campi jsonb.
>>
>> Mi trovo a dover aggiungere capacità di ricerca full text.
>>
>> La "colonna" in cui fare la ricerca varia a seconda del tipo di json, e
>> la ricerca deve trovare la parola "pippo" a prescindere dal tipo (quindi
>> i risultati saranno qualcosa come "pippo nella specifica X, pippo nel
>> commento Y, pippo nel report Z"
>>
>> Avete esperienza nel risolvere un problema simile?
>>
>> La prima pensata è quella di aggiungere un solr o un elastic search.. Le
>> ricerche verso uno di questi 2 torneranno gli ID dei documenti, che
>> verranno poi filtrati in base ai permessi dell'utente
>>
>> Che ne dite?
>>
>> ciao
>>
>> federico
>>
> 
>

Reply via email to