Example DOM XML filter configuration using XSLT stylesheets Get some more data to play with: cd data fetch_OAI_data.sh (stop the script when you get tired waiting ..) cd ../ Checking manually the retrieval stylesheets: cat data/debug-record.xml xsltproc conf/oai2dc.xsl data/debug-record.xml xsltproc conf/oai2zebra.xsl data/debug-record.xml Checking manually the indexing stylesheet: xsltproc conf/oai2index.xsl data/debug-record.xml Indexing: mkdir tmp zebraidx -c conf/zebra.cfg init zebraidx -c conf/zebra.cfg update data zebraidx -c conf/zebra.cfg commit (in case you have not installed zebra yet, use the following command: ../../index/zebraidx -c conf/zebra.cfg this and that .. ) Starting the SRU/SRW/Z39.50 server in PQF mode only: zebrasrv -c conf/zebra.cfg Or, alternatively, starting the SRU/SRW/Z39.50 server including PQF and CQL query configuration: zebrasrv -f conf/yazserver.xml Z39.50 search: yaz-client localhost:9999 Z> format xml Z> querytype prefix Z> elements oai Z> find the Z> show 1+1 Z39.50 presents using presentation stylesheets: Z> elements dc Z> show 2+1 Z> elements zebra Z> show 3+1 Z39.50 buildin Zebra presents (in this configuration only if started without yaz-frontendserver): Z> elements zebra::meta Z> show 4+1 Z> elements zebra::meta::sysno Z> show 5+1 Z> format sutrs Z> show 5+1 Z> format xml Z> elements zebra::index Z> show 6+1 Z> elements zebra::snippet Z> show 7+1 Z> elements zebra::facet::any:w Z> show 8+1 Z> elements zebra::facet::any:w,title:w Z> show 9+1 Z39.50 searches targeted at specific indexes Z> find @attr 1=title communication Z> show 1+1 Z> find @attr 1=author alain Z> show 1+1 Z> elements zebra Z> find @attr 1=oai_identifier @attr 4=3 oai:caltechcstr.library.caltech.edu:4 Z> show 1+1 Z> find @attr 1=oai_datestamp @attr 4=3 2001-04-20 Z> show 1+1 Z> find @attr 1=oai_setspec @attr 4=3 7374617475733D756E707562 Z> show 1+1 Z> find @attr 1=identifier @attr 4=3 http://resolver.caltech.edu/CaltechCSTR:1986.5228-tr-86 Z> show 1+1 etc, etc. Notice that all indexes defined by 'type="0"' in the indexing style sheet must be searched using the '@attr 4=3' structure attribute instruction. Notice also that searching and scan on indexes 'contributor', 'language', 'rights', and 'source' fails, simply because none of the records in this example set have these fields set, and consequently, these indexes are _not_ created. Z39.50 searches using Bib-1 - only if bib1.att is referred to from zebra.cfg Z> find @attr 1=4 communication Z> show 1+1 Z> find @attr 1=1003 alain Z> show 1+1 Z> find @attr 1=21 all Z> show 1+1 Z> find @attr 1=1018 data Z> show 1+1 Z39.50 scan: yaz-client localhost:9999 Z> format xml Z> querytype prefix Z> scan @attr 1=oai_identifier @attr 4=3 oai Z> scan @attr 1=oai_datestamp @attr 4=3 1 Z> scan @attr 1=oai_setspec @attr 4=3 2000 Z> Z> scan @attr 1=title communication Z> scan @attr 1=identifier @attr 4=3 a etc, etc, Z39.50 search using server-side CQL conversion: Z> format xml Z> querytype cql Z> elements dc Z> Z> find harry Z> Z> find creator = the Z> find dc.creator = the Z> find title = the Z> Z> find description < the Z> find title le some Z> find title ge some Z> find title > some Z> Z> find identifier eq "http://resolver.caltech.edu/CaltechCSTR:1978.2276-tr-78" Z> find relation eq something etc, etc. Notice that all indexes defined by 'type="0"' in the indexing style sheet must be searched using the 'eq' relation. Z> find title <> and fails as well. ??? Z39.50 scan using server side CQL conversion: Unfortunately, this will _never_ work as it is not supported by the Z39.50 standard. If you want to use scan using server side CQL conversion, you need to make an SRW connection using yaz-client, or a SRU connection using REST Web Services - any browser will do. SRU Explain ZeeRex response: http://localhost:9999/ http://localhost:9999/?version=1.1&operation=explain SRU Search Retrieve records: http://localhost:9999/?version=1.1&operation=searchRetrieve &query=creator=adam http://localhost:9999/?version=1.1&operation=searchRetrieve &query=date=1978-01-01 &startRecord=1&maximumRecords=1&recordSchema=dc http://localhost:9999/?version=1.1&operation=searchRetrieve &query=dc.title=the http://localhost:9999/?version=1.1&operation=searchRetrieve &query=description=the relation tests: http://localhost:9999/?version=1.1&operation=searchRetrieve &query=title%3Cthe SRU scan: http://localhost:9999/?version=1.1&operation=scan&scanClause=title=a http://localhost:9999/?version=1.1&operation=scan &scanClause=identifier%20eq%20a Notice: you need to use the 'eq' relation for all @attr 4=3 indexes SRW explain with CQL index points: Z> open http://localhost:9999 Z> explain Notice: when opening a connection using the 'http.//' prefix, yaz-client uses SRW SOAP connections, and 'form xml' and 'querytype cql' are implicitely set. SRW search using implicit server side CQL: Z> open http://localhost:9999 Z> find identifier eq "http://resolver.caltech.edu/CaltechCSTR:1978.2276-tr-78" Z> find description < the In SRW connection mode, the follwing fails due to problem in yaz-client: Z> elements dc Z> s 1+1 SRW scan using implicit server side CQL: yaz-client http://localhost:9999 Z> scan title = communication Z> scan identifier eq a Notice: you need to use the 'eq' relation for all @attr 4=3 indexes SRW search using X-PQF query http://localhost:9999/?version=1.1&operation=searchRetrieve&x-pquery=fish&startRecord=1&maximumRecords=1&recordSchema=dc http://localhost:9999/?version=1.1&operation=searchRetrieve&x-pquery=fish&startRecord=1&maximumRecords=1&recordSchema=zebra::data http://localhost:9999/?version=1.1&operation=searchRetrieve&x-pquery=fish&startRecord=1&maximumRecords=1&recordSchema=zebra::meta http://localhost:9999/?version=1.1&operation=searchRetrieve&x-pquery=fish&startRecord=1&maximumRecords=1&recordSchema=zebra::index::description http://localhost:9999/?version=1.1&operation=searchRetrieve&x-pquery=fish&startRecord=1&maximumRecords=1&recordSchema=zebra::snippet http://localhost:9999/?version=1.1&operation=searchRetrieve&x-pquery=fish&startRecord=1&maximumRecords=1&recordSchema=zebra::facet::description:w