| config | ||
| README.md | ||
Registry Search
Produktivinstanz: https://registry.text-plus.org Testinstanz: https://c102-142.cloud.gwdg.de/registry-search
Für Bug-Reports und Feature Requests einfach ein Issue erstellen.
Aufbau
Dieses Repository enthält die Konfigurationsdateien für die Suche der Registry. Es besteht aus mehreren Komponenten.
Zuerst müssen die Daten indexiert werden mit dem Registry Indexer, dann kann die docker-compose.yml mit docker compose up -d ausgeführt werden.
1. Registry Indexer
Der Registry Indexer indexiert alle Metadaten über die Registry API in eine OpenSearch Instanz. Dabei werden die Daten verarbeitet um suchspezifische Aspekte, wie mersprachiges Suchen oder Vektorsuche zu ermöglichen.
2. API
Die Such-API greift auf die Daten und Funktionalitäten von OpenSearch zu. Die Konfigurationsdateien für diese API befinden sich unter /config/api. In der docker-compose.yml, muss noch der Zugang zu OpenSearch angegeben werden. Query Beispiele für die API sind unter https://gitlab.gwdg.de/textplus/registry/registry-docs/-/blob/staging/docs/api/search_api.md?ref_type=heads zu finden.
3. Frontend
Das Such-Frontend kommuniziert mit der API. Die Konfiguration befindet sich unter /config/frontend
Such-API Zugang
Die Suche stellt verschiedene Suchprofile zur Verfügung, die durchsucht werden können:
datacite: Ermöglicht eine Suche über alle Datendomänenedition: Suche speziell für Editionencollection: Suche speziell für Kollektionenlexical_resource: Suche speziell für lexikalische Ressourcen
Beispiele
Eine datacite-Suchanfrage:
POST: https://registry.text-plus.org/api/search/datacite
Request Body:
{
"query": "goethe"
}
Eine edition-Suchanfrage, die Aggregationen und Suggestions mit anzeigt:
POST: https://registry.text-plus.org/api/search/edition
Request Body:
{
"query": "goethe",
"aggregations": true,
"suggestions": true,
}
Eine collection-Suchanfrage mit Filter für arabische Ressourcen (ara):
POST: https://registry.text-plus.org/api/search/collection
Request Body:
{
"query": "*",
"aggregations": true,
"suggestions": true,
"filter": {"properties.language.@reference": "ara"}
}
Filter
Wir können den Filter einfach erweitern und mehrere Sprachen durchsuchen indem wir die keys in einen String-Array schreiben:
{
"query": "*",
"aggregations": true,
"suggestions": true,
"filter": {"properties.language.@reference": ["ara", "eng"]}
}
Filter auf andere Felder werden einfach mit Komma getrennt hinzugefügt:
{
"query": "*",
"aggregations": true,
"suggestions": true,
"filter": {"properties.language.@reference": ["ara", "eng"], "properties.modality.@reference": "gesprochen"}
}