pesquisa de texto completo (sql server 2005) funciona somente em alguns campos
-
12-09-2019 - |
Pergunta
OK esta é a situação ..
Eu estou permitindo a pesquisa de texto completo em uma mesa, mas ele só funciona em alguns campos ..
CREATE FULLTEXT CATALOG [defaultcatalog]
CREATE UNIQUE INDEX ui_staticid on static(id)
CREATE FULLTEXT INDEX ON static(title_gr LANGUAGE 19,title_en,description_gr LANGUAGE 19,description_en) KEY INDEX staticid ON [defaultcatalog] WITH CHANGE_TRACKING AUTO
Agora, por que o seguinte irá trazer resultados
Select * from static where freetext(description_en, N'str')
e isso não (enquanto a ambos têm texto com str nele ..)
Select * from static where freetext(description_gr, N'str')
(i tentou também, sem a especificação da linguagem - grego, neste caso) (O agrupamento é de base de dados é Greek_CI_AS) btw
Select * from static where description_gr like N'%str%'
vai funcionar muito bem ..
todos os campos são do tipo nvarchar e os campos _gr segurar texto Inglês e Grego .. (não importa)
Toda a ajuda será muito apreciada
Solução
Apenas tentando descobrir o que está acontecendo: o que você ganha com esta consulta aqui
SELECT * FROM static WHERE FREETEXT(*, N'str')
Se você não está especificando explicitamente qualquer coluna para pesquisar? - dá-lhe os resultados esperados
Outro ponto: Eu acho que você tem um ID de idioma errado na sua declaração. De acordo com SQL Server Books Online:
Quando especificado como uma string, corresponde language_term para o alias valor de coluna em syslanguages tabela do sistema. A seqüência deve ser entre aspas simples, como em 'language_term'. Quando especificado como um número inteiro, é o language_term LCID real que identifica o linguagem.
e pelo que eu encontrei na internet pesquisando em torno, o LCID para grego é 1032 - não 19. Você pode tentar com 1032, em vez de 19? Isso faz alguma diferença?
Marc