Versio

Fulltext search in huidige query

Overzicht Reageren

GaMer B

GaMer B

14/04/2008 17:13:00
Quote Anchor link
Momenteel heb ik deze query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
$sql = "SELECT SQL_CALC_FOUND_ROWS r.id, r.titel, r.datumGeplaatst, (SELECT ROUND(s.totaalGetal / s.aantalStemmen, 1) ) AS waardering, cat.categorieNaam
FROM recepten AS r
LEFT JOIN stemmen AS s
ON r.id = s.receptenID
LEFT JOIN categorie AS cat
ON r.id = cat.id
WHERE r.goedGekeurd = 1 ORDER BY DATE(r.datumGeplaatst) DESC LIMIT " . $smartyPaginate->getCurrentIndex() . "," . $smartyPaginate->getLimit();


Nu heb ik (om fulltext er in te integreren) dit al geprobeerd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
$sql = "SELECT SQL_CALC_FOUND_ROWS *, (SELECT ROUND(s.totaalGetal / s.aantalStemmen, 1) ) AS waardering, cat.categorieNaam, MATCH (r.titel, r.ingredienten, r.instructies) AGAINST
('" . $zoekwoorden . "' IN BOOLEAN MODE) AS score
FROM recepten AS r
LEFT JOIN stemmen AS s
ON r.id = s.receptenID
LEFT JOIN categorie AS cat
ON r.id = cat.id
WHERE r.goedGekeurd = 1 AND MATCH (r.titel, r.ingredienten, r.instructies) AGAINST ('" . $zoekwoorden . "' IN BOOLEAN MODE) ORDER BY score DESC LIMIT " . $smartyPaginate->getCurrentIndex() . "," . $smartyPaginate->getLimit();


Maar dit geeft echter 0 (nul) resultaten terug bij een zoekactie naar: 'kip', terwijl er wel degelijk een recept aanwezig is met als titel het woord kip er in.
Iemand enig idee hoe dat zou moeten?
Gewijzigd op 01/01/1970 01:00:00 door GaMer B
 
PHP hulp

PHP hulp

24/05/2012 18:10:58
Gesponsorde koppelingen:
 
Superwauwie

superwauwie

14/04/2008 20:00:00
Quote Anchor link
Ik heb ff een pagina gemaakt met een zoekmachine script:

http://ccb1c.cc.funpic.org/tutorial.php
 
Jan Koehoorn

Jan Koehoorn

14/04/2008 21:09:00
Quote Anchor link
@ superwauwie: je post heeft niets met de vraag te maken en lijkt dus op spam. Let daar even op please.

@ TS: in FULLTEXT search is er een minimum lengte voor zoekwoorden. Ik weet niet uit mijn hoofd of 3 letters getolereerd wordt. Misschien moeten het er minstens 4 zijn. Ik zal even zoeken.
Quote:
Any word that is too short is ignored. The default minimum length of words that are found by full-text searches is four characters.

Bron: MySQL handleiding
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
GaMer B

GaMer B

14/04/2008 21:12:00
Quote Anchor link
Blijkbaar is het inderdaad de minimum lengte. Omelet doet het bijvoorbeeld weer wel en het woordje 'voor' doet het ook, dus het zal wel een minimum lengte van 4 zijn.

Edit:
Oke, is het handig om te overwegen om de minimum lengte te alteren?
Gewijzigd op 01/01/1970 01:00:00 door GaMer B
 
Jan Koehoorn

Jan Koehoorn

14/04/2008 21:13:00
Quote Anchor link
Zie mijn vorige edit ;-)

Minimum lengte veranderen kan, maar ik weet niet wat dat doet voor de snelheid. Je zou ook een nieuwe query kunnen runnen als je eerste nul resultaten oplevert. Die tweede doe je dan IN BOOLEAN MODE. Die kijkt ook naar delen van woorden en korte woorden.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 



Overzicht Reageren

Get Adobe Flash player