Integration in Solr (Index für Textinhalte)
Solr ist ein Interface zum Durchsuchen einer Datenbank von Texten. Die hier vorliegende Implementierung sucht naiv nach den angegebenen Textfragmenten und gibt deren absolute Häufigkeit zurück. Diese Häufigkeiten können dargestellt werden.
Zuerst wird ein Zugang zu dem jeweiligen Server benötigt, Angehörige des
DSS-Lehrstuhls dazu bitte Olaf Kellermeier anfragen. Darüber hinaus ist die
sogenannte Snapshot-ID (oder mehrere) anzufragen. Sobald ihr über Nutzername,
Passwort und Snapshot-ID verfügt, könnt ihr loslegen. Als erstes legt ihr im
Verzeichnis eures Skripts eine .env
-Datei mit folgendem Inhalt an:
Das hat den Zweck, dass Passwörter nicht in die Skripte und damit in die
Versionierung aufgenommen werden. Diese Datei auf keinen Falls committen,
sondern via .gitignore
ausschließen. dsstools
liest die Variablen der
.env
-Datei automatisch ein. Sollte keine .env
gefunden werden, so wird ein
Fehler ausgegeben.
Anmerkung
Die Umgebungsvariablen können natürlich auf beliebigem Wege angeben werden. Viele Entwicklungseditoren bringen das häufig auch von sich aus mit. Dazu müsst ihr selbstständig recherchieren.
Nun erzeugen wir eine Instanz der Solr-Klasse:
import dsstools as dts
snapshot = dts.Solr(
domain="https://dss-index.wiso.uni-hamburg.de/solr/snapshots", snapshot=169
)
Nachdem wir zu suchende Begriffe definiert haben, senden wir eine Anfrage:
query = [
'"divestment"',
'"sustainable investment"',
]
G, er = snapshot.query_multiple(G, terms=query)
Zurückgegeben wird jeweils der Graph selbst als auch etwaige leere Antworten. Das passiert, wenn der Crawler aus technischen Problemen keine Textinhalte herunterladen konnte oder aber die Webseite insgesamt nicht mehr existiert.
Ab jetzt sind in dem Graphenobjekt unter den Attributen die absoluten Werte für die Texte hinterlegt.
Zeichen von Attributen
Die Solr-Integration schreibt die Daten zu dem Query direkt in das Graph-Objekt unter einem spezifischen String. Um einen Begriff im Graphen für die Darstellung zu verwenden, kommt die Hilfsklasse dts.Code
zur Anwendung:
Hier passieren mehrere Dinge gleichzeitig:
dts.Category.TEXT
weist den Typ (sprich den Ursprung des Attributes) zu.dts.Category.TEXT
signalisiert Solr als Ursprung,dts.Category.MANUAL
dagegen manuell kodierte Attribute aus dssCode.dts.Code("divestment", dts.Category.TEXT)
erstellt ein Objekt, welches das Attribut "divestment" aus Solr sucht- Das Objekt wird direkt in einen
str
umgewandelt. Dieser lautet für das Beispiel"text:divestment"
Hinweis
Wer möchte, kann den obigen String natürlich auch manuell erstellen.
divt
kann jetzt als Argument bspw. an nodes.set_sizes()
übergeben werden:
Gleiches funktioniert auch für Farben: