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 >> > >
