Table of Contents

Method PigeonholeFragments

Namespace
UsluzionicaServer.Infrastructure.Search
Assembly
UsluzionicaServer.dll

PigeonholeFragments(string, int)

Deli token na d+1 delova za SQL prefilter.

PIGEONHOLE PRINCIP: ako se q i w razlikuju za najviše d izmena, a q podelimo na d+1 disjunktnih delova, onda d izmena može „pokvariti" najviše d delova — bar jedan deo ostaje netaknut i mora doslovno postojati u w.

Zato WHERE SearchTitle LIKE '%fri%' OR LIKE '%zerr%' ne može promašiti pravi rezultat. Prefilter je korektan po konstrukciji, a ne heuristika koja „obično radi".

Primeri: frizerr (7, d=1) → "fri" + "zerr" ; „frizer" sadrži "fri" ✓ frizre (6, d=1) → "fri" + "zre" ; „frizer" sadrži "fri" ✓ vodoinstalter (13,d=2) → "vodo"+"inst"+"alter" ; „vodoinstalater" sadrži "vodo" i "inst" ✓

public static IReadOnlyList<string> PigeonholeFragments(string token, int maxDistance)

Parameters

token string
maxDistance int

Returns

IReadOnlyList<string>