Problem mit der Suche, die Zweite

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
ocj
Regular
Posts: 50
Joined: Sat Mar 18, 2006 11:58 am
Contact:

Problem mit der Suche, die Zweite

Post by ocj »

Ich habe das gleiche schon mal (auf Deutsch) im englischen Forum gefragt. Sorry dafür!

Auf meiner Seite yadayada.de gibt es neuerdings ein Problem mit der s9y-Suche. Nutze ich diese bekomme ich eine Fehlermeldung, die wie folgt lautet:
Die Suche konnte nicht wie gewünscht ausgeführt werden. Hinweis für den Administrator dieses Blogs: Der Fehler kann durch fehlende Index-Schlüssel der Datenbank verursacht werden. Auf MySQL-Systemen muss der Datenbankbenutzer-Account in der Lage sein, Index-Schlüssel zu erstellen und folgende Abfrage auszuführen:

CREATE FULLTEXT INDEX entry_idx on serendipity_entries (title,body,extended)

Die genaue Fehlermeldung der Datenbank bei der Suche lautete:

SELECT
e.id,
e.authorid,
a.realname AS author,
a.email,
ec.categoryid,
e.timestamp,
e.comments,
e.title,
e.body,
e.extended,
e.trackbacks,
e.exflag

FROM
serendipity_entries e
LEFT JOIN serendipity_authors a
ON e.authorid = a.authorid
LEFT JOIN serendipity_entrycat ec
ON e.id = ec.entryid
LEFT OUTER JOIN serendipity_entryproperties ep_no_frontpage
ON (e.id = ep_no_frontpage.entryid AND ep_no_frontpage.property = 'ep_no_frontpage')
LEFT OUTER JOIN serendipity_entryproperties ep_cache_extended
ON (e.id = ep_cache_extended.entryid AND ep_cache_extended.property = 'ep_cache_extended')
LEFT OUTER JOIN serendipity_entryproperties ep_cache_body
ON (e.id = ep_cache_body.entryid AND ep_cache_body.property = 'ep_cache_body')
LEFT OUTER JOIN serendipity_entryproperties ep_access
ON (e.id = ep_access.entryid AND ep_access.property = 'ep_access')
LEFT JOIN serendipity_entryproperties ep_sticky
ON (e.id = ep_sticky.entryid AND ep_sticky.property = 'ep_is_sticky') LEFT JOIN serendipity_category c
ON ec.categoryid = c.categoryid LEFT JOIN serendipity_authorgroups AS acl_a
ON acl_a.authorid = 1
LEFT JOIN serendipity_access AS acl_acc
ON ( acl_acc.artifact_mode = 'read'
AND acl_acc.artifact_type = 'category'
AND acl_acc.artifact_id = c.categoryid
)
WHERE
MATCH(title,body,extended) AGAINST('test')
AND isdraft = 'false' AND timestamp <= 1145511707 AND (ep_access.property IS NULL OR ep_access.value = 'member' OR ep_access.value = 'public' OR (ep_access.value = 'private' AND e.authorid = 1)) AND (ep_no_frontpage.property IS NULL OR ep_no_frontpage.value != 'true') AND (
c.categoryid IS NULL
OR ( acl_acc.groupid = acl_a.groupid OR acl_acc.groupid = 0)
OR ( acl_acc.artifact_id IS NULL

)
)
GROUP BY e.id
ORDER BY timestamp DESC
LIMIT 15

/ Can't find FULLTEXT index matching the column list

Keine Einträge vorhanden
<pre>SELECT s.*, a.realname FROM serendipity_staticpages AS s LEFT OUTER JOIN serendipity_authors AS a ON a.authorid = s.authorid WHERE MATCH(headline,content) AGAINST('test') AND s.publishstatus = 1 AND s.pass = '' GROUP BY id ORDER BY timestamp DESC</pre> / Can't find FULLTEXT index matching the column list

Found 0 static pages:
Zu testen auf http://www.yadayada.de

Wo könnte das Problem liegen?

Falk hat im Englisch-Forum schon geantwortet, daß es damit zusammenhängen könnte, daß der Index für die Suche nicht richtig gesetzt wurde.

Leider verstehe ich das nicht (kenne mich mit SQL so gut wie gar nicht aus). Die Suche hat bislang problemlos funktioniert und ich habe (wie immer :-)) nichts geändert.

Kann mir jemand auf die Sprünge helfen, wie ich den Index richtig setzen kann?

Tausend Dank im Voraus!
falk
Regular
Posts: 512
Joined: Tue Sep 27, 2005 10:16 am
Location: DD
Contact:

Post by falk »

Die Fehlermeldung sagt aus, dass der Index, der für die Suche benötigt wurde, nicht richtig gesetzt wurde, weil du verutlich nicht die Berechtigungen hast, ihn zu setzen. Ganz einfach ;-). Wenn du aber sagst, die Suche funktionierte schon mal, dann ist der Index vermutlich sonstwohin verschwunden.

