Closed pknuuti closed 1 year ago
Voisikohan ongelma liittyä siihen että MARC:in täyttömerkki (|) on aika monitulkintainen ja voi ehkä aiheuttaa sekoilua. Esimerkiksi Perlissä kaksi tolppaa (||) on looginen Boolen OR-operaattori.
Testataan sandboxissa/nextillä ja jos niissäkään ei toimi, niin tiketti yhteisöön.
Testasin nyt sandboxissa ja Vaskin nextillä, eikä niissäkään toiminut haku |||-kielikoodilla.
Koha-Suomen palaveri 20.6.2023: Toteutetaan raportti, jolla nämä saadaan kiinni korjauksia varten (Lasse toteuttaa). Tekesitkö @pknuuti tästä yhteisöön tiketin?
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29561 Liittyykö tuo tähän asiaan?
Tuossa ilmeisesti ohitetaan kokonaan tyhjät fasetit (ln:""), joita ei pysty Kohan haulla hakemaan. Eli tavallaan liittyy mutta ei ratkaise tätä ongelmaa.
No olisi se ainakin parempi kuin ne tyhjät merkit, joita ei voi edes hakea. Toki voisimme korjata ne tyhjät koodit, kun saisimme toimivan raportin siihen.
Tuo korjaus on jo meillä mukana eikä vaikuta mitenkään kielikoodilla ||| hakemiseen. Katsotaan saisiko noista raportin, vaikka eihän se |||-koodi sinänsä mikään virhe ole.
Tällaisella raportilla pitäisi löytyä kaikki tietueet joissa 008/35-37:ssa |||:
select CONCAT(b.title, ', ', '<br/>', '<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',b.biblionumber,'\">',b.biblionumber,'</a>') AS 'Teos', bi.itemtype AS 'Aineistolaji'
from biblio b
left join biblioitems bi using (biblionumber)
left join biblio_metadata bm using (biblionumber)
where SUBSTR(ExtractValue(bm.metadata,'//controlfield[@tag="008"]'),36,3) = '|||';
Kiitos, raportti toimii kyllä, mutta antaa tarpeettoman suuren hakutuloksen. Voisiko tuota muokata niin, että käyttäjä voi valita aineistotyypin, mistä aineistosta raportin haluaa. Nuoteissa on niin paljon kielettömiä :)
Tässä pelkät kirjat, viimeiselle riville voi vaihtaa haluamansa aineistotyypin:
select CONCAT(b.title, ', ', '<br/>', '<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',b.biblionumber,'\">',b.biblionumber,'</a>') AS 'Teos', bi.itemtype AS 'Aineistolaji'
from biblio b
left join biblioitems bi using (biblionumber)
left join biblio_metadata bm using (biblionumber)
where SUBSTR(ExtractValue(bm.metadata,'//controlfield[@tag="008"]'),36,3) = '|||'
and bi.itemtype = 'KIRJA';
Kiitos! Hakutulos väheni kymmenesosaan, mutta edelleen paljon osakohteita, joiden kuvailut muutenkin puutteellisia. Olisiko mahdollista saada rajaus vain emoihin eli 000/7:n arvoksi m eli monografia?
select CONCAT(b.title, ', ', '<br/>', '<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',b.biblionumber,'\">',b.biblionumber,'</a>') AS 'Teos', bi.itemtype AS 'Aineistolaji'
from biblio b
left join biblioitems bi using (biblionumber)
left join biblio_metadata bm using (biblionumber)
where SUBSTR(ExtractValue(bm.metadata,'//controlfield[@tag="008"]'),36,3) = '|||'
and SUBSTR(ExtractValue(bm.metadata,'//leader'),8,1) = 'm'
and bi.itemtype = 'KIRJA';
Suuret kiitokset, nyt saan sellaisen määrän tuloksia, että niitä voi käsitellä (vähän toista sataa). Korjaan noihin kielikoodit kohdilleen.
OUTIssa raportille tuli 586 tietuetta, mutta suurimmassa osassa niissä näytti kielikoodit olevan kohdillaan. Eli raportti ei rajannut meillä tietueisiin, joissa kielikoodi on puutteellinen.
Meilläkin on joissakin kielikoodi 041-kentässä, mutta puuttuu tuolta kiinteämittaisesta eli 008-kentästä. Siellä käytetään tuota |||-merkkiä, kun ei ole koodattu mitään.
Kiitos Päivi, kun väänsit rautalankaa. :)
Lasse, saisiko raporttiin vielä seuraavat rajausmahdollisuudet:
OUTIssa korjaukset halutaan vastuuttaa kirjastoille, joilla on niteitä korjattavissa tietueissa.
Tässä kirjasto- ja aineistotyyppivalinnoilla:
SELECT CONCAT(b.title, ', ', '<br/>', '<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',b.biblionumber,'\">',b.biblionumber,'</a>') AS 'Teos', bi.itemtype AS 'Aineistolaji', <<Sijaintikirjasto|branches>> AS 'Sijaintikirjasto'
FROM biblio b
LEFT JOIN biblioitems bi USING (biblionumber)
LEFT JOIN biblio_metadata bm USING (biblionumber)
WHERE SUBSTR(ExtractValue(bm.metadata,'//controlfield[@tag="008"]'),36,3) = '|||'
AND SUBSTR(ExtractValue(bm.metadata,'//leader'),8,1) = 'm'
AND bi.itemtype = <<Aineistolaji|MTYPE>>
AND EXISTS (SELECT 1 FROM items i WHERE i.holdingbranch = <<Sijaintikirjasto|branches>> AND i.biblionumber = b.biblionumber);
Tuo aineistovalinta valinta antaa nidetyypin, ei aineistotyyppiä.
En saanut valinnoilla yhtään tulosta.
Mielenkiintoista, ei tosiaan löydä mitään outi-testillä muillakaan kielikoodeilla kuin |||. Omassa testiympäristössäni toimii oikein mutta toimiiko missään muualla? Katsotaan jos saisi vielä rajauksen aineistotyypin mukaan.
EDIT: Korjattu edelliseen viestiin itemtypesin tilalle MTYPE, nyt pitäisi toimia oikein.
Kiitos! Nyt näyttäisi raportti OUTIssakin toimivan. :)
Vielä tuli pyyntö, että saisiko raportin niteiden kotikirjaston mukaan. Nyt raportti antaa tietueet niteiden sijaintikirjaston mukaan.
Kotikirjaston mukaan pitäisi onnistua näin:
SELECT CONCAT(b.title, ', ', '<br/>', '<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',b.biblionumber,'\">',b.biblionumber,'</a>') AS 'Teos', bi.itemtype AS 'Aineistolaji', <<Kotikirjasto|branches>> AS 'Kotikirjasto'
FROM biblio b
LEFT JOIN biblioitems bi USING (biblionumber)
LEFT JOIN biblio_metadata bm USING (biblionumber)
WHERE SUBSTR(ExtractValue(bm.metadata,'//controlfield[@tag="008"]'),36,3) = '|||'
AND SUBSTR(ExtractValue(bm.metadata,'//leader'),8,1) = 'm'
AND bi.itemtype = <<Aineistolaji|MTYPE>>
AND EXISTS (SELECT 1 FROM items i WHERE i.homebranch = <<Kotikirjasto|branches>> AND i.biblionumber = b.biblionumber);
Kiitos taas! Luetteloinnissa oltiin nyt tyytyväisiä hakutuloksiin. :)
Tiketti tehty yhteisöön https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=34143 Suljen tämän tiketin.
Mikä vikana?
Kielikoodeissa fasettiarvo ||| ei vaikuta toimivalta. Arvovalinnalla sama hakutulos kuin ennen arvovalintaa.
Mitä pitäisi tapahtua
Pitäisi voida saada hakutulos, josta näkee nimekkeet, joissa kielikoodina on ||| (ilmeisesti tarkoittaa, että ei ole koodattu?) Tuloksen avulla voisi korjata puutteelliset koodaukset.
Kuinka toistaa ongelma/asia
No response
Selain
No response
Jotain muuta?
No response
Kohan osio
No response