mysql design della tabella di ricerca testo completo

0

Ho lavorato a un progetto di DB MySQL che la ricerca basata su parole chiave sembra essere necessaria. La tabella principale ha due colonne:

id | Title

Per ogni voce, agli utenti sarà richiesto di inserire 4 o 5 parole chiave. Penso che usare una tabella separata per le parole chiave sarebbe meglio. Mi piacerebbe sapere se c'è differenza tra questi due design in termini di prestazioni, scalabilità e gestione. Ci saranno milioni di righe nella tabella principale.

id | keywords
1  | 1kword1, 1kword2, 1kword3
2  | 2kword1, 2kword2, 2kword3

o

id | keyword
1  | 1kword1 
2  | 1kword2 
3  | 1kword3
4  | 2kword1 
5  | 2kword2 
6  | 2kword3
    
posta mustafa 19.05.2012 - 10:03
fonte

1 risposta

1

Se si imposta una serie di parole chiave delimitate da virgole, sarà necessario utilizzare una soluzione di ricerca di testo completo per trovare i record, in questo caso sarebbe utile aggiungerli alla tabella principale. Nel secondo caso, se stai cercando corrispondenze di parole chiave esatte, le tue prestazioni saranno più veloci e puoi utilizzare un indice basato su stringhe standard anziché uno a testo intero.

Utilizzare un motore di ricerca dedicato sarebbe ancora meglio. C'è una build (se non è già standard) di Sphinx Search che funziona bene con MySQL. Anche Solr è una buona soluzione.

Dipende dal front-end che potrebbe essere più semplice da implementare e gestire.

    
risposta data 19.05.2012 - 23:22
fonte

Leggi altre domande sui tag