Wdrażam wyszukiwanie pełnotekstowe w postgres.Czy należy zapisać parametr tre_vevector w tej samej tabeli lub tabeli zewnętrznej?
Chciałbym przeszukać wszystkie posty w moim systemie. Indeks pełnotekstowy wpisów jest połączeniem tytułu i treści postu.
Mam dwa sposoby osiągnięcia tego celu:
- utworzyć kolumnę tsvector w tabeli posty, powodują aktualizację do niego.
- utwórz drugą tabelę (posts_search) z kolumną post_id i tsvector zawierającą dane indeksu.
- stworzyć prosty indeks gin ... (nie wchodzi w rachubę, bo mój prawdziwy problem świat potrzebuje danych z wielu tabel dla indeksu)
Co będzie działać lepiej, biorąc pod uwagę, że czasami trzeba filtrować w dół wyszukiwania przez inne atrybuty w tabeli (jak deleted_at is null
i tak dalej).
Czy lepiej jest zachować kolumnę tsvector w tej samej tabeli co dane (efekt uboczny wybierz * teraz do dupy) lub osobną tabelę (efekt uboczny, wymagane sprzężenie, filtrowanie indeksu jest skomplikowane)?
niewielkim problemem jest ponowne wykorzystanie indeksu, nie jestem pewien, jak wyrafinowany jest planista, zastanawiam się, czy to możliwe –