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


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

Ako na primer trazim string '[email protected]#$%' 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, '[email protected]') 
 OR 
 CONTAINS(sr.SkillNameRevision, '"[email protected]*"')
 )
[ 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: [email protected]#$
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.