Toon posts:

MySQL Full-text Search, hits laten zien?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben aardig op weg met een zoekmachine i.c.m. MySQL Full-text Search, ik wil graag bij de resultaten de mogelijkheid hebben om te zien hoe vaak een trefwoord is voorgekomen in het resultaat.

Stel je hebt deze query en het volgende resultaat (aangepast voorbeeld van MySQL Manual)

code:
1
2
3
4
5
6
7
8
9
10
11
mysql> SELECT * FROM articles WHERE MATCH (title,body)
    ->     AGAINST ('MySQL' IN BOOLEAN MODE);
+----+------------------------------+-------------------------------------+
| id | title                        | body                                |
+----+------------------------------+-------------------------------------+
|  1 | MySQL Tutorial               | DBMS mysql mysql  mysql  mysql      |
|  2 | How To Use MySQL Efficiently | After mysql  mysql  you went        |
|  3 | Optimising MySQL             | In this mysql  mysql  mysql  mysql  |
|  4 | 1001 MySQL Tricks            | 1. Never run mysqld as root. 2. ... |
|  6 | MySQL Security               | When configured properly, MySQL ... |
+----+------------------------------+-------------------------------------+


Is het dan mogelijk om op een bepaalde manier een extra kolum te krijgen met hoeveel hits er in een rij zit, dit staat niet in de Full text manual die jullie hier http://www.mysql.com/doc/en/Fulltext_Search.html kunnen vinden.

Deze query bijvoorbeeld laat wel de score zien van de relevantie maar die is niet gelijk aan het aantal hits dus

code:
1
2
3
4
5
6
7
SELECT 
    naam, MATCH (naam,omschrijving) AGAINST ('trefwoord') AS score
FROM
    tabel
WHERE MATCH
    (naam,omschrijving)
AGAINST ('trefwoord');


Zo ja, hoe moet ik dit realiseren, misschien met een count op de match maar dit is me nog niet gelukt, b.v.d.

[ Voor 17% gewijzigd door Verwijderd op 07-05-2003 18:00 ]


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Je zou het kunnen berekenen door een replace van de zoekstring te doen met null in de resultaat string. Met de lengte reductie kan je dan berekenen hoevaak de string er in voorkwam.
Het is een "dirty" oplossing, maar beter een dirty oplossing dan geen dacht ik.