Sto implementando la ricerca full-text in postgres.Si dovrebbe memorizzare un tsvector search_data nella stessa tabella o tabella esterna?
Vorrei cercare tutti i messaggi nel mio sistema. L'indice fulltext post è una fusione del titolo del post e del corpo del post.
mi hanno due modi per raggiungere questo:
- crea una colonna tsvector nella tabella messaggi, attivare un aggiornamento ad esso.
- creare una seconda tabella (posts_search) con una colonna post_id e tsvector contenente i dati dell'indice.
- creare un semplice indice di gin ... (fuori questione, causa il mio vero problema del mondo ha bisogno di dati in più tabelle per l'indice)
ciò che sta per eseguire meglio, considerando che ho a volte bisogno di filtrare giù la ricerca per altri attributi nella tabella (come deleted_at is null
e così via).
E 'un approccio migliore per mantenere la colonna tsvector nella stessa tabella come i dati (effetto collaterale select * ora succhia) o una tabella separata (effetto collaterale, unire richiesto, filtraggio indice è complicato)?
un po 'di preoccupazione però è il riutilizzo dell'indice, non so quanto sia sofisticato il pianificatore, mi chiedo se può –