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

Ricerca testo completo (FTS) di SQL Server 2008 rispetto a Lucene.NET

SQL Server FTS sarà più facile da gestire per una piccola distribuzione. Poiché FTS è integrato con il DB, l'RDBMS gestisce l'aggiornamento dell'indice automaticamente. Lo svantaggio qui è che non hai una soluzione di ridimensionamento ovvia a meno di replicare i DB. Quindi, se non è necessario ridimensionare, SQL Server FTS è probabilmente "più sicuro". Politicamente, la maggior parte dei negozi si sentirà più a suo agio con una soluzione SQL Server pura.

Per quanto riguarda Lucene, preferirei SOLR al Lucene diretto. Con entrambe le soluzioni devi lavorare di più aggiornando l'indice quando i dati cambiano, oltre a mappare i dati sull'indice SOLR/Luce. I vantaggi sono che puoi facilmente ridimensionare aggiungendo indici aggiuntivi. È possibile eseguire questi indici su server Linux molto snelli, il che elimina alcuni costi di licenza. Se prendi il percorso Lucene/SOLR, mirerei a inserire TUTTI i dati di cui hai bisogno direttamente nell'indice, piuttosto che riportare i puntatori al DB nell'indice. Puoi includere nell'indice dati che non sono ricercabili, quindi ad esempio potresti avere HTML o XML precostruito archiviati nell'indice e servirli come risultato di ricerca. Con questo approccio il tuo DB potrebbe essere inattivo ma sei ancora in grado di fornire risultati di ricerca in modalità disconnessa.

Non ho mai visto un confronto diretto delle prestazioni tra SQL Server 2008 e Lucene, ma mi piacerebbe vederne uno.