Hvem fanden er den general?
Hvem fanden er den general?

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

SELECT id, CONCAT('__START__', varenummer, '__END__') AS varenummer FROM vare

MS Sql

SELECT id, ('__START__' + varenummer + '__END__') AS varenummer FROM vare

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.

Leave a comment

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

This site uses Akismet to reduce spam. Learn how your comment data is processed.