Fehler bei der Suche

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
D4nt3
Regular
Posts: 82
Joined: Tue Jul 03, 2007 7:08 am
Location: Germany-NRW
Contact:

Fehler bei der Suche

Post by D4nt3 »

Hallo zusammen,

ich bekomme leider in meinem Blog immer noch folgenden Fehler wenn ich sowohl auf der Frontend Seite wie auch im Adminbereich die Suche benutze:

Im Adminbereich:

Code: Select all

Query failed:

SELECT 
                    

                    e.id,
                    e.title,
                    e.timestamp,
                    e.comments,
                    e.exflag,
                    e.authorid,
                    e.trackbacks,
                    e.isdraft,
                    e.allow_comments,
                    e.last_modified,

                    a.realname AS author,
                    a.username AS loginname,
                    a.email
                     
                     
                FROM
                    serendipity_entries AS e
                    LEFT JOIN serendipity_authors a
                        ON e.authorid = a.authorid
                    LEFT JOIN serendipity_entrycat ec
                        ON e.id = ec.entryid
                    LEFT JOIN serendipity_category c
                        ON ec.categoryid = c.categoryid
                     LEFT JOIN serendipity_authorgroups AS acl_a
                                   ON acl_a.authorid = 3
                            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 ('finn') 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 0, 13

/ Can't find FULLTEXT index matching the column list
Im frontend:

Code: Select all

Suche
Die Suche konnte nicht wie gewünscht ausgeführt werden. Hinweis für den Administrator dieses Blogs: Dieser 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,
                            e.allow_comments,
                            e.moderate_comments,
                            a.email,
                            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 JOIN serendipity_category c
                                       ON ec.categoryid = c.categoryid LEFT JOIN serendipity_authorgroups AS acl_a
                                   ON acl_a.authorid = 3
                            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('bilder'))
                             AND isdraft = 'false'  AND timestamp <= 1191096300 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 4

 / 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('bilder') AND s.publishstatus = 1 AND s.pass = '' GROUP BY id ORDER BY timestamp DESC</pre> / Can't find FULLTEXT index matching the column list

