Closed mchlrch closed 6 years ago
Suchresultate erhalten als zusätzliches Attribut einen score
. In der Kuration kann mit scoreBoost
der Scoring-Wert beeinflusst werden.
score
(float): Ein höherer Wert bedeutet grössere Relevanz.
http://ld.stadt-zuerich.ch/schema/score
scoreBoost
(float): Multiplikator zur Beeinflussung des Scoring-Werts. Ein Wert <1 verringert die Relevanz und ein Wert >1 erhöht die Relevanz.Wird eine Liste von Elementen anhand ihrer Scoring-Werte absteigend sortiert, dann steht das wichtigste Element an erster Stelle.
Ich habe mir hier ein Beispiel ausgedacht. Abzuklären ist natürlich noch, ob man das überhaupt tun können möchte. Update: Gemäss der Besprechung am Weekly vom 16.5. Kann das Boosting von Themen zurückgestellt werden. Ggf. nochmals betrachten, sobald die Kuration der Startseite umgesetzt ist (beinhaltet die Auswahl der Datasets und das Festlegen der Reihenfolge der Themen).
Beispiel zum scoreBoost
: Das Tag der Referenztabelle "Wohnungen nach Zimmerzahl und Stadtquartier (BAU002)" soll in der Vorschlagssuche hervorgehoben werden.
Themenbaum Stufe | score (Standard) |
---|---|
Thema | 10^6 |
Stufe 1 | 10^5 |
Stufe 2 | 10^4 |
Stufe 3 | 10^3 |
Referenztabelle | 10^2 |
Datensatz | 10^1 |
scoreBoost
Varianten für BAU002:
scoreBoost | score (Final | Ergebnis |
---|---|---|
2.0 | 2.0 x 10^2 | BAU002 steht vor allen anderen Referenztabellen |
2'000 | 2.0 x 10^5 | BAU002 folgt nach den Top-Level Themen des Themenbaums |
20'000 | 2.0 x 10^6 | BAU002 steht an erster Stelle, vor allen anderen Themen |
Wird eine Liste von Elementen anhand ihrer Scoring-Werte absteigend sortiert, dann steht das wichtigste Element an erster Stelle.
@surfiend Beispielhafter Ausschnitt aus der Response der Tags-API: http://stat.integ.stadt-zuerich.ch/tags/
{
"@id": "http://stat.integ.stadt-zuerich.ch/statistics/code/haushalte",
"@type": "Topic",
"score": {
"@type": "http://www.w3.org/2001/XMLSchema#float",
"@value": "10000.0"
},
"label": "Haushalte"
},
{
"@id": "http://stat.integ.stadt-zuerich.ch/topic/BEV051",
"@type": "Topic",
"score": {
"@type": "http://www.w3.org/2001/XMLSchema#float",
"@value": "100.0"
},
"label": "Umzugsbilanz"
},
{
"@id": "http://ld.stadt-zuerich.ch/statistics/dataset/BEW-RAUM-ZEIT-SEX",
"@type": "Topic",
"score": {
"@type": "http://www.w3.org/2001/XMLSchema#float",
"@value": "10.0"
},
"label": "Bevölkerung nach Geschlecht"
}
@mchlrch Weshalb stürzt die App beim Selektieren eines Tags (z.B. Bevölkerung) ab? http://stat.integ.stadt-zuerich.ch/statistics/code/bevoelkerung gibt undefined
und http://stat.integ.stadt-zuerich.ch/tags/ gibt 404 This page could not be found.
zurück.
@surfiend Es handelt sich um zwei Probleme mit unterschiedlichen Ursachen:
undefined
: In der Integrationsumgebung folgt auf das Selektieren eines Thema-Tags ein Fehler im Frontend. In der Integrationsumgebung erfolgt im Backend ein Rewrite der URIs, die in der Response drin sind. Die URIs der Tags werden beim darauffolgenden Aufruf vom Frontend ans Backend als Parameter genutzt, werden aber in den Daten nicht gefunden und sind deshalb in der Response nicht enthalten. Da jedoch das Frontend in der Response immer mindestens die Parameter selbst als Resultat erwartet, folgt dann der Absturz. Dies ist nur in der Integrationsumgebung so. Ein einfacher Fix/Workaround im Backend ist aktuell leider nicht bekannt.
Vielleicht könnte man anstatt abzustürzen im Frontend für die erwarteten Elemente welche in der Response der Tags-API fehlen als Ersatz {type='TopicEntity', score=1.0, label='UNDEFINED'}
verwenden? Man kann dann zwar immer noch nicht sinnvoll Suchen, aber immerhin gäbe es nicht gleich einen Absturz.
404
: 404 bekommst du aufgrund des Routings. Um Ressourcen im Browser zu dereferenzieren, kannst du entsprechend folgende URLs verwenden, jeweils mit ?format=
:
Die Sortierung der Tags gemäss Hierarchie vom Themenbaum muss noch verbessert werden. Aktuell stimmt die Sortierung noch nicht immer, insbesondere bei grosser Anzahl Resultate (Tags) stimmt sie nicht. Um die Sortierung sauber zu lösen, müssen wir die einzelnen Elemente des Suchresultats mit Scoring-Wert anreichern, die es dann dem Frontend erlauben die Resultate nachzusortieren.
Gehört zu #104 Suche ausbauen