Estou tentando encontrar a maneira mais eficiente de pesquisar registros em uma coleção de cerca de 130.000 registros no total. Resumindo, temos cerca de 130.000 registros do Active Directory. Estou construindo um site que procura usuários no AD. Gostaria de implementar a funcionalidade TypeAhead em uma caixa de pesquisa. Eu poderia consultar o AD diretamente no código, mas estou pensando em despejar os dados no SQL Server e consultá-los. O TypeAhead faz uma pesquisa enquanto você digita os caracteres na caixa de texto. É eficiente pesquisar uma tabela de 130.000 registros por caracteres únicos? Estou tentando determinar se a pesquisa deve ser feita pelo mecanismo do SQL Server ou no site? Estou pensando no SQL Server. Se verdadeiro, é melhor usar pesquisas de texto completo FREETEXT ou CONTÉM?
Curioso para saber o que a comunidade pensa sobre isso? Ou estou longe?
Não tenho certeza se estou entendendo sua pergunta. FREETEXT avalia não apenas a string, mas também o significado. Considerando que CONTAINS é usado para pesquisa precisa ou difusa em uma string.
Eu começaria consultando o AD diretamente. Se o recurso for muito usado, lento ou sobrecarregar os servidores do AD, eu consideraria armazenar em cache todo o conjunto de dados na memória. É um conjunto de dados muito pequeno, justifica o esforço de configurar um banco de dados e o ETL necessário para carregar regularmente?