RexSearch: Indexierung bleibt hängen [Solved]

Alles über die Anwendung und Entwicklung von AddOns.

RexSearch: Indexierung bleibt hängen [Solved]

Beitragvon jvanselow » 7. Nov 2011, 14:40

Hi ihr alle,

ich bin gerade ein wenig am Verzweifeln mit RexSearch. Ich möchte neben den Artikeln auch noch eine Spalte (Datentyp: Text) der Tabelle eines selbstentwickelten News-Addons durchsuchen. Die Tabelle hat gut 700 Datensätze. Sobald ich die Tabelle in den Optionen von RexSearch hinzufüge und den Index versuche schrittweise neu erstellen zu lassen, bleibt die Indexierung bei ca. 85% "hängen" und nix geht mehr.

Kann es sein, dass RexSearch für die Indexierung der Tabelle einfach zu lange braucht und die Ausführung des Scripts bedingt durch entsprechende Einstellungen in der php.ini einfach abgebrochen wird?

TIA
jvanselow
Zuletzt geändert von jvanselow am 16. Nov 2011, 11:13, insgesamt 1-mal geändert.
jvanselow
 
Beiträge: 7
Registriert: 7. Nov 2011, 14:29

Re: RexSearch: Indexierung bleibt hängen

Beitragvon Xong » 8. Nov 2011, 15:42

Hi jvanselow!
jvanselow hat geschrieben:Kann es sein, dass RexSearch für die Indexierung der Tabelle einfach zu lange braucht und die Ausführung des Scripts bedingt durch entsprechende Einstellungen in der php.ini einfach abgebrochen wird?

Jo, das ist der Fehler. Da hilft im Moment nur das Hochsetzen des Memory Limits.

Eine passende Lösung hab ich zwar schon im Kopf, allerdings komme ich Moment nicht dazu die umzusetzen, da ich mit anderen Projekten beschäftigt bin.
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1560
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Re: RexSearch: Indexierung bleibt hängen

Beitragvon jvanselow » 9. Nov 2011, 10:45

Hallo Xong,
Xong hat geschrieben:Jo, das ist der Fehler. Da hilft im Moment nur das Hochsetzen des Memory Limits.

Eine passende Lösung hab ich zwar schon im Kopf, allerdings komme ich Moment nicht dazu die umzusetzen, da ich mit anderen Projekten beschäftigt bin.


Danke für den Hinweis. Wir werden das mit dem Heraufsetzen des Memory Limits mal testen. Für den Fall, dass dies nicht funktioniert, hätte ich auch schon eine vage Idee. (vor der Indexierung die Zahl der zu indexierenden Datensätze der Tabelle, die indexiert werden soll, bestimmen und wenn ein definierter Max-Wert überschritten ist, die Tabelle dann über eine Schleife auch nur schrittweise indexieren. Kenne mich aber mit dem Code von RexSearch nicht aus und weiß daher nicht, ob das ein gangbarer Weg wäre. Wenn du mir noch ein kurzen Hinweis zukommen lassen könntest, wo ich mal genauer nachschauen muss, wäre nett. Ich würde eine entsprechende Modifikation natürlich wieder an dich zurück kommen lassen.

Grüße
jvanselow
jvanselow
 
Beiträge: 7
Registriert: 7. Nov 2011, 14:29

Re: RexSearch: Indexierung bleibt hängen

Beitragvon Xong » 9. Nov 2011, 12:11

Du kannst dich ja gern über Github beteiligen.

Die Dateien, die geändert werden müssen sind generate.inc.php und ajax.inc.php.
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1560
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Re: RexSearch: Indexierung bleibt hängen [Solved]

Beitragvon jvanselow » 16. Nov 2011, 11:12

Hallo Xong,

nach Anpassung der entsprechenden Werte in der php.ini läuft die Indexierung nun durch. Richtig funktioneren tut es aber immer noch nicht. Aber dafür mach ich ein neues Thema auf.

Viele Grüße
jvanselow
jvanselow
 
Beiträge: 7
Registriert: 7. Nov 2011, 14:29

Re: RexSearch: Indexierung bleibt hängen [Solved]

Beitragvon rossi » 8. Mai 2012, 22:06

ich hab den fehler gefunden, teile das hier mit, weil ich keine zeit habe das jetzt im github zu machen:

bei der indexColumn function wird jeder artikel generiert um den teaser zu befüllen. dabei wird der array in der globalen $REX variable bei $REX['ART'] immer größer, weil redaxo jeden generierten artikel hinzufügt.
man müsste deshalb nach dem generieren $REX[ART][fid] unset-en oder halt gleich $REX[ART].
bei mir ist es allerdings so, dass ich sowieso vorher schon für alle artikel den teaser genriert bekomme, bevor die columns geindexed werden, deshalb hab ich das überhaupt alles auskommentiert und mach eine sql abfrage
"select teaser from ".$this->tablePrefix.'587_searchindex'." where fid = ".$indexData['fid']." and texttype='article'"
weil der teaser dort sowieso schon drinsteht und das zumindest auf meinem system schneller geht das aus der db zu holen als den article nochmal zu generieren... müsste man austesten ob es sich rentiert abzufragen ob der teaser schon in der db drin steht und ggf. das nehmen und nur wenn nicht den artikel generieren.

so long,
lgr
rossi
 
Beiträge: 1
Registriert: 8. Mai 2012, 21:58


Zurück zu AddOns [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast