Fulltext op voornaam,achternaam en functie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Michael -

Michael -

26/10/2015 20:05:04
Quote Anchor link
Hallo,

Mijn ervaring met FULLTEXT is niet zo groot, meestal is LIKE voldoende, toch wil ik eens meer kennis maken met FULLTEXT en heb daarom hiervoor gekozen voor dit project.

Ik heb de tutorial van MySQL doorgenomen voor de basiskennis.

Mijn project bestaat uit een lijst met zo'n 550 records met voornaam, achternaam, functie en geboortedatum.
Ik wil graag kunnen zoeken in de eerste drie, maar tegen een aantal dingen aan.

Wat ik heb:
SELECT MATCH(voornaam,achternaam,functie) AGAINST('".$q."*' IN BOOLEAN MODE) score
WHERE MATCH(voornaam,achternaam,functie) AGAINST('".$q."*' IN BOOLEAN MODE)
ORDER BY score DESC

De order zorgt ervoor dat de meest relevante bovenaan komt (/zou moeten komen).

Echter zijn er namen als Jan-Peter, Luc, Bert-jan die onverwachte resultaten geven.
Het lijkt erop dat de streep wordt genegeerd en daarnaast lijkt Jan en Luc iets te kort waardoor ik eerst de peter's krijg wanneer ik Jan-peter zoek. Luc kan ik niet vinden zonder achternaam, wel krijg ik dan Luca wat dus wel lang genoeg is.

Als ik zoek op Bert-jan krijg ik: #1 Bert, #2 .. Janssen, #3 .. Jansen, #4 .. Jansen, #5 Bert, #6 Bert-jan.
Voor mij zijn dit resultaten die ik eigenlijk niet verwacht en zou liever Bert-Jan op #1 krijgen.

Kan ik hieraan nog iets verbeteren om betere zoekresultaten te krijgen?

Bij voorbaat dank
 
PHP hulp

PHP hulp

24/12/2024 17:33:21
 
Pg Vincent

Pg Vincent

31/10/2015 12:32:50
Quote Anchor link
MySQL's FULLTEXT doet niet aan substrings, dus 'jan' zal nooit 'jan-luc' vinden.
Er is inderdaad een limiet op het aantal tekens, zoekwoorden van minder dan vier tekens worden genegeerd, dit kun je aanpassen in de config maar dan loop je weer het risico dat je bij het zoeken op "jan van putten" ook matches krijgt op "een plank van hout".

Over je onverwachte resultaten op bert-jan: wat is de score daar? Want er is een dikke kans dat de score vooral die resultaten hetzelfde is.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.