ich versuche seit einigen Stunden Rexsearch zum laufen zu bringen und bin irgendwie zu blöd dazu. Habe mich durch diesen Thread gewühlt, es klingt auch alles ganz einfach aber irgendwo habe ich einen Denkfehler.
Redaxo 4.3.1 Testinstallation mit wenig Inhalt, einzige Besonderheit: 2 Sprachen und 2 ctypes.
Research 0.7.1, eben noch einmal frisch installiert, mit den Grundeinstellungen.
Index schrittweise erstellen läuft durch:
Done: Article "Shows / Konzerte" (ID=17,Deutsch)
Done: Article "Shows / Konzerte" (ID=17,Englisch)
Done: Article "Öffnungszeiten" (ID=16,Deutsch)
Done: Article "Öffnungszeiten" (ID=16,Englisch)
Done: Article "Sicherheit" (ID=15,Deutsch)
Done: Article "Sicherheit" (ID=15,Englisch)
etc.
Suchformular übergibt das Suchwort korrekt, als Modul habe ich sowohl die einfache als auch die erweiterte Variante probiert.
Das Suchwort "test" kommt in der Tabelle rex_587_searchindex in zwei Zeilen in den Spalten "plaintext", "unchangedtext" und "teaser" vor, wird aber nicht gefunden.
Die Search-Methode gibt als sql folgendes zurück:
Code: Alles auswählen
SELECT SQL_CALC_FOUND_ROWS (SELECT SUM((( MATCH (`plaintext`) AGAINST ('test')) * 1) + 1) FROM `rex_587_searchindex` summe WHERE summe.fid = r1.fid AND summe.ftable = r1.ftable) AS RELEVANCE587, (SELECT COUNT(*) FROM `rex_587_searchindex` summe WHERE summe.fid = r1.fid AND (summe.ftable IS NULL OR summe.ftable = r1.ftable) AND (summe.fcolumn IS NULL OR summe.fcolumn = r1.fcolumn) AND summe.texttype = r1.texttype) AS COUNT587, `id`, `fid`, `catid`, `ftable`, `fcolumn`, `texttype`, `clang`, `unchangedtext`, `plaintext`, `teaser`, `values`, `filename`, `fileext` FROM `rex_587_searchindex` r1 WHERE ((((`plaintext` LIKE '%test%')))) AND ( ( ((( MATCH (`plaintext`) AGAINST ('test')) * 1) + 1) = (SELECT MAX((( MATCH (`plaintext`) AGAINST ('test')) * 1) + 1) FROM `rex_587_searchindex` r2 WHERE r1.ftable = r2.ftable AND r1.fid = r2.fid ) AND fid IS NOT NULL ) OR ftable IS NULL ) GROUP BY ftable,fid ORDER BY RELEVANCE587 DESC
Die SQL Abfrage ist zu fett als das ich sie wirklich begreife aber wenn ich "WHERE r1.ftable = r2.ftable AND r1.fid = r2.fid" entferne führt das zumindest zu einem Ergebnis.
Hast Du einen Tipp für mich?