Weitere 0 Seiten gefunden:
Im Endeffekt ist es beides mal der gleiche Fehler. Ich dachte erst es liegt an meinem alten Hoster, aber nun bei meinem neuen Hoster habe ich es immer noch :( Liegt es vielleicht daran das ich von WP auf S9y umgestiegen bin und das dadurch irgend welche Index-Schlüssel nicht richtig erstellt, verknüpft etc wurde?
Wäre einfach super wenn mir wer da weiter helfen könnte. Am Template liegt es nicht da ich es bei jedem Template getestet habe :x

Gruß D4nt3
Blog .:.|.:. PhotoBlog
maxfli55
Regular
Posts: 202
Joined: Wed Apr 04, 2007 3:31 pm
Location: Südschweden
Contact:

Post by maxfli55 »

Dir fehlen die Index-Schlüssel.
Schau mal hier:
http://board.s9y.org/viewtopic.php?t=11 ... t=maxfli55
Etwa im mittleren Teil geht's dort los.


Ciao
maxfli55
D4nt3
Regular
Posts: 82
Joined: Tue Jul 03, 2007 7:08 am
Location: Germany-NRW
Contact:

Post by D4nt3 »

maxfli55 wrote:Dir fehlen die Index-Schlüssel.
Schau mal hier:
http://board.s9y.org/viewtopic.php?t=11 ... t=maxfli55
Etwa im mittleren Teil geht's dort los.


Ciao
maxfli55
Thx ich habe gerade mal via myphpadmin nachgeschaut und bekomme die Meldung
Kein Index definiert!
:evil:

Mein Prefix ist der Standartprefix. Wie setze ich nun diesen Index?!?!
Bin gerade ein bischen unbeholfen da mysql nicht gerade meine Domaine ist :?
Blog .:.|.:. PhotoBlog
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi Dante!

Einfach den geposteten Thread mal aufmerksam lesen, da ist alles was Du brauchst. Sonstmal dieses Forum nach "CREATE FULLTEXT INDEX" durchsuchen.

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/
D4nt3
Regular
Posts: 82
Joined: Tue Jul 03, 2007 7:08 am
Location: Germany-NRW
Contact:

Post by D4nt3 »

Also sehe ich es richtig das ist in der db.sgl den {PREFIX} durch serendipity_ ersetze?!?
Und dann muss ich im PHPAdmin noch den create full index (wie immer der befehl auch lautet) durch führen?!?!
Blog .:.|.:. PhotoBlog
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

In der Datei ersetzt Du ncihts, Du kopierst Dir nur die Zeilen raus und ersetzt durch {PREFIX} mit deinem Tabellenpräfix, und {FULLTEXT_MYSQL} (oder so) mit "FULLTEXT", so dass deine indize aussehen wie

CREATE FULLTEXT INDEX bla (bla, blub) ON serendipity_blublub.

Und das führst Du in phpMYAdmin aus.

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/
D4nt3
Regular
Posts: 82
Joined: Tue Jul 03, 2007 7:08 am
Location: Germany-NRW
Contact:

hilfeeeeeeeeeeeeeeeeeeee :(

Post by D4nt3 »

Sodale da bin ich wieder.
Habe mich heute mal dran gesetzt und die Create Index auf der db.sql manuell im phpadmin eingegeben. Das hat auch soweit geklappt.
Ausser bei drei create befehlen bekomme ich noch folgende fehler:

Code: Select all

 CREATE INDEX exits_idx ON serendipity_exits (entry_id,day,host); 
 Fehler

SQL-Befehl:

CREATE INDEX exits_idx ON serendipity_exits(
entry_id,
DAY ,
host
)

MySQL meldet: Dokumentation
#1146 - Table 'twioe_s9y.serendipity_exits' doesn't exist  


 CREATE INDEX plcomb_idx ON serendipity_permalinks (permalink, type); 
 Fehler

SQL-Befehl:

CREATE INDEX plcomb_idx ON serendipity_permalinks(
permalink,
TYPE
)

MySQL meldet: Dokumentation
#1071 - Specified key was too long; max key length is 1000 bytes  

 CREATE INDEX plugincat_idx ON serendipity_plugincategories(class_name, category); 
 Fehler

SQL-Befehl:

CREATE INDEX plugincat_idx ON serendipity_plugincategories(
class_name,
category
)

MySQL meldet: Dokumentation
#1071 - Specified key was too long; max key length is 1000 bytes 
Den Fullindex habe ich nun auch erstellt. Das hat zufolge das meine Suche teilweise im Blog klappt :(
Bei manchen Suchbefehlen bekomme ich das richtig zurück geliefert. Bei anderen bekomme ich dann wieder das hier:

Code: Select all

Die Wörter Ihrer Suchanfrage müssen länger als 3 Zeichen sein. Sie können versuchen, ein "*" an diese kurzen Wörter anzuhängen (z.B. s9y*) um die Beschränkung zu umgehen.
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('s9y') AND s.publishstatus = 1 AND s.pass = '' GROUP BY id ORDER BY timestamp DESC</pre> / Can't find FULLTEXT index matching the column list
Liegt das nun nur daran wenn ich weniger als 3 Zeichen in der Suche eingebe!?!

Dann wir mir nun noch im phpadmin folgendes angezeigt:
serendipity_access => Es sollte nicht mehr als ein Index des Typs INDEX für die Spalte `artifact_id` gesetzt sein
serendipity_categorytemplates, serendipity_entrycat, serendipity_plugincategories => Kein Index definiert!
serendipity_groupconfig => Es sollte nicht mehr als ein Index des Typs INDEX für die Spalte `id` gesetzt sein
serendipity_plugins => Es sollte nicht mehr als ein Index des Typs INDEX für die Spalte `placement` gesetzt sein
Ich bin kein SQL Profi und DB sehe ich am liebsten aus weiter Ferne wenn ein Blog noch davor ist :D :?
Aber wer kann mir hier nun noch weiterhelfen und ein paar Tips geben. Steige gerade garnet mehr durch
:? :(

Gruß Thorsten

PS: Wenn eine Suche einen positiven Wert wieder gibt bekomme ich nach den angezeigten Artikeln noch folgendes an den Kopp geschmissen :?

Code: Select all

(Seite 1 von 1, insgesamt 2 Einträge) <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('mario barth') AND s.publishstatus = 1 AND s.pass = '' GROUP BY id ORDER BY timestamp DESC</pre> / Can't find FULLTEXT index matching the column list

Weitere 0 Seiten gefunden:
Wieso das nun?!?! Ergebnis der Suche gibt es HIER
Blog .:.|.:. PhotoBlog
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: hilfeeeeeeeeeeeeeeeeeeee :(

Post by garvinhicking »

Hi!

Erster Fehler: Deine serendipity_exits TAbelle existiert wohl garnicht! Die musst Du evtl (anhand der db.sql-datei) manuell erstellen. Aber die Tabelle braucht man auch nicht zwingend, also kannst Du's auch ingorieren da Du das feature des Exit-Trackings offensichtlich nicht einsetzt.

Zweiter und dritter Fehler: Scheinbar sind deine Tabellen irgendwie im UTF-16 Format gespeichert, so dass ein varchar(255) Feld statt 255 das vierfache belegt. Key sizes dürfen aber nur max 1000 Zeichen lang sein. Ich habe mich noch nicht damit auseinandergesetzt, wie man sowas beheben kann, sorry. Da müsste man sich bei MySQL in der doku oder bei deren support mal schlau machen.

Letzte Fehlermeldung: Du musst auch für die statischen Seiten einen fulltext index anlegen. Durchsuch mal das forum nach "fulltext index", da wirst du fündig.
Dann wir mir nun noch im phpadmin folgendes angezeigt:
Kannst Du ignorieren, ist nur eine zusätzliche meldung von PMA, die in dem fall von s9y keinen wert hat.

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/
D4nt3
Regular
Posts: 82
Joined: Tue Jul 03, 2007 7:08 am
Location: Germany-NRW
Contact:

Post by D4nt3 »

Okay danke dir.

Mit CREATE FULLTEXT INDEX serendipity_idx on serendipity_staticpages
(headline, content);

habe ich nun den FULLTEXT INDEX der Statischenseiten generiert und den Fehler weg bekommen.

Also in MPA wird mir folgendes angezeigt:
MySQL - 5.0.32-Debian_7etch1~bpo.1-log

* Protokoll-Version: 10
* Server: Localhost via UNIX socket
* Benutzer: lajts9y@localhost
* MySQL-Zeichensatz: UTF-8 Unicode (utf8)
Da sehe ich nichts von UTF-16 Format?!?
Komisch alles hier und wieso die serendipity_exits Tabelle nicht existiert verstehe ich gerade auch net. Da muss ja bei einem Update oder damals beim Umstieg von WP auf s9y schief gegangen sein oder?!?

Aber thx für deine Hilfe bis jetzt

Gruß Thorsten
Blog .:.|.:. PhotoBlog
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

UTF-16 kann eine serverseitige MySQL-Daemon einstellung sein. Ich habe da leider selber wenig Erfahrung mit, wie die Stringlängen verwaltet werden, sorry.
Komisch alles hier und wieso die serendipity_exits Tabelle nicht existiert verstehe ich gerade auch net. Da muss ja bei einem Update oder damals beim Umstieg von WP auf s9y schief gegangen sein oder?!?
Es kann sein dass damals die Tabelle bei der Installation incht erstellt wurde, aber da hättest du dann eigentlich eine fehlermeldung sehen müssen?

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/
lordcoffee
Regular
Posts: 308
Joined: Tue Nov 29, 2005 10:22 pm
Location: Munich - Germany
Contact:

Post by lordcoffee »

Hallo zusammen!

Ich muss diesen alten Thread mal wieder aufsuchen weil ich nun doch gerne meine Suche benutzen möchte. Dies funktionierte bisher nicht da das vom Provider her nicht standardmäßig altiviert ist (CREATE INDEX).
Zitat:
... die Funktion Create Index ist keine Standardfunktion von MySQl die bei uns aktiviert ist.
Die Kosten für die se einstellung betragen einmalig 39 euro/ Datenbank. Damit möchten wir den Kreis der Nutzer dieser Funktion klein halten, da diese Funktion, falsch angewendet großen Schaden anrichten kann.
Ist das so richtig was der Provider da schreibt oder sollte ich schlicht weg wechseln?

Danke und Grüße, lordcoffee

EDIT:
Ich habe hier im Forum eine Möglichkeit gefunden dies zu umgehen:
http://board.s9y.org/viewtopic.php?t=30 ... lter+table

Ist zwar nicht die feine englische aber hab derzeit keine Böcke auf Providerwechsel. ;-)
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

*lach* Ich sehe das andersrum: Ohne INDEX Rechte läuft man Gefahr dass die Datenbank total langsam läuft und Kapazitäten bindet, die man garnicht verschwenden müsste.

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/
lordcoffee
Regular
Posts: 308
Joined: Tue Nov 29, 2005 10:22 pm
Location: Munich - Germany
Contact:

Post by lordcoffee »

Ja, das hab nun auch schon öfter gelesen. Gibt es denn tatsächlich "potentielle" Sicherheitsbedenken bezüglich dieser funktion?

Hab dem Provider mal eine Email geschickt mit diversen Zitaten von Entwicklern die auch der Meinung sind das es Schwachsinn ist. Mal kucken ob ich heute Abend noch 'ne Page hab ;-)

Lordcoffee
Post Reply