Archief - MySql: fulltext search probleem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

D@ Mick

Legacy Member
Iow,

ik ben voor mijn site aan het proberen van een search engine te maken. Hierbij wil ik gebruik maken van mysql fulltext search. Maar het lukt mij niet al te best. De zoekfunctie moet zoeken op Titel en Tutorial (2 kolommen) dus heb ik een fulltext index geplaatst op die 2. Vervolgens gebruik ik volgende sql opdracht:
$Opdracht1 = "SELECT Titel, COID FROM lcal WHERE MATCH (Titel,Tutorial) AGAINST ('$woord')";

$woord word doorgestuurt vanuit een form en opgehaald op de resultpagina waar de sql opdracht staat.

Heb al een paar tutorials doorgenomen maar geraak geen wijs uit wat er fout kan zijn.

BTW : ik maak gebruik van MySql 4.x

dJeez

Legacy Member
De foutmelding die je krijgt vermelden zou al handig kunnen zijn.

D@ Mick

Legacy Member
Héhé, ik krijg geen foutmelding. Ik krijg alleen geen output te zien. In de opdracht zit dus geen echte code fout.

servi

Legacy Member
dat is teken dat hij het woord niet vindt of de relevantie te klein vind ( < 0.5 )

doe eens met LIKE '%$woord%', als hij dan een woord teruggeeft is dat teken dat de relevantie gewoon te klein is voor MATCH en dat hij het daarom niet weergeeft.

D@ Mick

Legacy Member
in het begin heb ik ook met like gewerkt en toen werkte het wel degelijk. Ik vond het alleen dom dat er maar op 1 trefwoord kon gezocht worden en wou het verder uitbereiden.
Heb je enig gedacht van hoe ik die relevantie kan omzeilen??????

Cakeman

Legacy Member
Het kan ook zijn dat je $woord in meer dan 50% van de rows in je table voorkomt.

Such a technique works best with large collections (in fact, it was carefully tuned this way). For very small tables, word distribution does not adequately reflect their semantic value, and this model may sometimes produce bizarre results. For example, although the word ``MySQL'' is present in every row of the articles table, a search for the word produces no results:

mysql> SELECT * FROM articles
-> WHERE MATCH (title,body) AGAINST ('MySQL');
Empty set (0.00 sec)

The search result is empty because the word ``MySQL'' is present in at least 50% of the rows. As such, it is effectively treated as a stopword. For large datasets, this is the most desirable behavior--a natural language query should not return every second row from a 1GB table. For small datasets, it may be less desirable.
http://dev.mysql.com/doc/mysql/en/Fulltext_Search.html

xml

Legacy Member
D@ Mick zei:
in het begin heb ik ook met like gewerkt en toen werkte het wel degelijk. Ik vond het alleen dom dat er maar op 1 trefwoord kon gezocht worden en wou het verder uitbereiden.
Heb je enig gedacht van hoe ik die relevantie kan omzeilen??????

Door middel van "IN BOOLEAN MODE" kunt ge op meerdere trefwoorden zoeken, zoek maar is op.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan