[Allegro] find mit acon-job

Fischer, Thomas fischer at sub.uni-goettingen.de
Mo Jun 22 16:41:43 CEST 2015


Lieber Herr Eversberg,

> > zusätzlichen Treffer zur aktuellen Ergebnismenge, und die Verkettung
> > der Suchbefehle mit ' OR ' geht nur mit bis zu 32 Begriffen.
> >

> Nein, leider kann ich da auf die Schnelle keine Abhilfe bieten.
> Zuerst müßte ich rausfinden, ob und wo denn die Zahl 32 festgelegt ist,
> und wie man sie erhöhen könnte. 

Die Zahl 32 hat sich bei mir mal bei Tests ergeben, woher sie kommt weiß ich nicht, wohl von der Tiefe der zu verarbeitenden Stacks. Allerdings müsste bei "OR"-Verknüpfungen nicht unbedingt hoch- oder tiefgestapelt werden, denke ich.

> Und Sie können die Aufgabe nicht mit mehreren disjunkten Ergebnismengen
> sukzessive abhandeln?

Ich möchte eine Ergebnismenge zu 139 ID-Nummern bilden, die kann ich einzeln per Find im Prinzip finden und dann in eine Datei ausgeben, so habe ich das aktuell für mich gelöst (ich möchte die Datensätze in der Datenbank mit einer Offlinedatei vergleichen). Praktisch wäre für mich, wenn ich auf dieselbe Art auch eine Ergebnismenge erzeugen könnte.

Mir ist aus der Dokumentation nicht klar geworden, dass jeder Find-Befehl in acon eine neue Ergebnismenge bildet, ich hatte eher gedacht, dass die Treffer angesammelt werden und erst
find *new
eine neue Ergebnismenge "öffnet".
Meine Versuche zeigten aber, dass dem nicht so ist. Ich hatte gehofft, dass es dazu einen Trick gibt.

Mit freundlichen Grüßen
Thomas Fischer



> Am 22.06.2015 um 16:14 schrieb Bernhard Eversberg <ev at biblio.tu-bs.de>:
> 
> Am 22.06.2015 15:38, schrieb Fischer, Thomas:
> >
> > ich muss mich mal wieder mit einem find-job befassen. Aktuell habe
> > ich vor allem das Problem, wie ich aus verschiedenen Find-Befehlen
> > eine Ergebnismenge zusammenbaue. Gibt es dafür eine (einfache?)
> > Methode? Ein wiederholtes "Find" lieferte bei meinen Versuchen keine
> > zusätzlichen Treffer zur aktuellen Ergebnismenge, und die Verkettung
> > der Suchbefehle mit ' OR ' geht nur mit bis zu 32 Begriffen.
> >
> 
> Nein, leider kann ich da auf die Schnelle keine Abhilfe bieten.
> Zuerst müßte ich rausfinden, ob und wo denn die Zahl 32 festgelegt ist,
> und wie man sie erhöhen könnte. Der Suchbefehl wird zunächst in eine
> Struktur mit "reverse Polish notation" verwandelt, die dann eins nach dem andern abgearbeitet wird. Jeder elementare Suchbefehl erzeugt eine
> neue Erg.Menge, die dann mit dem Resultat der vorherigen verrechnet
> wird. Bei verschachtelter Befehlsstruktur wird ein Stack angelegt,
> dessen Tiefe von der Schachtelungstiefe der Klammerungen abhängt,
> aber nicht auf 32 festgelegt ist. Jedoch besteht dieser Stack aus
> Ergebnismengen! Die können ja schon mal je für sich recht groß
> sein. Ist das abschätzbar? Sind das evtl. insges. mehr als 256000?
> acon in V35.6 wird an der Stelle, wie a99, auf 4 Mio aufgebohrt.
> Der Befehlsstring in RPN ist womöglich zu eng begrenzt, das muß ich
> noch eruieren - das ist ein zu sparsam kommentierter Code, der
> vor sehr langer Zeit aus Fremdcode abgeleitet wurde.
> 
> Eine FLEX-Befehlszeile kann bis 64000 Byte lang sein, da kann die
> Begrenzung nicht mit zusammenhängen.
> 
> Und Sie können die Aufgabe nicht mit mehreren disjunkten Ergebnismengen
> sukzessive abhandeln?
> 
> B.E.
> _______________________________________________
> Allegro mailing list
> Allegro at biblio.tu-bs.de
> http://sunny5.biblio.etc.tu-bs.de/mailman/listinfo/allegro





Mehr Informationen über die Mailingliste Allegro