Wenn du Zugriff auf phpMyAdmin hast, dann führe mal die Anweisung aus:
CREATE FULLTEXT INDEX entry_idx on serendipity_entries (title,body,extended)
Wenns nicht klappt, ist Garvin an der Reihe ;-).
ocj
Regular
Posts: 50
Joined: Sat Mar 18, 2006 11:58 am
Contact:

Post by ocj »

Antwort leider "Access denied".

Muß ich meine Admins fragen?
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi ocj!

Ja, da müssen leider deine Admins ran. Sag ihnen, dass es keinen Sinn macht deinem SQL useraccount das "INDEX" Privileg zu entziehen, und man es bitte einrichten möge.

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
ocj
Regular
Posts: 50
Joined: Sat Mar 18, 2006 11:58 am
Contact:

Post by ocj »

Danke für die Hilfe!

Ich habe nun die nötigen Privilegien und den Index erstellt.
Wenn ich nun nach einem Wort suche, das im Blog nicht enthalten ist, bekomme ich folgende Ausgabe:
Für die Suche test konnte kein Eintrag gefunden werden
Keine Einträge vorhanden
<pre>SELECT s.*, a.realname FROM serendipity_staticpages AS s LEFT OUTER JOIN serendipity_authors AS a ON a.authorid = s.authorid WHERE MATCH(headline,content) AGAINST('test') AND s.publishstatus = 1 AND s.pass = '' GROUP BY id ORDER BY timestamp DESC</pre> / Can't find FULLTEXT index matching the column list

Found 0 static pages:
(anzusehen unter www.yadayada.de)

Kann ich das irgendwie anpassen? Mir gefällt nicht, dass die SQL-Query ausgegeben wird.

In der Suche habe nichts passendes gefunden.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Du hast auch keine fulltext index für die statischen Seiten. Dieser muss auch manuell nachgereicht werden in phpMyAdmin:

Code: Select all

CREATE FULLTEXT INDEX staticentry_idx on serendipity_staticpages (headline, content);
Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
ocj
Regular
Posts: 50
Joined: Sat Mar 18, 2006 11:58 am
Contact:

Post by ocj »

Vielen Dank. Einen Schritt weiter.

Was mir aber jetzt noch immer nicht gefällt ( ;-) ) ist, daß die Ausgabe nun wie folgt ist:
Für die Suche test konnte kein Eintrag gefunden werden
Keine Einträge vorhanden

Found 0 static pages:
Also dreifach gemoppelt. Kann man das vielleicht noch irgendwie ändern?
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Die statische Seiten werden unabhängig von der Hauptsuche durchsucht; diese kann technisch nicht in eine kombiniert werden, da es unterschiedliche Datenquellen sind.

Daher kann es vorkommen, dass bei der einen Suche nichts gefunden wird, aber bei der anderen. Insofern wäre es dann also nicht doppelt gemoppelt. Technisch wäre es auch aufwändig eine Überprüfung einzuführen welche Suche was zurückliefert...

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
mot2001
Regular
Posts: 9
Joined: Wed Sep 27, 2006 11:31 am
Location: Berlin, Germany
Contact:

Post by mot2001 »

Hallo,
das gleiche, bzw. ein aehnliches Problem hatte Lumpy auch. Er ist von selbst darauf gekommen, einen INDEX zu setzen. Aber genau wie bei ihm wird jetzt zwar kein Fehler bei der Suche angezeigt aber dafuer auch keine Ergebnisse.

garvinhicking wrote:Hi!

Du hast auch keine fulltext index für die statischen Seiten. Dieser muss auch manuell nachgereicht werden in phpMyAdmin:

Code: Select all

CREATE FULLTEXT INDEX staticentry_idx on serendipity_staticpages (headline, content);
Das habe ich jetzt zusaetzlich auch getan.
Wenn man aber bspw. nach blabla* (nicht blabla ohne Sternchen) sucht, wird der Fehler mit dem nicht gesetzten INDEX wieder angezeigt. Der INDEX ist bei mir aber gesetzt!
Und, wie schon oben geschrieben, bei SUCHE nach einem Wort, das im Blog tatsaechlich vorhanden ist, gibt die SUCHE trotzdem keine Ergebnisse aus.

Du kannst das Problem auf meiner Testseite nachvollziehen (Der www Link unten).
Micha
-------
Marx macht mobil bei Arbeit, Sport und Spiel
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Ich glaube du hast es schon rausgefunden; erst nach mehreren Einträgen klappt das ganze richtig :)

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Regine
Regular
Posts: 49
Joined: Wed Jul 26, 2006 9:20 am

Post by Regine »

Vielen Dank - dieser Beitrag hat auch mir geholfen. :wink:
Viele Grüsse: Regine
EcomBiz
Post Reply