[Allegro] Volltextsuche

Fischer, Thomas fischer at sub.uni-goettingen.de
Mo Jun 12 16:34:20 CEST 2017


Hallo Herr Eversberg,
> Am 12.06.2017 um 10:59 schrieb Bernhard Eversberg <b-eversberg at gmx.de>:
> 
>> Gesendet: Montag, 12. Juni 2017 um 10:30 Uhr
>> Von: "Fischer, Thomas" <fischer at sub.uni-goettingen.de>
>> 
>> soweit ich sehe sind meine unten stehenden  Fragen noch offen.
> 
> Ich hoffte auf nähere Erläuterung der damit verbundenen Absichten;
> genauer gesagt:
> 
>>> Was ich zunächst wissen will ist:
>>> 
>>>> Warum findet
>>>> _#20[^:]*$
>>>> in der Demodatenbank den Datensatz
>>>> 
>>>> #00 816231
>>>> #20 Shakespeare-Rezeption : Die Diskussion um Shakespeare in Deutschland
>>>> #30aan
>>>>>>>> ?
>>> 
> Was genau wollten Sie erreichen mit diesem Suchbegriff? Ich erblicke darin
> keinen Sinn. M.a.W., wie formulieren Sie den o.a. Ausdruck auf Deutsch?

_#20[^:]*$

soll nach Einträgen suchen, in denen *kein* Doppelpunkt im Feld #20 vorkommt.
#20 ist dabei die Nummer des Feldes,
[^:] heißt: alles bis auf : ("[^c-f] bedeutet Negation")
* beliebig viele davon
$ sucht das Feldende ("Dollar an letzter Position: Feldende")
und das _ am Anfang soll dafür sorgen, dass keine Umkodierung stattfindet.

Nach meiner Vorstellung dürfte
#20 Shakespeare-Rezeption : Die Diskussion um Shakespeare in Deutschland
davon nicht getroffen werden, da es auch keine anderen Felder #20x gibt.

>>>> Was findet der Ausdruck "\n", warum liefert z.B.
>>>> _#20[^:\n]*$
>>>> in der Demodatenbank erheblich weniger Treffer als die obige Suche?

> Das weiß ich nicht. Der Ausdruck \x mit irgendeinem Buchstaben x findet in
> fast allen Fällen dasselbe wie wenn man nur x schriebe. Warum das mit \n nicht
> der Fall ist - keine Ahnung. (Ich habe die RegEx-Routine nicht geschrieben,
> nur modifiziert.)

In ftr.rtf steht:
"…die Kombination \n setzen; sie steht für "Feldende"…"
Damit sollte der Ausdruck
_#20[^:\n]*$
eigentlich dieselben Sätze treffen, denn es wird zusätzlich nur verlangt, dass vor dem Feldende kein Feldende vorkommt.

> Aber auch hier die Frage: Was war Ihre Aussageabsicht mit diesem Ausdruck?
> Für mich heißt *$ weiter nichts als "es kommt ein Zeilenende vor". Im Falle
> von allegro-Daten wäre das ein Code 0. Der aber ist stets vorhanden, d.h.
> mit *$ kommt dasselbe raus wie ohne.

Bei beiden Tests ging es also darum, aus einer Datenbank, die in Feld 20 einen Doppelpunkt enthalten sollte, diejenigen Sätze herauszufiltern, die dieser Forderung nicht entsprachen. Wie am Beispiel der Demo-Datenbank zu sehen, funktioniert das so nicht ganz. Oder habe ich da einen Fehler in meinen Überlegungen?
Ob das mit anderen Satzzeichen (,; etc.) geht, habe ich nicht getestet.

Viele Grüße
Thomas Fischer
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 842 bytes
Beschreibung: Message signed with OpenPGP using GPGMail
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/allegro/attachments/20170612/32fa8a30/attachment.sig>


Mehr Informationen über die Mailingliste Allegro