a35fts.txt : Volltextsuche per Browser mit a35
----------------------------------------------
2013-04 / 2019-12

ZUGLEICH Muster eines Verfahrens, mit acon ein anderes Programm zu
starten (hier srch) und dieses einen Output erzeugen zu lassen.
Das Programm muss da liegen, wo avanti und acon liegen.

ACHTUNG: Volltextsuche braucht auf dem Server mehr Leistung, weil
ja alle Datendateien komplett gelesen werden muessen und zu dem Zweck
ein anderes Programm gestartet wird (srch.exe bzw. srch). Daher 
bei grossen Datenbanken mit Bedacht einsetzen. Die Suche per
ALL-Register (.adx) ist wesentlich effizienter.

Ab V39 (2019-12-03) gibt es einen Link "Gesamte Liste" oben
rechts im Ergebnisfenster, prodiert von a35fts.job
Dieser produziert dieselbe Erg.Menge aber mit den Parametern 
a35ext.apr in einem eigenen Fenster.

Gebraucht werden diese Dateien: (alle intern kommentiert)

Wichtig: in a35.js gibt es die neue Funktion exlist() ab 4.12.2019
  oder ein Link wie dieser in irgendeiner Site:
  ../db/ajax4.php?JOB=a35list&db=pol&VurF=suchterm&VuzA=2700&VuTi=' +ti;
  (Tip: Solche Links kann man auch in beliebige HTML-Texte einbauen,
  um Datenbank-Auszüge dann in in einem eigenen Fenster erscheinen
  zu lassen. 

 Aufruf aus a35 im Browser mit dem Link: Gesamte Liste zu ...

a35fts.htm    [HTML-Ordner  ../db ]
  Formular zum Eingeben der Suchbegriffe,
  erscheint im Hilfsfenster _!_FRR rechts unten.
  Manuell aufrufen mit  h a35fts.htm 
  oder in Menue (in a35-pc-menu.php) unter "Suchen" einbauen
  Erzeugt einen output der Ergebnise in das Feld _!_ERG und
  dazu einen Link "Gesamte Liste zu ..."

a35fts.job    [Job-Ordner, z.B. ./ajaxjobs am HTML-Ordner]
  Darin wird  srch.exe  aufgerufen mit -efts (fts.@pr).
  srch erstellt damit keine Datei sondern liefert nur die internen
  Satznummern direkt (per pipe) an acon.
  Diese Daten liest acon dann aus der pipe, macht daraus eine
  Erg.Menge und exportiert die mit a35ext.?pr als .html-Daten
  an den Browser.

fts.@pr    [Datenbank-Ordner oder ProgDir (wo acon liegt)]
  In a35fts.job wird srch aufgerufen mit diesem Export-Parameter,
  dieser exportiert (in die pipe zu acon) die internen Nummern der
  gefundenen Sätze zurück durch die pipe..
  ACHTUNG: Anzupassen an die Erfordernisse (eigene Feldnummern!)
  Wenn nicht a.cfg sondern x.cfg: Kopieren auf a35fts.xpr und ändern.
  Eingebunden wird  ad-utf.apt  (bzw.  ad-utf.xpt).
  Wenn diese Datei fehlt, wird a35fts.@pr genommen, die zum Standard gehört.

a35ext.apr    [Datenbank-Ordner oder ProgDir (wo acon liegt)]
  verwendet in a35fts.job
  Es könnte eine evtl.modfizierte Kopie sein von d-html.apr.
  Für die Ausgabe einer externen Liste (in eigenem Fenster)
  ACHTUNG: Anzupassen an die Erfordernisse (eigene Feldnummern!)
  Wenn nicht a.cfg sondern x.cfg: Kopieren auf a35fts.xpr und aendern.
  Eingebunden wird  ad-utf.apt  (bzw.  ad-utf.xpt).
  Wenn diese Datei fehlt, wird a35fts.Xpr genommen.

Die eigentliche Suche + Listenexport macht also das Programm srch.exe
  (bzw. srch unter Unix). Es braucht die Dateien  s1.asp und uif4ger. 
  Diese koennen auf dem ProgDir liegen oder auf dem DbDir.
  srch (Unix) erstellt eine Datei  files.lst  auf dem DbDir mit den 
  Namen der Datendateien, die durchzuarbeiten sind. Dort braucht der
  user Schreibrecht, der avanti und damit acon und srch startet.

s.a.
a35list.job : cfg-spezifisch, export mit FLEX statt Exportparam.

ACHTUNG:  srch[.exe] ab 2013-04-16


Die Eingabe muss ein "regulärer Ausdruck" sein.

z.B. 
      shakespeare.*hamlet
      wenn "Shakespeare" und "Hamlet" im selben Feld vorkommen sollen,
      und in derselben Reihenfolge

      shakespeare + hamlet
      wenn beide irgendwo im Satz vorkommen sollen, egal in welcher
      Reihenfolge

      film - video
      wenn nur das erste, aber nicht das zweite Wort vorkommen soll

Achtung: Die "Normale Suche" laeuft ein wenig anders: 
Wenn man  "film video" eingibt, sucht die Normale Suche beide
Woerter im ALL-Register und verknuepft automatisch mit UND, aber die
Volltextsuche liefert dann nichts, sondern nur mit  film + video, 
es wird dabei eben nicht im ALL-Register gesucht, sondern im Text des
gesamten Datensatzes.