Fulltext search op meerdere tabellen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Matthijs

matthijs

06/10/2007 22:33:00
Quote Anchor link
Beste,

Is het mogelijk om een fulltext search te doen op meerdere tabellen?

Ik heb een query bestaande uit inner joins die 4 tabellen koppelt.

Gr,

Matthijs
Gewijzigd op 01/01/1970 01:00:00 door Matthijs
 
PHP hulp

PHP hulp

15/05/2024 21:36:40
 
Aron K

Aron K

06/10/2007 23:05:00
Quote Anchor link
Ik weet zo geen antwoord, maar moet dit niet onder de categorie php of mysql?
 
- SanThe -

- SanThe -

06/10/2007 23:12:00
Quote Anchor link
Aron schreef op 06.10.2007 23:05:
Ik weet zo geen antwoord, maar moet dit niet onder de categorie php of mysql?
Je hebt gelijk. Verplaatst.
 
Jan Koehoorn

Jan Koehoorn

06/10/2007 23:26:00
Quote Anchor link
Dat kan, maar een FULLTEXT sorteert automatisch op relevantie, dus daar moet je wel rekening mee houden. Op twee FULLTEXT indexen tegelijk gaan zoeken levert denk ik onvoorspelbare resultaten op.
 
Arjan Kapteijn

Arjan Kapteijn

07/10/2007 00:17:00
Quote Anchor link
Die relevantie is namelijk niet afhankelijk van elkaar, maar binnen de tabel zelf.
 
Matthijs

matthijs

07/10/2007 00:48:00
Quote Anchor link
Beste allemaal,

Sorry dat ik deze in de koffiehoek had gepost.
Ik ben er inmiddels uit. Ik heb m'n inner join query van 4 tabellen gebruikt.

normaal heb je een fulltext search zoiets als:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$query
= "SELECT * FROM tabel WHERE MATCH (naam, straat, adres) AGAINST ('*" . $_POST['zoekwoord'] . "*' IN BOOLEAN MODE) ORDER BY naam";
?>


na m'n "inner join query" heb ik bij de WHERE statement bovenstaande er aan geplakt en voila.

Stuit ik nog op 1 probleem:
(Bovenstaande even achterwege gelaten)

Ik heb 4 tabellen. Als ik een zoekopdracht in kleine letters verzend dan krijg ik resultaten van de eerste 3 tabellen en niet van de 4de terwijl het zoekwoord wel in tabel 4 voorkomt.

Als ik dezelfde zoekopdracht in HOOFD letters verzend dan krijg ik resultaten van alle 4 de tabellen.

Heel vreemd

Dit is de code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
$query1
= "SELECT * FROM tabel1 WHERE MATCH (naam1, straat1) AGAINST ('*" . $_POST['zoekwoord'] . "*' IN BOOLEAN MODE) ORDER BY naam1";
$query2 = "SELECT * FROM tabel2 WHERE MATCH (naam2, straat2) AGAINST ('*" . $_POST['zoekwoord'] . "*' IN BOOLEAN MODE) ORDER BY naam2";
$query3 = "SELECT * FROM tabel3 WHERE MATCH (naam3, straat3) AGAINST ('*" . $_POST['zoekwoord'] . "*' IN BOOLEAN MODE) ORDER BY naam3";
$query4 = "SELECT * FROM tabel4 WHERE MATCH (naam4, straat4) AGAINST ('*" . $_POST['zoekwoord'] . "*' IN BOOLEAN MODE) ORDER BY naam4";

$resultaat1 = mysql_query($query1) or die(mysql_error());
$resultaat2 = mysql_query($query2) or die(mysql_error());
$resultaat3 = mysql_query($query3) or die(mysql_error());
$resultaat4 = mysql_query($query4) or die(mysql_error());

$totaal1 = mysql_num_rows($resultaat1);
$totaal2 = mysql_num_rows($resultaat2);
$totaal3 = mysql_num_rows($resultaat3);
$totaal4 = mysql_num_rows($resultaat4);

while($zoek1 = mysql_fetch_assoc($resultaat1)) {    
        
        echo "<tr>";
        echo "<td>" . $zoek1['naam1'] . "</td>";
        echo "<td width='10'></td>";
        echo "<td>" . $zoek1['straat1'] . "</td>";
        echo "<td width='10'></td>";
}


//en de rest op dezelfde wijze

?>


Van alle tabellen zijn de velden van het type VARCHAR

Iemand enig idee?
Gewijzigd op 01/01/1970 01:00:00 door matthijs
 
Frank -

Frank -

07/10/2007 12:05:00
Quote Anchor link
Genummerde tabelnamen? Of je bent een beetje aan het aanrommelen met wat testjes of er klopt geen moer van het datamodel.

Ik mag hopen dat je een beetje aan het testen bent, anders ga je gegarandeerd nog een hoop problemen krijgen. Jouw huidige probleem lijkt hier al mee te maken te hebben...
 
Matthijs

matthijs

07/10/2007 12:57:00
Quote Anchor link
Nee Frank,

geen genummerde tabelnamen. Dit is puur als voorbeeld. Zie de genummerde tabelnamen als "normale" tabelnamen. Neem tabel1 als klantinfo, tabel2 als productinfo bijvoorbeeld.

Het gaat erom dat ik niet kan verklaren waarom een zoekopdracht in kleine letters ik wel resultaten van de eerste 3 tabellen krijg en niet van de 4de terwijl het zoekwoord wel in de 4e tabel voorkomt.

Als ik dezelfde zoekopdracht in HOOFD letters verzend dan krijg ik resultaten van alle 4 de tabellen.
 



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.