Seite 1 von 2

^_^

Verfasst: Mo 1. Aug 2005, 00:17
von i-fekt
^_^

Verfasst: Di 2. Aug 2005, 11:52
von emergence
hmm...

ich denke es wird an der art und weise liegen wie die suche funktioniert...
die con_content value teile zu durchsuchen frisst unglaublich viel zeit...

es gibt zwar die tabelle con_keywords die eigentlich für die suchfunktion vorgesehen ist, aber con flakes nimmt dort sicherlich keine eintragungen vor...

und dann kommt noch dazu das es momentan keine module für diese tabelle gibt...

und der hit an der sache der mir vor einiger zeit aufgefallen ist...
die einträge in der con_keywords unterscheiden sich bei der 4.4.x und 4.5.x serie...

sprich ein suchmodul das sich der tabelle con_keywords bedient und für die 4.4.x geschrieben ist funktioniert nicht bei einer 4.5.x und umgekehrt...

ein paar anmerkungen hab ich mal hier geposted
-> http://www.contenido.org/forum/viewtopi ... highlight=

Verfasst: So 7. Aug 2005, 15:25
von i-fekt
^_^

Verfasst: Mo 8. Aug 2005, 09:24
von emergence
sieh dir einfach mal das generierte sql query an...
und das testest du mal mit phpmyadmin...

du brauchst nur vor

Code: Alles auswählen

$this->db->query($sql); 
ein

Code: Alles auswählen

echo $sql."<br>";
ergänzen....

dann weisst du wenigstens ob es am code oder am sql statement liegt...

Verfasst: Mo 8. Aug 2005, 09:33
von kummer
es gibt wesentlich schnellere möglichkeiten; aber das hängt wesentlich von der mysql-version ab, die in verwendung ist.

je nach version ist es möglich, einen index über all die betroffenen tabellen zu erstellen und dann diesen abzufragen.

das problem bleiben letztlich die verknüpfungstypen und die tatsache, dass über eine grosse anzahl felder eine regex-prüfung vorzunehmen ist.

welche version von mysql hast du denn in verwendung?

ggf. lohnt sich ein update. ab der version 4.0.1 hast einen boolean-search zur verfügung. siehe hier: http://dev.mysql.com/doc/mysql/en/fulltext-boolean.html

damit wird die suche erheblich schneller.

Verfasst: Mo 8. Aug 2005, 09:56
von i-fekt
^_^

Verfasst: Mo 8. Aug 2005, 11:15
von kummer
dann kannst du eben den boolean search verwenden.

schau mal hier: http://dev.mysql.com/doc/mysql/en/fulltext-boolean.html

das vorgehen wäre dann wie folgt:

(1) fulltext-index anlegen über alle spalten, über die die suche statt finden soll.

(2) query mit match-against anpassen (gemäss angaben von mysql). das heisst, die ganze where-klausel mit den oder-verknüpfungen gegen das match (feldbezeichner) against (suchbegriff IN BOOLEAN MODE) ersetzen.

damit entfallen die zahlreichen regexprüfungen und die suche sollte schneller werden.

Verfasst: Mo 8. Aug 2005, 18:10
von i-fekt
^_^

Verfasst: Mi 31. Aug 2005, 08:26
von i-fekt
^_^

Verfasst: Mi 31. Aug 2005, 13:25
von phpchris
Ich denke, das Problem wird eher bei den Funktionen ereg_replace() zu suchen sein.
Das ist ziemlich häfuig die Ursache für langsame Performanz.

Habe jetzt aber nicht wirklich geguckt, was die Funktion ereg_replace() hier soll...

Verfasst: Fr 28. Okt 2005, 08:37
von i-fekt
^_^

Verfasst: Fr 28. Okt 2005, 08:54
von Halchteranerin
und moechtest du die guten Abfragen nicht veroeffentlichen, bzw. die ganze optimierte Version? :)

Verfasst: Fr 28. Okt 2005, 08:55
von HerrB
Und Du postest noch das Ergebnis ... :wink: ?

Gruß
HerrB

Verfasst: Fr 28. Okt 2005, 09:28
von i-fekt
^_^

Verfasst: Fr 28. Okt 2005, 09:36
von Halchteranerin
i-fekt hat geschrieben:Nein, ich weiß nicht ob das ok ist?
http://w3concepts.net/1/1/50.html
Was sich in dieser Rubrik findet, darf kostenfrei heruntergeladen und für private sowie für kommerzielle Zwecke verwendet werden.

w3concepts.conFlakesSearch 30.12.04
conFlakesSearch ist das Schwestermodul von conFlakes. Normale Suchmodule erfassen die Texte, welche mit conFlakes editiert worden sind nicht, da sie nicht in den neu angelegten Tabellen...