Table of Contents

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.