Class SearchNormalizer
- Namespace
- UsluzionicaServer.Infrastructure.Search
- Assembly
- UsluzionicaServer.dll
Svodi tekst na oblik pogodan za pretragu: mala slova, čist ASCII, bez dijakritike, ćirilica preslovljena u latinicu.
Cilj je da upit i sadržaj oglasa završe u ISTOM obliku, pa da: "sisanje" nađe "Šišanje" "фризер" nađe "Frizerski salon" "Đorđe" nađe "djordje"
Ova klasa je jedini izvor istine za preklapanje. Isti Fold() se koristi i pri upisu u bazu (denormalizovane Search* kolone) i pri obradi upita — da se dve strane ne mogu razići.
public static class SearchNormalizer
- Inheritance
-
SearchNormalizer
- Inherited Members
Fields
- Version
Verzija pravila preklapanja. Podigni je kad promeniš mapu ili logiku — backfill pri sledećem pokretanju automatski re-indeksira sve redove kojima se SearchVersion ne poklapa. Zato ta kolona postoji.
Methods
- DjVariants(string)
Varijante tokena zbog dvosmislenosti slova „đ".
Korisnik ga kuca na tri načina:
Đorđe,Djordje,Dordje. Prva dva se foldiraju u "djordje", treći u "dordje" — različiti stringovi. Zato upit traži uniju obe varijante.Vraća 1 ili 2 stavke; nikad prazno.
- EscapeLike(string)
Escape-uje znakove koje SQL Server LIKE tretira kao specijalne.
Bez ovoga upit "%" vraća SVE oglase, a "[a-z]" se tumači kao opseg. Prati se sa ESCAPE '' u samom LIKE izrazu.
- Fold(string?)
Svodi tekst na foldovani oblik. Vraća prazan string za null/prazno.
- Tokenize(string?)
Deli foldovan tekst na tokene.