Pole 'licenses.facet' môže obsahovať duplicity
Opened this issue · 1 comments
Ahoj,
Solr pole licenses.facet
môže obsahovať duplicitné licencie. Ak sa v poliach licenses_of_ancestors
a licenses
nachádza rovnaká licencia, tak sa zapíše do licenses.facet
dva krát.
Licencie z tohto poľa vo veľkom využíva klient, a takéto duplicity potom vedú k situáciam kedy je počet dokumentov s nejakou liceniou vyšší ako celkový počet dokumentov vo výsledkoch vyhľadávania. V MZK je to viditeľné napríklad na zbierke EOD open, kde sa nachádza 614 dokumentov a z toho 1198 s public licenciou.
Ďakujem,
Róbert Randiak, MZK
To, že licenses.facet
obsahuje nějakou licenci víckrát je sice chyba, ale není to příčina.
Vlastně tohle pole by mělo být řešením.
Klient teď používá původní 3 licenční pole
licenses
- objekt má přímo přiřazené licence - tato jediná je i ve foxmlcontains_licenses
- licence potomkůlicenses_of_ancestors
- licence nadřazených objektů
Normálně by se nemělo stávat, že je stejná licence ve více z těchto polí, ale je to teoreticky možné a nic tomu nebrání.
Klient pak potřebuje zobrazit počty u licencí, což dělá přes facety a potřebuje k tomu všechna 3 pole, která pak vlastně sečte, takže pokud má jeden objekt stejnou licenci ve více polích, tak bude započítán víckrát.
Aby se tohle vyřešilo, tak se právě zavedlo pole licenses.facet
, které je sjednocením těch 3 polí a klient pak facetuje pouze toto jedno pole. Jeden objekt tam nemůže být započítaný vícekrát.
Klient tohle pole ale ještě nepoužívá, protože aby se dal nahradit ten původní způsob tím novým polem, tak by muselo výt vše přeindexované.
Už je to nějaká doba, co se to přidalo, tak bychom to tam mohli přidat a podmínit to nějakým nastavení v konfiguraci.
A taky vyzkoušet tato dvě řešení vedle sebe.
Každopádně to duplikování licence v by se dít nemělo. @pavel-stastny koukni na to prosím, např.
https://api.kramerius.mzk.cz/search/api/client/v7.0/search?q=pid:%22uuid:e2f889b0-380e-11ed-aab1-005056827e51%22
...
"licenses_of_ancestors": [
"public"
],
"licenses": [
"public"
],
"licenses.facet": [
"public",
"public"
],
...