Hello, I still have some problems with ZOOM/zebra/yaz config and setup. 1ST problem : building zebra DB with recordId ============================================= Here is my zebra.cfg :
profilePath: ${srcdir:-.}:/usr/local/share/idzebra/tab/ attset: bib1.att attset: explain.att recordId: (bib1, Identifier-standard) recordType: grs.xml lockDir: lock setTmpDir: tmp keyTmpDir: tmp memMax: 100 perm.anonymous: rw encoding utf-8 storeKeys:1 storeData:1
If I run a script to rebuild the DB, I get in the log :
11:36:45-31/01 zebrasrv(1) [log] profilePath=.:/usr/local/share/idzebra/tab/ cwd=/home/paul/koha.dev/head/misc/zebra/unimarc 11:36:45-31/01 zebrasrv(1) [log] record 0 type XML 11:36:45-31/01 zebrasrv(1) [log] 3129 bytes: <?xml version="1.0" encoding="UTF-8"?> <collection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.l ... 11:36:45-31/01 zebrasrv(1) [warn] Record didn't contain match fields in (bib1, Identifier-standard) 11:36:45-31/01 zebrasrv(1) [warn] Bad match criteria (recordID) 11:36:45-31/01 zebrasrv(1) [log] zebra_update_record returned res=1 11:36:45-31/01 zebrasrv(1) [warn] zebra_update_record failed r=1 11:36:45-31/01 zebrasrv(1) [log] zebra_end_trans 11:36:45-31/01 zebrasrv(1) [log] sorting section 1 11:36:45-31/01 zebrasrv(1) [log] Iterations . . . 73 11:36:45-31/01 zebrasrv(1) [log] Distinct words . 31 11:36:45-31/01 zebrasrv(1) [log] Updates. . . . . 18 11:36:45-31/01 zebrasrv(1) [log] Deletions. . . . 0 11:36:45-31/01 zebrasrv(1) [log] Insertions . . . 13 11:36:45-31/01 zebrasrv(1) [log][app2] zebra_register_close p=0x8146578 11:36:45-31/01 zebrasrv(1) [log] Records: 0 i/u/d 0/0/0 11:36:45-31/01 zebrasrv(1) [log] user/system: 1/0 11:36:45-31/01 zebrasrv(1) [request] EsRequest ERROR 224 update_record failed 11:36:45-31/01 zebrasrv(1) [session] Connection closed by client
If I comment
recordId: (bib1, Identifier-standard) everything goes well ! Here is a copy of the XML I sent : <?xml version="1.0" encoding="UTF-8"?> <collection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd" xmlns="http://www.loc.gov/MARC21/slim">
<record> <leader>00743 2200217 4500</leader> <controlfield tag="001">2</controlfield> <datafield tag="010" ind1=" " ind2=" "> <subfield code="a">2729843132</subfield> <subfield code="d">190 F</subfield> </datafield> <datafield tag="090" ind1=" " ind2=" "> <subfield code="9">1</subfield> <subfield code="a">1</subfield> </datafield> <datafield tag="100" ind1=" " ind2=" "> <subfield code="a">1995 y0fre 0103 ba</subfield> </datafield> <datafield tag="101" ind1=" " ind2=" "> <subfield code="a">fre</subfield> </datafield> <datafield tag="105" ind1=" " ind2=" "> <subfield code="a">y 00 y</subfield> </datafield> <datafield tag="200" ind1="1" ind2=" "> <subfield code="a">Introduction aux probabilités</subfield> <subfield code="b">LIVR</subfield> <subfield code="f">Jean-Pierre DELMAS</subfield> </datafield> <datafield tag="210" ind1=" " ind2=" "> <subfield code="5">Edition Marketing</subfield> <subfield code="a">Paris</subfield> <subfield code="c">Edition Marketing</subfield> <subfield code="d">1993</subfield> </datafield> <cut a little bit> <datafield tag="700" ind1=" " ind2=" "> <subfield code="9">6659</subfield> <subfield code="a">DELMAS, Jean-Pierre</subfield> </datafield> <datafield tag="995" ind1=" " ind2=" "> <subfield code="b">CDI</subfield> <subfield code="c">CDI</subfield> <subfield code="e">SL</subfield> <subfield code="f">Non inventorie</subfield> <subfield code="j">000498</subfield> <subfield code="o">2</subfield> <subfield code="9">1</subfield> </datafield> </record>
my Identifier-standard is in 090$a, how can I explain this to zebra ? I tried to modify marc21.abs to add :
melm 090$a Identifier-standard
without any change. + as I need UNIMARC setup, how can I explain zebra my MARCXML is semantically UNIMARC (asking differently : how does zebra understand with recordType: grs.xml that marc21.abs is what it should use for semantic interpretation of the XML ?) 2ND problem =============== I can't set up CQL working. chris (katipo), I let you the job here, explain carefully on koha-devel what you did when you have succeeded. -- Paul POULAIN et Henri Damien LAURENT Consultants indépendants en logiciels libres et bibliothéconomie (http://www.koha-fr.org)
Date: Tue, 31 Jan 2006 12:08:02 +0100 From: Paul POULAIN <paul.poulain@free.fr>
1ST problem : building zebra DB with recordId =============================================
I'll leave Seb or Adam to help you with this one.
2ND problem =============== I can't set up CQL working. chris (katipo), I let you the job here, explain carefully on koha-devel what you did when you have succeeded.
What error-message do you get when trying to use CQL? Are you trying to do the compilation on the server side (using ZOOM::Query::CQL) or the client side (ZOOM::Query::CQL2RPN)? _/|_ ___________________________________________________________________ /o ) \/ Mike Taylor <mike@miketaylor.org.uk> http://www.miketaylor.org.uk )_v__/\ "The supplied fortune databases have been [hacked] to reduce redundancy and repetition and redundancy" -- Linux manual for /usr/games/fortune
Mike Taylor a écrit :
Date: Tue, 31 Jan 2006 12:08:02 +0100 From: Paul POULAIN <paul.poulain@free.fr> 2ND problem =============== I can't set up CQL working. chris (katipo), I let you the job here, explain carefully on koha-devel what you did when you have succeeded.
What error-message do you get when trying to use CQL?
Are you trying to do the compilation on the server side (using ZOOM::Query::CQL) or the client side (ZOOM::Query::CQL2RPN)? Hello Mike,
I try using CQL2RPN, because we query a zebra server, but in the near future, we could query any z3950 server with Koha OPAC. I get no error at all, just a "premature end of..." Here is my code :
warn "QUERY : $query"; my $Zconn; eval { $Zconn = new ZOOM::Connection('localhost','2100'); }; warn "ICI"; $Zconn->option(cqlfile => "/home/paul/koha.dev/head/zebra/pqf.properties"); warn "LA"; my $q = new ZOOM::Query::CQL2RPN( $query, $Zconn); warn "Q : $q";
and I get in my logs :
QUERY : test at /home/paul/koha.dev/head/C4/SearchMarc.pm line 251., ICI at /home/paul/koha.dev/head/C4/SearchMarc.pm line 256., LA at /home/paul/koha.dev/head/C4/SearchMarc.pm line 258., Premature end of script headers: search.pl,
that's all :-( pqf.properties being yours :
# $Id: pqf.properties,v 1.1 2005/12/21 00:16:31 mike Exp $ # # Propeties file to drive org.z3950.zing.cql.CQLNode's toPQF() # back-end and the YAZ CQL-to-PQF converter. This specifies the # interpretation of various CQL indexes, relations, etc. in terms # of Type-1 query attributes. # # This configuration file generates queries using BIB-1 attributes. # See http://www.loc.gov/z3950/agency/zing/cql/dc-indexes.html # for the Maintenance Agency's work-in-progress mapping of Dublin Core # indexes to Attribute Architecture (util, XD and BIB-2) # attributes.
# Identifiers for prefixes used in this file. (index.*) set.cql = info:srw/cql-context-set/1/cql-v1.1 set.rec = info:srw/cql-context-set/2/rec-1.0 set.dc = info:srw/cql-context-set/1/dc-v1.1 set.bath = http://zing.z3950.org/cql/bath/2.0/
# default set (in query) set = info:srw/cql-context-set/1/dc-v1.1
# The default access point and result-set references index.cql.serverChoice = 1=1016 # srw.serverChoice is deprecated in favour of cql.serverChoice # BIB-1 "any"
index.rec.id = 1=12
index.dc.title = 1=4 index.dc.subject = 1=21 index.dc.creator = 1=1003 index.dc.author = 1=1003 ### Unofficial synonym for "creator" index.dc.editor = 1=1020 index.dc.publisher = 1=1018 index.dc.description = 1=62 # "abstract" index.dc.date = 1=30 index.dc.resourceType = 1=1031 # guesswork: "Material-type" index.dc.format = 1=1034 # guesswork: "Content-type" index.dc.resourceIdentifier = 1=12 # "Local number" index.dc.source = 1=1019 # "Record-source" index.dc.language = 1=54 # "Code--language" index.dc.relation = 1=? ### No idea how to represent this index.dc.coverage = 1=? ### No idea how to represent this index.dc.rights = 1=? ### No idea how to represent this
# Relation attributes are selected according to the CQL relation by # looking up the "relation.<relation>" property: # relation.< = 2=1 relation.le = 2=2 relation.eq = 2=3 relation.exact = 2=3 relation.ge = 2=4 relation.> = 2=5 relation.<> = 2=6
### These two are not really right: relation.all = 2=3 relation.any = 2=3
# BIB-1 doesn't have a server choice relation, so we just make the # choice here, and use equality (which is clearly correct). relation.scr = 2=3
# Relation modifiers. # relationModifier.relevant = 2=102 relationModifier.fuzzy = 2=100 ### 100 is "phonetic", which is not quite the same thing relationModifier.stem = 2=101 relationModifier.phonetic = 2=100
# Position attributes may be specified for anchored terms (those # beginning with "^", which is stripped) and unanchored (those not # beginning with "^"). This may change when we get a BIB-1 truncation # attribute that says "do what CQL does". # position.first = 3=1 6=1 # "first in field" position.any = 3=3 6=1 # "any position in field" position.last = 3=4 6=1 # not a standard BIB-1 attribute position.firstAndLast = 3=3 6=3 # search term is anchored to be complete field
# Structure attributes may be specified for individual relations; a # default structure attribute my be specified by the pseudo-relation # "*", to be used whenever a relation not listed here occurs. # structure.exact = 4=108 # string structure.all = 4=2 structure.any = 4=2 structure.* = 4=1 # phrase
# Truncation attributes used to implement CQL wildcard patterns. The # simpler forms, left, right- and both-truncation will be used for the # simplest patterns, so that we produce PQF queries that conform more # closely to the Bath Profile. However, when a more complex pattern # such as "foo*bar" is used, we fall back on Z39.58-style masking. # truncation.right = 5=1 truncation.left = 5=2 truncation.both = 5=3 truncation.none = 5=100 truncation.z3958 = 5=104
# Finally, any additional attributes that should always be included # with each term can be specified in the "always" property. # always = 6=1 # 6=1: completeness = incomplete subfield
# Bath Profile support, added Thu Dec 18 13:06:20 GMT 2003 # See the Bath Profile for SRW at # http://zing.z3950.org/cql/bath.html # including the Bath Context Set defined within that document. # # In this file, we only map index-names to BIB-1 use attributes, doing # so in accordance with the specifications of the Z39.50 Bath Profile, # and leaving the relations, wildcards, etc. to fend for themselves.
index.bath.keyTitle = 1=33 index.bath.possessingInstitution = 1=1044 index.bath.name = 1=1002 index.bath.personalName = 1=1 index.bath.corporateName = 1=2 index.bath.conferenceName = 1=3 index.bath.uniformTitle = 1=6 index.bath.isbn = 1=7 index.bath.issn = 1=8 index.bath.geographicName = 1=58 index.bath.notes = 1=63 index.bath.topicalSubject = 1=1079 index.bath.genreForm = 1=1075
-- Paul POULAIN et Henri Damien LAURENT Consultants indépendants en logiciels libres et bibliothéconomie (http://www.koha-fr.org)
Date: Tue, 31 Jan 2006 15:12:17 +0100 From: Paul POULAIN <paul.poulain@free.fr>
What error-message do you get when trying to use CQL?
Are you trying to do the compilation on the server side (using ZOOM::Query::CQL) or the client side (ZOOM::Query::CQL2RPN)?
I try using CQL2RPN, because we query a zebra server, but in the near future, we could query any z3950 server with Koha OPAC.
OK, sounds wise.
Here is my code :
warn "QUERY : $query"; my $Zconn; eval { $Zconn = new ZOOM::Connection('localhost','2100'); }; warn "ICI"; $Zconn->option(cqlfile => "/home/paul/koha.dev/head/zebra/pqf.properties"); warn "LA"; my $q = new ZOOM::Query::CQL2RPN( $query, $Zconn); warn "Q : $q";
OK.
and I get in my logs :
QUERY : test at /home/paul/koha.dev/head/C4/SearchMarc.pm line 251., ICI at /home/paul/koha.dev/head/C4/SearchMarc.pm line 256., LA at /home/paul/koha.dev/head/C4/SearchMarc.pm line 258., Premature end of script headers: search.pl,
that's all :-(
Super-yikes! That _suggests_ to me that you're getting a segmentation fault -- the Apache process doing the CQL compilation is dying so rudely that it's not even able to send out the HTTP headers. Can you reproduce this with a command-line script? One that I can run without needing to install anything exotic? _/|_ ___________________________________________________________________ /o ) \/ Mike Taylor <mike@miketaylor.org.uk> http://www.miketaylor.org.uk )_v__/\ "So where is the innovation? The innovation is the talking paper clip in Microsoft Office. Is that real innovation?" -- Mitchell Kertzman, Chairman and CEO, Sybase.
Mike Taylor a écrit :
Super-yikes! That _suggests_ to me that you're getting a segmentation fault -- the Apache process doing the CQL compilation is dying so rudely that it's not even able to send out the HTTP headers.
Can you reproduce this with a command-line script? One that I can run without needing to install anything exotic?
yes I can : #!/usr/bin/perl use strict; use ZOOM; my $query="test"; warn "QUERY : $query"; my $Zconn; eval { $Zconn = new ZOOM::Connection('localhost','2100'); }; warn "ICI"; $Zconn->option(cqlfile => "/home/paul/koha.dev/head/zebra/pqf.properties"); warn "LA"; my $q = new ZOOM::Query::CQL2RPN( $query, $Zconn); # warn "ERROR : ".$Zconn->errcode(); warn "Q : $q"; give a great : [paul@bureau migration_tools]$ ./test_cql2rpn.pl QUERY : test at ./test_cql2rpn.pl line 10. ICI at ./test_cql2rpn.pl line 15. LA at ./test_cql2rpn.pl line 17. Erreur de segmentation (<< this is segfault in french ;-) ) -- Paul POULAIN et Henri Damien LAURENT Consultants indépendants en logiciels libres et bibliothéconomie (http://www.koha-fr.org)
Date: Tue, 31 Jan 2006 16:00:26 +0100 From: Paul POULAIN <paul.poulain@free.fr>
Can you reproduce this with a command-line script? One that I can run without needing to install anything exotic?
yes I can : #!/usr/bin/perl use strict; use ZOOM; my $query="test"; warn "QUERY : $query"; my $Zconn; eval { $Zconn = new ZOOM::Connection('localhost','2100'); }; warn "ICI"; $Zconn->option(cqlfile => "/home/paul/koha.dev/head/zebra/pqf.properties"); warn "LA"; my $q = new ZOOM::Query::CQL2RPN( $query, $Zconn); # warn "ERROR : ".$Zconn->errcode(); warn "Q : $q"; give a great : [paul@bureau migration_tools]$ ./test_cql2rpn.pl QUERY : test at ./test_cql2rpn.pl line 10. ICI at ./test_cql2rpn.pl line 15. LA at ./test_cql2rpn.pl line 17. Erreur de segmentation (<< this is segfault in french ;-) )
Well, at least we now understand the strange error-message in the web-server log. What we unfortunately do not know is what's causing it, and this is because -- $ perl ./test_cql2rpn.pl QUERY : test at ./test_cql2rpn.pl line 5. ICI at ./test_cql2rpn.pl line 10. LA at ./test_cql2rpn.pl line 13. Q : ZOOM::Query::CQL2RPN=HASH(0x8140aa8) at ./test_cql2rpn.pl line 16. Your program works perfectly for me. Hmm. Can you send me a stack-trace? _/|_ ___________________________________________________________________ /o ) \/ Mike Taylor <mike@miketaylor.org.uk> http://www.miketaylor.org.uk )_v__/\ "That's right, Pete. It's actually pronounced Mi'li-wau-KAY, and it's Algonquin for The Good Land" -- Alice Cooper, "Wayne's World"
participants (2)
-
Mike Taylor -
Paul POULAIN