Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

FREETEXT i CONTAINS sa specijalnim karakterima.

[es] :: MS SQL :: FREETEXT i CONTAINS sa specijalnim karakterima.

[ Pregleda: 1781 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Belgarion
Novi Sad

Član broj: 245135
Poruke: 71
*.static.sbb.rs.



+2 Profil

icon FREETEXT i CONTAINS sa specijalnim karakterima.27.05.2013. u 11:33 - pre 131 meseci
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
 
Odgovor na temu

Belgarion
Novi Sad

Član broj: 245135
Poruke: 71
*.static.sbb.rs.



+2 Profil

icon Re: FREETEXT i CONTAINS sa specijalnim karakterima.27.05.2013. u 11:37 - pre 131 meseci
inace celi upit izgleda ovako

Code:
SELECT DISTINCT sr.SkillNameRevision
FROM skillrevisiontable sr 
WHERE 
 (
 FREETEXT(sr.SkillNameRevision, 'A@') 
 OR 
 CONTAINS(sr.SkillNameRevision, '"A@*"')
 )
 
Odgovor na temu

Belgarion
Novi Sad

Član broj: 245135
Poruke: 71
*.static.sbb.rs.



+2 Profil

icon Re: FREETEXT i CONTAINS sa specijalnim karakterima.19.07.2013. u 12:12 - pre 130 meseci
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.
 
Odgovor na temu

[es] :: MS SQL :: FREETEXT i CONTAINS sa specijalnim karakterima.

[ Pregleda: 1781 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.