Skip to content

Eksakt søgning i Sphinx

Sphinx kan som udgangspunk ikke lave en eksakt søgning. Så hvis du vil efter et eller andet bestemt og som skal være hele “ordet” skal man snyde lidt.
Hvis man f.eks. vil søge efter et varenummer 123456 og ikke vil have 01234567, kan man snyde den ved at tilføje en streng forand og bagefter alle indexerede ord.

Sql sætningen kunne se sådan ud:
MySql

[sourcecode] SELECT id, CONCAT(‘__START__’, varenummer, ‘__END__’) AS varenummer FROM vare
[/sourcecode]

MS Sql

[sourcecode] SELECT id, (‘__START__’ + varenummer + ‘__END__’) AS varenummer FROM vare
[/sourcecode]

Når man så laver sin søgning i Sphinx sætter man bare ‘__START__’ forand og ‘__END__’ efter søgeordet. På den måde vil Sphinx ikke kunne finde match ved andre end det man søger på.

Vigtigt! ‘__START__’ og ‘__END__’ skal være noget som du ikke fil finde i dine data. Hvis disse strenge findes i dine data kan du blot skifte dem ud med noget andet.

This Post Has 0 Comments

Skriv et svar

Back To Top