Pergunta

Estou tendo um problema com uma pesquisa no FreeText, atualmente em execução em um servidor SQL 2000.

Em uma tabela de aproximadamente 1,3 milhão de linhas que contêm nomes de empresas, estou tentando usar uma consulta do FreeText. No entanto, como o SQL Server retira caracteres especiais e caracteres únicos ao criar seu índice, nosso código faz o mesmo ao enviar a consulta.

Por exemplo, pesquisas como 'Texas A&M' acabam apenas consultando para 'Texas', que retorna uma tonelada de registros irrelevantes.

Qual é a melhor prática para lidar com esses tipos de consultas de pesquisa? Esse problema seria corrigido atualizando para uma versão mais recente do SQL Server?

Neste ponto, um mecanismo de indexação de terceiros como Lucene não é uma opção, mesmo que resolva o problema, do qual não tenho certeza.

Foi útil?

Solução

Você pode tentar usar um único caractere selvagem '_' semelhante a:

WHERE myColumn like 'Texas_A_&_M'

ou

WHERE myColumn like 'Texas%A_&_M' 

Outras dicas

Você pode verificar se as melhorias do SQL Server 2005 podem resolver seu problema:Pesquisa de texto completo do SQL Server 2005: internos e aprimoramentos, em particular sobre palavras de ruído em Novos recursos para o desenvolvedor.

Se você está pesquisando nomes de empresas e não há longas passagens de texto, por que não usar como?

...
WHERE
    CompanyName LIKE '%Texas A%&%M%'
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top