ceskaexpedice / kramerius-web-client

Novy klient pro Krameria
13 stars 14 forks source link

nesedí počty dokumentů u DNNT licence vs. Dostupnost Po přihlášení #762

Open zabak opened 3 weeks ago

zabak commented 3 weeks ago

Je to vidět jen v KFBZ nebo v MZK, takže možná je to závislé na tom, že v obou případech jde o K7. V K5 (KNAV, NK, SVKHK) je to v pořádku.

honza-rychtar commented 1 week ago

Počty u Dostupnosti a u Licencí se provádí odlišným způsobem. U Dostupnosti dojde pro každý typ (Veřejné, Po přihlášení, V knihovně) k samostatnému dotazu podle specifických pravidel a odpovědí je konkrétní číslo (počet objektů), které je přesné.

U licencí se dává fasetový dotaz, ale jelikož licence může být ve třech různých polích, tak dojde ještě k součtu. Např. u KFBZ

"licenses_of_ancestors": [
  "onsite", 3
],
"licenses": [
  "dnnto", 565,
  "onsite", 565
],
"contains_licenses": [
  "dnnto", 73,
  "onsite", 73,
  "public", 3
]

Takže třeba u DNNTO dojde k součtu 565 + 73 = 638 Jenže ona ta jednotlivá pole mohou mít neprázdný průnik a konkrétně tady je jeden dokument, který ma dnnto v poli licenses i v poli contains_licenses, takže se započítá dvakrát a pak nesedí ten počet s přesným výsledkem u Po přihlášení 637.

V rámci toho dotazu není jak zjistit ty průniky. Tohoto jsme si byli vědomi a ve verzi indexeru 16 došlo k přidání jednoho sjednocujícího pole pro všechny 3 pole s licencemi. https://github.com/ceskaexpedice/kramerius/wiki/Vyhled%C3%A1vac%C3%AD-index#verze-16

Abychom to však mohli použít v klientovi, tak je potřeba mít reindexovaná všechna data. K čemuž si nejsem jistý, že došlo. U nových instalacá K7 bychom s tím už mohli počítat a minimálně umožnit říct v konfiguraci, že se můžeme spolehnout na to nové pole.

Všiml jsem si ale, že v KFBZ toto pole chybí úplně, i když mají verzi indexeru 19 a i dokumenty jsou touto verzí zpracováný.

Např. pro MZK https://api.kramerius.mzk.cz/search/api/client/v7.0/search?q=pid:%22uuid:adc3ffd0-2a48-11ef-856d-5ef3fc9bb22f%22&fl=pid,licenses.facet,licenses,licenses_of_ancestors,contains_licenses,indexer_version

{
  "pid": "uuid:adc3ffd0-2a48-11ef-856d-5ef3fc9bb22f",
  "indexer_version": 19,
  "licenses": [
    "dnnto"
  ],
  "licenses.facet": [
    "dnnto"
  ]
}

A pro KFBZ https://kramerius.kfbz.cz/search/api/client/v7.0/search?q=pid:%22uuid:012652f6-6c15-447e-b900-fc05c8e4bce4%22&fl=pid,licenses.facet,licenses,licenses_of_ancestors,contains_licenses,indexer_version

{
  "pid": "uuid:012652f6-6c15-447e-b900-fc05c8e4bce4",
  "indexer_version": 19,
  "licenses": [
    "dnnto",
    "onsite"
  ]
}

Chybí tam

  "licenses.facet": [
    "dnnto",
    "onsite"
  ]

@pavel-stastny Můžeš prosím ověřit, jak je možné, že u nich chybí licenses.facet s indexerem v19.