Abfrage mehrerer Strings in einem bestimmten JSON-Feld

Liebes Team von lobid, eine weitere Frage zu der Datenabfrage. Folgendes Problem: die api Abfrage, die ich in meinem python Skript verwende (https://lobid.org/gnd/search?q=preferredName%3ATwain&format=json, Beispieldatensatz „Abel Clementine“), gibt nicht nur solche Einträge zurück, bei denen der preferredName „Abel Clementine“ ist, sondern auch solche, bei denen die gesuchte Person z.b. in den familiären Beziehungen gelistet ist. Wie kann ich die api Abfrage verfeinern, um solche Ergebnisse auszuschließen?
Vielen Dank!

Ich glaube, die Frage ist etwas unklar formuliert. Bei der genannten Abfrage https://lobid.org/gnd/search?q=preferredName%3ATwain&format=json kommt kein Datensatz für „Abel Clementine“ in der Ergebnisliste zurück.

Von daher gehe ich davon aus, dass die problematische Abfrage so aussieht: https://lobid.org/gnd/search?q=preferredName%3AAbel%20Clementine&format=json

In dieser Abfrage werden zwei Strings gesendet und die Abfrage wird als Verknüpfung zweier Abfragen interpretiert: Gib Datensätze mit dem String „Abel“ in preferredName plus „Clementine“ in irgendeinem anderen Feld.

Es gibt verschiedene Möglichkeiten, die Existenz beider Strings im preferredName-Feld zu verlangen (was vermutlich das gewünschte Verhalten ist):

  1. Phrasensuche: preferredName:"Abel, Clementine" → genau der String in Anführungszeichen muss im Feld preferredName vorkommen.
  2. Klammerung: Mit einer runden Klammer kann die Existenz von zwei Strings in einem Feld abgefragt werden, wobei die Reihenfolge der Strings oder ob ein anderer String dazwischen vorkommt egal ist: preferredName:(Abel Clementine)
  3. AND-Verknpüfung: Mit preferredName:Abel AND preferredName:Clementine werden die gleichen Ergebnisse erreicht wie in 2.).

Ich nehme an, die beste Lösung für dein Skript ist die Klammerung. Sie funktioniert auch bei Angabe nur eines Strings, z.B. preferredName:(Twain)

1 Like

Vielen Dank für schnelle Antwort und ausführliche Erklärung!

1 Like

Gern geschehen. Ich habe mal den Titel des Themas angepasst, so dass es hoffentlich leichter von anderen gefunden bzw. eingeordnet werden kann.