X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=doc%2Fexamples.xml;h=0341fd599890ba004f9d7b045f34e01ccaadc883;hb=dda755973378f66f8f7880ac77dbacb351f02a42;hp=1a08eae6a443535a4ee5c688630b52e4104af324;hpb=8ad5e21914fe3a09f6241a06b25fd7e1bbc1d73e;p=idzebra-moved-to-github.git diff --git a/doc/examples.xml b/doc/examples.xml index 1a08eae..0341fd5 100644 --- a/doc/examples.xml +++ b/doc/examples.xml @@ -1,5 +1,5 @@ - + Example Configurations @@ -44,55 +44,141 @@ - First Example: Minimal Configuration + Example 1: Minimal Configuration - This example shows how Zebra can be used, with absolutely minimal - configuration, to index a body of XML documents, and search them + This example shows how Zebra can be used with absolutely minimal + configuration to index a body of XML documents, and search them using XPath expressions to specify access points. - Go to the - zebra/examples/dinosauricon - directory. There you will find three significant files: + Go to the zebra/examples/dinosauricon directory. + There you will find a records subdirectory, + which contains some raw XML data to be added to the database: in + this case, two files, genera.xml and + taxa.xml, which contain information about all + the known dinosaur genera as of August 2002. + + Now we need to create the Zebra database, which we do with the + Zebra indexer, zebraidx. This program's + behaviour is driven by a configuration life, generally called + zebra.cfg, although this can be changed with the + -c option. For our purposes, we don't need any + special behaviour - we can use the defaults - so an empty + configuration will do just fine. We can either create an empty + zebra.cfg or specify the name of an existing + empty file using, for example, -c /dev/null. + + + In this case, we'll use an empty zebra.cfg so + we can add more configuration to it later. + + + That's all you need for a minimal Zebra configuration. Now you can + roll the XML records into the database and build the indexes: + + zebraidx -t grs.sgml update records + + (### What does "grs.sgml" actually mean?) + + + Now start the server. Like the indexer, its behaviour is + controlled by a configuration file, generally + zebra.cfg; and like the indexer, it works just + fine with an empty configuration. + + zebrasrv + + By default, the server listens on IP port number 9999, although + this can easily be changed. + + + Now you can use the Z39.50 client program of your choice to execute + XPath-based boolean queries and fetch the XML records that satisfy + them: + + Z> open tcp:@:9999 + Connecting...Ok. + Z> find @attr 1=/GENUS/MEANING @or vertebra jaw + Number of hits: 1 + Z> format xml + Z> show 1 + Z> show 1 + <GENUS name="Hudiesaurus" type="with" xmlns:idzebra="http://www.indexdata.dk/zebra/"> + <MEANING> + butterfly <LOW>vertebra</LOW> lizard + </MEANING> + <LENGTH value="30"></LENGTH> + <PLACE name="China"></PLACE> + <REMAINS content="4 teeth, forelimb, first dorsal vertebra"></REMAINS> + <SPECIES name="sinojapanorum" status="nudum"> + <AUTHOR name="Dong" year="1997"></AUTHOR> + <MEANING> + Chinese-Japanese + </MEANING> + </SPECIES> + <idzebra:size>359</idzebra:size><idzebra:localnumber>447</idzebra:localnumber><idzebra:filename>records/genera.xml</idzebra:filename></GENUS> + + + + Now wasn't that easy? + + - - - - The records subdirectory, which contains the - raw XML data to be added to the database: in this case, just one - file, genera.xml, which contains information - about all the known dinosaur genera as of October 2000. - - - + + Example 2: Adding Some Configuration + + + You may have noticed as zebraidx was building + the database that it issued several warnings, which we ignored at + the time: + +zebraidx -t grs.sgml update records +02:12:32-30/08: zebraidx(18151) [warn] default.idx [No such file or directory] +02:12:32-30/08: zebraidx(18151) [warn] Couldn't open explain.abs [No such file or directory] +02:12:32-30/08: zebraidx(18151) [warn] records/genera.xml:0 Couldn't open GENUS.abs [No such file or directory] +02:12:32-30/08: zebraidx(18151) [warn] records/genera.xml:0 Unknown register type: 0 +02:12:32-30/08: zebraidx(18151) [warn] records/genera.xml:0 Unknown register type: w +02:12:35-30/08: zebraidx(18151) [warn] records/taxa.xml:0 Couldn't open TAXON.abs [No such file or directory] + + And the server issued several more as the client connected to it, + then searched for and retrieved a record: + +02:17:10-30/08: zebrasrv(18165) [warn] default.idx [No such file or directory] +02:17:10-30/08: zebrasrv(18165) [warn] Couldn't open explain.abs [No such file or directory] +02:17:57-30/08: zebrasrv(18165) [warn] Unknown register type: w +02:18:42-30/08: zebrasrv(18165) [warn] Couldn't open GENUS.abs [No such file or directory] + + + + + + - # $Header: /home/cvsroot/idis/doc/examples.xml,v 1.1 2002-08-29 01:16:12 mike Exp $ + # $Header: /home/cvsroot/idis/doc/examples.xml,v 1.4 2002-08-30 01:18:40 mike Exp $ # Bare-bones master configuration file for Zebra - attset: bib1.att + profilePath: .:../../tab:../../../yaz/tab Apart from the comments, which are ignored, all this specifies is that the server should recognise the attribute set described in the file called bib1.att. + ### What is an attribute set? - The BIB-1 attribute set configuration file, bib1.att, which is also as short as possible: - - # $Header: /home/cvsroot/idis/doc/examples.xml,v 1.1 2002-08-29 01:16:12 mike Exp $ + # $Header: /home/cvsroot/idis/doc/examples.xml,v 1.4 2002-08-30 01:18:40 mike Exp $ # Bare-bones BIB-1 attribute set file for Zebra reference Bib-1 @@ -101,44 +187,40 @@ Bib-1, a name recognised by the system as referring to a well-known opaque identifier that is transmitted by clients as part of their searches. - + ### Yeuch! Surely we can say that better! ### Can't we somehow say this trivial thing in the main configuration file? - +--> - - That's all you need for a minimal Zebra configuration. Now you can - roll the XML records into the database and build the indexes: - - zebraidx -t grs.sgml update records - - - and start the server which, by default listens on port 9999: - - zebrasrv - - - - Now you can use the Z39.50 client program of your choice to execute - XPath-based boolean queries and fetch the XML records that satisfy - them: - - Z> open tcp:@:9999 - Connecting...Ok. - Z> find @attr 1=/GENUS/MEANING @or vertebra jaw - Number of hits: 2 - Z> format xml - Z> show 1 - <GENUS name="Anurognathus" type="with" xmlns:idzebra="http://www.indexdata.dk/zebra/"><SPECIES name="ammoni"><AUTHOR name="Doederline" year="1923"></AUTHOR></SPECIES><MEANING>tailless<I>or</I>anuran<LOW>(frog)</LOW>jaw</MEANING><TIME value="Tithonian" section="late"></TIME><PLACE name="Germany"></PLACE><LENGTH wingspan="1" value=".5"></LENGTH><idzebra:size>304</idzebra:size><idzebra:localnumber>70</idzebra:localnumber><idzebra:filename>records/genera.xml</idzebra:filename></GENUS> - - - - - +