PDA

View Full Version : Problem mit Boolean Suche


syscom
01-13-2007, 01:36 PM
Hi

Wenn ich in der Version die Boolean Suche einstelle funktioniert das sehr gut. Es werden viel saubere Suchergebnisse angezeigt.

Das Problem ist dabei, das bei eingestellter Boolean Suche im Adminbereich keine Links oder Kategorien angezeigt werden. Schalte ich die Boolean Suche aus, sind die Links oder Kategorien wieder im Adminbereich da.

syscom
03-04-2007, 01:06 PM
Das Problem besteht noch!

Boby
03-04-2007, 05:05 PM
in welcher phpLD version?

syscom
03-04-2007, 05:12 PM
Die Version 3.1.

Boby
03-04-2007, 06:03 PM
In /admin/dir_links.php suche bitte folgenden Code:
Content visible to registered users only.
Gleich davor, dies eingeben:
Content visible to registered users only.

Dann suche nach einem Wort dass bestimmt in ein Paar links vorkommt. Der ganze SQL Befehl sollte im admin Bereich (oben) angezeigt werden. Kannst Du bitte den Mal hier posten?

Ausserdem, kannst Du auch kurz via phpMyAdmin gucken ob die beiden Tabellen PLD_LINK und PLD_CATEGORY vom Typ MyISAM sind.

syscom
03-04-2007, 06:40 PM
SELECT PLD_LINK.*, IFNULL(PLD_CATEGORY.TITLE, 'Top') AS `CATEGORY` , MATCH (PLD_LINK.URL, PLD_LINK.TITLE, PLD_LINK.DESCRIPTION) AGAINST ('shop' IN BOOLEAN MODE) AS `relevancy` FROM `PLD_LINK` LEFT JOIN `PLD_CATEGORY` ON (PLD_LINK.CATEGORY_ID = PLD_CATEGORY.ID) WHERE 1 AND MATCH (PLD_LINK.URL, PLD_LINK.TITLE, PLD_LINK.DESCRIPTION) AGAINST ('shop' IN BOOLEAN MODE) HAVING `relevancy` > 0.2 AND NOT (PLD_LINK.FEATURED = '1' AND (PLD_LINK.EXPIRY_DATE > '2007-03-04 19:50:06' OR PLD_LINK.EXPIRY_DATE IS NULL)) ORDER BY `relevancy` DESC, PLD_LINK.FEATURED DESC, PLD_LINK.ID ASC

Das ist die Augabe.

Er zeigt die Einträge mit "Shop" an. Gehe ich jetzt aber auf Kategorien oder Links, steht "Keine Eintraege gefunden." da und diese Ausgabe:

SELECT PLD_LINK.*, IFNULL(PLD_CATEGORY.TITLE, 'Top') AS `CATEGORY` , MATCH (PLD_LINK.URL, PLD_LINK.TITLE, PLD_LINK.DESCRIPTION) AGAINST ('' IN BOOLEAN MODE) AS `relevancy` FROM `PLD_LINK` LEFT JOIN `PLD_CATEGORY` ON (PLD_LINK.CATEGORY_ID = PLD_CATEGORY.ID) WHERE 1 AND MATCH (PLD_LINK.URL, PLD_LINK.TITLE, PLD_LINK.DESCRIPTION) AGAINST ('' IN BOOLEAN MODE) HAVING `relevancy` > 0.2 AND NOT (PLD_LINK.FEATURED = '1' AND (PLD_LINK.EXPIRY_DATE > '2007-03-04 19:51:51' OR PLD_LINK.EXPIRY_DATE IS NULL)) ORDER BY `relevancy` DESC, PLD_LINK.FEATURED DESC, PLD_LINK.ID ASC



Nehme ich Bolean raus, gibt es wieder die Links oder Kategorien.

Boby
03-05-2007, 10:12 AM
Hast Du wirklich alle Dateien überschrieben aus der neuen phpLD 3.1 Version?
Schau dir Mal den zweiten SQL Befehl an, kein Suchwort kommt vor, sollte so aussehen:
Content visible to registered users only.

syscom
03-05-2007, 10:18 AM
Im ersten ist doch das Suchwort "Shop" enthalten.

Die zweite Ausgabe kommt doch wenn ich normal in die Link oder Kategorieabteilung gehe, ohne etwas zu suchen. Dort zeigt er dann nichts an.

Boby
03-05-2007, 10:27 AM
Das ist natürlich auch ein Problem, wenn ich ganz normal im admin Bereich auf Links klicke (ohne Suche, ohne nichts) wird dieser SQL Befehl angezeigt:
Content visible to registered users only.

Was wenn Du die Dateien aus /admin/ noch einmal auf dem Server kopierst und die alten überschreibst. Falls Du einige Mods installiert hast, versuche erstmal nur /admin/dir_links.php, /admin/dir_categs.php, /admin/dirdb_admin.php, /admin/init.php zu überschreiben.

syscom
03-05-2007, 08:03 PM
Alle Dateien noch mal überchrieben. Deinen Code in dir-categs.php eingefügt.
Klick auf /admin/dir_categs.php?r=1 ohne Boolean: alles funktioniert: dieser Code als Ausgabe:
SELECT C.* , IFNULL(P.TITLE, 'Top') AS PARENT FROM `PLD_CATEGORY` AS C LEFT OUTER JOIN `PLD_CATEGORY` AS P ON (C.PARENT_ID = P.ID) WHERE 1 AND (C.TITLE_URL LIKE '%%' OR C.TITLE LIKE '%%' OR C.DESCRIPTION LIKE '%%') ORDER BY C.ID ASC



Klick auf /admin/dir_categs.php?r=1 mit Boolean: es werden keine Kategorien agezeigt( Keine Eintraege gefunden) - dieser Code als Ausgabe:
SELECT C.* , MATCH (C.TITLE_URL, C.TITLE, C.DESCRIPTION) AGAINST ('' IN BOOLEAN MODE) AS `relevancy`, IFNULL(P.TITLE, 'Top') AS PARENT FROM `PLD_CATEGORY` AS C LEFT OUTER JOIN `PLD_CATEGORY` AS P ON (C.PARENT_ID = P.ID) WHERE 1 AND MATCH (C.TITLE_URL, C.TITLE, C.DESCRIPTION) AGAINST ('' IN BOOLEAN MODE) HAVING `relevancy` > 0.2 ORDER BY C.ID ASC