Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi pessoal
Estou com um campo fulltext search chamado PalavrasChave, varchar(255), na minha tabela BuscaEspecial
Full-text Specification: yes
(Is Full-text indexed): yes
Full-text Type column: none (e não consigo alterar)
Language: English US (não tem português)
Exemplo: tenho uma linha cadastrada com nomes de frutas no campo PalavrasChave: abacate morango amora cereja.
Mas minha busca : SELECT * FROM BuscaEspecial WHERE Freetext(PalavrasChave,'morango') não traz nada.
Alguma configuração faltando? De for uma das quais eu não consigo alterar, alguém pode me ajudar a abrir essa possibilidade de configuração?
Muito obrigado.
>
De uma olhada neste artigo:
Abçs
Oi A.Jr,
Muito obrigado pela resposta. É de grande valia este artigo, mas estou procurando algo como ranquear a busca. Eu fazia isso no Mysql. Ele cava uma nota para os resultados e eu podia ordenar de acordo com esse valor. Considerando os campos:
id1 - frutas: morango abacaxi maça banana
id2 - frutas: morango abacaxi maça limão
Uma busca por: morango limão romã
traria o id2 melhor ranqueado que o id1 uma vez que ele tem 2 das frutas pesquisadas e o id1 apenas uma.
Não sei se esse tipo de busca consegue rankear buscas como: abacai (abacaxi escrito errado). Tipo a correção do google quando digitamos algo errado.
Muito obrigado
uma busca por:
nakid,
eu, em particular, não me recordo de uma função para este tipo de "ranking". Lembro que vi isso em algum módulo do meu curso, mas como era uma coisa que não iria utilizar não anotei.
Vou ver se acho algo e lhe informo.
Para os tipos de correção que citou, tem a função SOUNDEX
Verifique se lhe ajuda!
Abçs
>
nakid,
eu, em particular, não me recordo de uma função para este tipo de "ranking". Lembro que vi isso em algum módulo do meu curso, mas como era uma coisa que não iria utilizar não anotei.
Vou ver se acho algo e lhe informo.
Para os tipos de correção que citou, tem a função SOUNDEX
Verifique se lhe ajuda!
Abçs
Nossa! Obrigadão pela dica!!
Quanto ao Ranking, descobri umas funções que fazem algo do tipo. Dá uma olhada:
SELECT
TB.Campo1,
TB.Campo2,
Rel.RANK
FROM Tabela AS TB
INNER JOIN
FREETEXTTABLE(Tabela, CampoDaPesquisa, 'paravra1 palavra2 palavran') AS Rel
ON
Rel.[KEY]=PL.CampoIdDaTabela
ORDER BY Rel.RANK DESC
É essa FREETEXTTABLE e a CONTAINSTABLE que trabalham isso.
Mas não sonsigo testar direito. Apesar dos meus campos serem fulltext, só os registros mais antigos funcionam. E mesmo se eu inserir mais palavras chave nos registros antigos, estas também não funcionam, apenas as cadastradas lá atrás. E raios! Isso não faz sentido algum! A única resposta é que meu DB deve estár atualizando seus indices fulltext de tempo em tempo. Enfim...
Obrigado.
Nakid
Achei este link que pode lhe ajudar:
http://msdn.microsoft.com/pt-br/library/cc879244.aspx
Estou sem ambiente de teste neste momento.
Qual sua versão do SQL?
Abçs
>
Achei este link que pode lhe ajudar:
http://msdn.microsoft.com/pt-br/library/cc879244.aspx
Estou sem ambiente de teste neste momento.
Qual sua versão do SQL?
Abçs
Oi A.Jr, mais uma vez muito obrigado, excelente indicação. O problema que citei acima era aquele mesmo. Os meus index fulltext não estavam sendo atualizados. Eu falei com o responsavel pelas settings aqui e ele resolveu pra mim.
Cara, finalmente achei o resultado que eu esperava. É bem útil isso e que fique de consulta pra quem tiver a mesma necessidade Ficou assim:
SELECT
TB.Campo1,
TB.Campo2,
TB.Campon,
Rel.RANK
FROM
Tabela AS TB, ContainsTable(Tabela, CampoDaPesquisa,
'ISABOUT (palavrachave1 weight (.1), palavrachave2 weight (.3), palavrachave3 weight (.2))') Rel
WHERE
Rel.[KEY]=TB.CampoIdDaTabela
ORDER BY
RANK Desc
Além de ele pontuar os resultados em que mais ocorreram as palavraschave, existe essa possibilidade opcional de atribuir pesos para palavras chave diferentes.
Agora só falta descobrir uma forma boa para aproximar palavras escritas de forma errada no meio disso tudo. Talvez seu link me ajude.
Abraço!
Nakid
Ficou realmente muito bom o que fez! :joia:
Tente ver se o Soundex não lhe ajuda no caso.
Abçs e boa sorte!
De uma olhada neste artigo:
Full Text SQL2005
Abçs