Hallo Leute,
ich habe ein kleines, wahrscheinlich aber doch großes Problem.
Ich habe ein Suchfunktion über eine MySQL-DB realisiert. Doch
Leider kommen bei Abfragen mit ganz vielen Wörtern, die alle
in dem zu findenden Dokument vorkommen sollen, manchmal
falsche Ergebnisse bei raus.
Ich verwende eine Wortindizierung und die Tabellenstruktur
sieht so aus:
...wort hat also eine n:m-Beziehung
zu seite über die Tabelle rel_seite_wort.
Meine momentane Abfrage sieht so aus:
Ich dachte der Alias: "anz" dürfte nie
größer sein als die Anzahl der Wörter nach denen ich Suche, aber er
ist es komischer Weise manchmal.
Ich vermute das daher manchmal komische Ergebnisse kommen.
Für jeden erleuchtenden Hinweis wäre ich sehr dankbar,
netten Gruß, hOk
ich habe ein kleines, wahrscheinlich aber doch großes Problem.
Ich habe ein Suchfunktion über eine MySQL-DB realisiert. Doch
Leider kommen bei Abfragen mit ganz vielen Wörtern, die alle
in dem zu findenden Dokument vorkommen sollen, manchmal
falsche Ergebnisse bei raus.
Ich verwende eine Wortindizierung und die Tabellenstruktur
sieht so aus:
Code:
Worttabelle -> +---------+------+ | wort_id | wort | +---------+------+ Wortseitenrelationstabelle -> +---------+----------+ | wort_id | seite_id | +---------+----------+ Seitetabelle -> +----------+-----+ | seite_id | url | +----------+-----+
zu seite über die Tabelle rel_seite_wort.
Meine momentane Abfrage sieht so aus:
Code:
$str_search = '"wort1","wort2","wort3"'; $int_search_words = 3; $result = mysql_query(' SELECT COUNT(s.s_url) as anz, s.s_url as url, FROM wort w LEFT JOIN rel_seite_wort r USING(w_id) LEFT JOIN seite s USING(s_id) WHERE w.w_wort IN ('.$str_search.') GROUP BY s.s_id HAVING anz = '.$int_search_words.' );
größer sein als die Anzahl der Wörter nach denen ich Suche, aber er
ist es komischer Weise manchmal.
Ich vermute das daher manchmal komische Ergebnisse kommen.
Für jeden erleuchtenden Hinweis wäre ich sehr dankbar,
netten Gruß, hOk
Kommentar