Abfrage #
Folgende Suchen sollen in linked.swissbib.ch möglich sein:
- Einfache Suche: Einstellungen für _all-Feld in mapping definieren (insbesondere: Welche Felder sollen ausgeschlossen werden?); Implementierung einer Methode queryAll: 2. Wie muss nach einzelnen Wörtern (OR-Verknüpfung) in Dokumenten gesucht werden? => Match-Suche genügt
- Boolesche Suche nach Begriffen (must, must_not, should) => multi_match-Suche
- Filter nach Daten (range-Filter)
- Filter nach Sprachen
- Filter nach Formaten
- Filter nach Bibliotheksverbünden
- Kombination aus 2. und 3. - 6.
Beispiel einfache Suche #
GET /testsb/bibliographicResource/_search
{
"query": {
"match": {
"_all": "beispiel suche"
}
}
}
Beispiel erweiterte Suche #
GET /testsb/bibliographicResource/_search
{
"query": {
"bool": {
"should": [
{
"match": {"dct:title": "test"}
},
{
"nested": {
"path": "dc:contributor",
"query": {
"match": {
"foaf:firstName": "John"
}
}
}
}
],
"must": [
{
"range": {
"dct:issued": {
"from": "1900",
"to": "2010"
}
}
}
],
"minimum_number_should_match": 1
}
}
}
Anmerkungen:
- Es muss eine boolesche Abfrage durchgeführt werden. Sechs Szenarien für Bool-Blöcke sind dabei denkbar:
- should: Suche nach Vereinigungsmenge ohne Filter
- must: Suche nach Schnittmenge mit bzw. ohne Filter
- must, must_not: Suche nach Differenzmenge ohne Filter; Suche nach Differenzmenge mit Filter
- should, must_not: Suche nach Differenzmenge ohne Filter
- should, must: Suche nach Vereinigungsmenge mit Filter
- must, should, must_not: Suche nach Differenzmenge mit Filter