Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Query miste rispetto all'indice full-text

Non credo che dovresti riscontrare alcun problema, se ho capito correttamente la tua domanda. Spesso combino full-text e b-tree con ottimi risultati. Quando viene condotta la ricerca full-text, esamina ogni "termine" delimitato come un indice, proprio come farebbe una colonna indicizzata con un solo termine (dare o prendere alcune statistiche sql). In ogni caso, SQL deve capire il suo percorso di esecuzione. La ricerca di testo completo non favorisce il confronto di valori interi/data, più per la corrispondenza di stringhe di dati delimitati.

Immagino che vorresti continuare a utilizzare l'efficienza del concetto di b-tree a tuo vantaggio. La ricerca nell'indice del catalogo full-text mi sembra una ricerca molto più circolare, sebbene molto più vantaggiosa in situazioni che utilizzano "MI PIACE" per analizzare/confrontare le stringhe.

Quello che faccio è:

 SELECT * FROM MyTable
  WHERE CONTAINS(columnName, '"Toy Dog" OR "live animal"')
    AND start_date > ###;

(vedi questo articolo di msdn per informazioni sulla sintassi )

PS durante l'indicizzazione di dati interi full-text, disattiva l'elenco di interruzione in modo che quei valori non vengano ignorati nell'indicizzazione del catalogo.

Spero che tutto ciò aiuti! (Nessuno ha risposto quindi ho pensato di dare la mia esperienza)