[MySQL] Fulltext search met join

Pagina: 1
Acties:

  • PluueeR
  • Registratie: December 2000
  • Laatst online: 17-08 21:56
Ik heb twee tabellen: tblmerken en tblproducten. tblmerken bestaat uit twee velden ID en merk_naam in tblproducten heb ik een veld merk waarin het het ID van het merk wordt opgeslagen.

Nu ben ik bezig met een zoekmachine die moet zoeken op product_naam en omschrijving welke beide in tblproducten staan maar ook op naam van het merk.

Nu heb ik op beide tabellen een fulltext index gemaakt. Op tblmerken.merk_naam en in de tabel tblproducten op de velden product_naam en omschrijving.

Als ik de volgende query uitvoer:

code:
1
2
3
4
SELECT * FROM tblproducten, tblmerken WHERE 
tblproducten.merk = tblmerken.ID 
MATCH (tblproducten.product_naam, tblproducten.omschrijving, tblmerken.merk_naam) 
AGAINST ('AMD')


Deze query geeft een fout terug. Is het uberhaupt wel mogelijk om op zo'n manier een fulltext search te doen?

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 21-08 17:05
http://www.mysql.com/doc/en/Fulltext_Restrictions.html

daar staat:
All parameters to the MATCH() function must be columns from the same table that is part of the same FULLTEXT index, unless the MATCH() is IN BOOLEAN MODE.
edit:
en over dat BOOLEAN MODE:
MATCH (col1,col2,...) AGAINST (expr IN BOOLEAN MODE)
MATCH ... AGAINST() is used for full-text search and returns relevance - similarity measure between the text in columns (col1,col2,...) and the query expr. Relevance is a positive floating-point number. Zero relevance means no similarity. MATCH ... AGAINST() is available in MySQL version 3.23.23 or later. IN BOOLEAN MODE extension was added in version 4.0.1. For details and usage examples, see section 6.8 MySQL Full-text Search.
Dat werkt dus alleen als je Mysql 4+ hebt

[ Voor 54% gewijzigd door beetle71 op 11-03-2003 14:02 ]


  • PluueeR
  • Registratie: December 2000
  • Laatst online: 17-08 21:56
Daar heb je dus ook geen hol aan :) zelf maar wat maken dus :)