[ Belgarion @ 27.05.2013. 11:33 ] @
Code:
SELECT DISTINCT sr.SkillNameRevision
FROM skillrevisiontable sr 
WHERE 
 (
 CONTAINS(sr.SkillNameRevision, '"A@*"')
 )


hocu da nadjem sve sto u sebi ima rec koja pocinje sa 'A@'.
Medjutim ignorise '@' specijalni znak kao da ga nisam napisao.
Iako u bazi postoji 'A@'.
Isto vazi ako trazim rec 'A!' ili 'A@#$'.
CONTAINS radi dobro ako se ne koriste specijalno znakovi.

Ako na primer trazim string '!@#$%' onda nece naci nista. (postoji u bazi)

ukoliko koristim LIKE umeto CONTAINS onda ce da radi ali bice znatno sporije.
Potrebno mi je da koristim CONTAINS (ili FREETEXT) ali da radi kako treba.

Jel moze pomoc?

Hvala unapred
[ Belgarion @ 27.05.2013. 11:37 ] @
inace celi upit izgleda ovako

Code:
SELECT DISTINCT sr.SkillNameRevision
FROM skillrevisiontable sr 
WHERE 
 (
 FREETEXT(sr.SkillNameRevision, 'A@') 
 OR 
 CONTAINS(sr.SkillNameRevision, '"A@*"')
 )
[ Belgarion @ 19.07.2013. 12:12 ] @
Citat:
A full-text search considers a word to be a string of characters without spaces or punctuation.
The occurrence of a non-alphanumeric character can "break" a word during a search. Because the SQL Server full-text search is a word-based engine, punctuation generally is not considered and is ignored when searching the index.
Therefore, a CONTAINS clause like 'CONTAINS(testing, "computer-failure")' would match a row with the value, "The failure to find my computer would be expensive.".


To je odgovor na moje pitanje ako nekoga zanima.

Nista od ovoga nije rec: !@#$
Tako da je ovo ocekivano ponasanje.

Full text index je namenjen za pretragu teksta i radi tako sto izvadi sve RECI iz kolona koje su indeksirane tim indeksom i onda ih poslaze u svoj recnik.
Kada napravis upit sql server match-uje podatke iz tabele sa recima u tekst index-u i vrsi pretragu.