IDMETA and mk_version.tcl part of Windows package
[idzebra-moved-to-github.git] / NEWS
diff --git a/NEWS b/NEWS
index 993570a..e7902a2 100644 (file)
--- a/NEWS
+++ b/NEWS
-Added zebra_set_approx_limit for a ZebraHandle (session). Results
-will be approximate if hit count is greater than the limit specified.
+--- 2.0.50 2011/11/01
 
-Added support for term hit counts. This was not in place for earlier
-1.4 versions, but is present in the 1.3 series. Bug #124.
+Fix a bug in zebra_begin_trans where Zebra could mark a transaction
+complete when it actually failed. This could happen if register files
+could not be opened.
 
-Implemented the 'equivalent' directive for .chr-files.
+--- 2.0.49 2011/09/02
 
-Added zebra_get_bfs to get BFile handle for session.
+Scan: allow preferred position > number + 1
 
-Added 'melm' directive to absyn format to simplify config files
-for MARC-style databases. See tab/marc21.abs for an example.
+Fix bug #4592: dict_scan misses
 
-Added bath-compliant definition file marc21.abs for use with MARC databases.
+Fix snippets for complete fields, bug #4590. The
+snippet_add_complete_fields (chr-system) now takes the indexing term
+verbatim and makes that the display term.
 
-Added autoconf utility idzebra.m4 which defines --with-idzebra .
+--- 2.0.48 2011/06/28
 
-Added mechanism to ignore leading articles when doing full-field indexing,
-based on the character map files. See the manual for further discussion.
+Utility idebra-abs2dom part of distribution and deb+RPM packages.
 
-Fixed bug in record management. Releasing blocks could result in
-partial read.
+Fix problem with scan and complete subfields (:p) . In some cases,
+the display scan terms, would be invalid.
 
-Fixed bug in isam:b. A tree split could result in a lost item.
+--- 2.0.47 2011/05/24
 
-Remove isamd. It's not been in use for a long time and isamb is better
-in most cases.
+RPM: Store libraries in /usr/lib64 on 64-bit platforms.
 
-Change SYSNO to be zint. Change pointers in isamc and isamb to zint.
-Change block number in bfile/cfile to zint. zint is a long integer
-(64-bit). This change practially removes register limits for Zebra.
+Zebra honors SRU sortkeys. If used with YAZ 4.2.0 or later,
+CQL sortby is honored as well.
 
-Implement int-list encoding for ISAMs.
+Fix scan's handling of normalized terms. Some terms were incorrectly
+ignored in the scan results, CJK terms in particular.
 
-Added facility to make attibutes in grs.regx and grs.tcl filter using the
-data command with argument -attribute <name> . The content of data is
-the value of the attribute. This command should be used inside a
-begin element , end element section.
+--- 2.0.46 2011/03/23
 
-Update zebra.nsi to NSIS 2.
+Fix bug in dictionary component of Zebra that could lead to
+inconsistent register assert for large deleteions.
 
-Added a new 'cut' directive to charmaps (.chr files) which specifies that
-only characters after the cutting char should be indexed.
+Improve estimate hits for phrase searches.
 
-Update Perl internals so that it matches the current Zebra API.
-The recordGroup structure is no longer available. A group of resources
-can still be referenced by setting groupName=>..  in various methods.
+--- 2.0.45 2010/12/22
 
-Maximum number of records to be sorted in a result set can be
-specified by setting "sortmax". Default is 1000.
+Add Debian package for Ubuntu maverick.
 
-Allow use of string use attributes for regular attribute sets. The
-name matches the name given in the attribute set file. All strings
-starting with / are considered X-Path as usual.
+Update to newer Libxml2/Libxslt for Windows package.
 
-Fixed bug in grs.regx. filter . 'end element' could pop off top tag
-element for XML tree. It may only pop off if -record is given.
+Escape-sequences are disabled for RPN-queries with truncation=105/106.
+These, unlike regular expressions, do not support \-sequences .
 
-Added grs.danbib filter - for Danish Bibliographic Centre.
+--- 2.0.44 2010/06/29
 
-Rename CHANGELOG to NEWS.
+grs1: avoid term_len < 0 for .abs operator 'range'
 
-For text filter, return only header if elementSetName=H . elementSetName=R
-returns contents only. Other elementSetName returns both header+content.
+ICU: fix use of un-init variable.
 
-Added test for charmap and rusmarc.
+More reasonable approx hits for truncated searches.
 
-Added feature charmaps (.chr) so that characters may be specified in
-\LXXXX HEX notation.
+Updates WRT Odr_int (YAZ 4).
 
-Fixed problem with encoding directive for charmap(.chr) files.
+--- 2.0.43 2009/11/05
 
-Allow Remote insert/delete/replace/update with record, recordIdNumber
-(sysno) and/or recordIdOpaque(user supplied record Id). If both
-IDs are omitted internal record ID match is assumed (recordId: - in
-zebra cfg).
+Fix hits counts for searches when @attr 12=n is in use. This bug
+was introduced in 2.0.40.
 
---- 1.3.15 2004/01/15
+--- 2.0.42 2009/10/08
 
-Fix bug. X-Path attribute expressions with spaces in them now works.
+Proximity modifications. The optimized proximity now deals with more
+cases, ie all prox of the form @prox 0 d 1 1,2,3 k 2 ..
+That's exlusive==0, any distance, ordered (true), relation (<, =, <=),
+known unit word.
 
-Fix base address for MARC output.
+Fix bug WRT inconsistent registers, bug #3062.
 
---- 1.3.14 2003/11/29
+Fix install doc rule so it's compatible with Automake 1.11.
 
-Fix bug with shadow and result set handling.
+--- 2.0.41 2009/08/24
 
-Implement MARCXML to ISO2709 conversion.
+Fix typos and other errors in the documentation. Thanks to Galen
+Charlton.
 
---- 1.3.13 2003/09/26
+Fix DOM filter so that full record ID (z:id) if given is used verbatim
+rather than truncated until first blank - in other words use memcpy
+rather than sscanf. For PI fix record attributes parsing which was
+completely broken.
 
-Add missing examples for Windows install.
+--- 2.0.40 2009/07/13
 
-Fix bug in regx filter to make it "greedy" again. This bug appeared
-in version 1.3.12.
+Fixed problem in result set handling and segment handling.
 
-Fix a few tests.
+--- 2.0.39 2009/07/09
 
---- 1.3.12 2003/09/08
+Improved speed of record fetching by using a different block sizes
+for recd{A,B}.
 
-Fix XML error handling. Stop XML parse immediately if XML parse error
-occur (i.e.  produce one error only).
+Added zlib-compression of recd-storage (record data). This is enabled
+by using recordCompression: zlib in zebra.cfg.
 
-Zebra ignores "unsupported use attribute" for individual databases
-when search multiple databases (unless all databases fail).
+Dictionary delete more agressive (dict_del_string).
 
-New filter grs.marcxml which works like grs.marc but produces MARCXML.
+--- 2.0.38 2009/06/19
 
-Added support for database deletion. It is possible to create/drop
-a database from zebraidx utility. Note: only for isam:b.
+Improved estimated hits for AND operation (bug #2907)
 
-Write zebrasrv.pid to lockdir.
+Fixed problem with register area growing after "drop DB". (bug #2913).
 
-Bug fix: result sets were not recovered correctly. Had to
-add ODR handle for zebra_search_RPN in order to make it work.
+--- 2.0.37 2009/05/18
 
-Fixed a bug in regx filters that didn't do anchors (^) correctly.
+Example with marc21 is now installed and part of packages.
 
-Fixed a bug in searches with X-Path searches sometimes giving "extra"
-hits.
+Fixed XSL for OAI example.
 
-Zebra server checks for zebrasrv.pid and refuses to start if it is already
-locked by another (running) zebrasrv.
+Fixed problem with generic proximity handling.
 
-Fixed a bug with text being chunked in pieces for the grs.xml filter.
+Added new ranking handler: rank-2. This is a combination of rank-1 and
+static rank.. The staticrank is inverse (lowest value comes first, etc..).
+rank-2 thus substracts that from score. This allows a system to specify
+a "base" rank (=staticrank).
 
---- 1.3.11 2003/04/25
+--- 2.0.36 2009/02/17
 
-xelm code updates. xelm works regardless state of 'xpath enable/disable'
-Avoid -L/usr/lib since that is already default library path.
+Added implementation-codes directive for .mar files.
 
-Allow multiple updates within one transaction.
+Avoid error for missing recordId when zebraidx' option -s is in use.
 
-Fixed a bug with >2GB files (overflow in integer expression).
+Fixed problem with some disk blocks not beeing freed correctly when
+'drop database' is used.
 
---- 1.3.10 2003/04/01
+--- 2.0.34 2008/11/06
 
-Fix linker error for Perl module.
+Facets can now be performed on sort registers (:s), not just regular indexes
+(:w, :p) etc.. The performance appers to be much better than before.
 
-Fix bug in and operation which in some cases could result in "extra"
-hits. Bug was introduced in 1.3.5.
+Added a facility to embed metadata for records generated by the DOM XML
+filter. The meta data step is triggered by a 'process-meta' section in the
+retrieve section of the dom config, e.g.
+  <retrieve name="myelementset">
+    <xslt stylesheet="my-usual.xsl"/>
+    <process-meta/>
+  </retrieve>
+The meta section substitutes metadata for all elements called 'meta' in
+namespace http://indexdata.com/zebra-2.0 . The meta element must have
+exactly one attribute, name, which specifies the special
+element set name which is equivalent to the suffix to zebra:: for
+non-embedded special retrievals. This allows snippets, facets etc to be
+included.
 
-Fix bug in handling of schema conversion when producing numeric tags.
+Fixed bug #2202: incorrect sorting order when searching multiple databases.
 
---- 1.3.9 2003/03/27
+--- 2.0.32 2008/06/06
 
-Zvrank updates. 
+Fixed OAI example.
 
-Add missing files doc/zvrank.txt and doc/marc_indexing.xml.
+--- 2.0.30 2008/05/14
 
---- 1.3.8 2003/03/26
+Changed service name for Windows. Bug #978.
 
-Zvrank: an experimental ranking algorithm. See doc/zvrank.txt and
-source in index/zvrank.c. Enable this by using rank: zvrank in zebra.cfg.
-Contributed by Johannes Leveling <Johannes.Leveling at fernuni-hagen.de>
+Fixed the alwaysmatches including _ALLRECORDS for ICU term indexing. Bug #2139.
 
-livrank: another experimental ranking algorithm. Source in livcode.c.
-Enable this by using rank: livrank in zebra.cfg and use -DLIV_CODE=1
-for CFLAGS.
-Contributed by Pete Mallinson, University of Liverpool. 
+--- 2.0.28 2008/04/03
 
-Advanced MARC indexing. See doc/marc_indexing.xml
- Oleg Kolobov <oleg at lib.tpu.ru>
+Handle right-truncation for ICU normalized terms.
 
-Perl API updates and fixes. 
- Peter Popovics <pop at technomat.hu>
+Updated OAI-PMH example.
 
-Fixed 'zebraidx delete'.
+--- 2.0.26 2008/01/28 
 
-Implemented 'zebraidx clean'.
+Fixes for searches on Chinese text.
 
-64-bit offsets for register files on WIN32 (no 2 GB limit).
+Fixes for scan using ICU indexing terms.
 
-Fixed a few memory leaks WRT sorting.
+--- 2.0.24 2008/01/18 
 
---- 1.3.7 2003/02/27
+Fixed some memory violations for ICU enabled indexing that could be
+triggered by long phrases.
 
-Fixed error handling : error code was not properly returned.
+Enable ICU on Windows. Thanks to Tumer Garip for makefile patches.
 
-Support Truncation 104 (CCL).
+Fixed bug #2002: Zebra crashes during merge using ICU indexing.
 
---- 1.3.6 2003/02/25
+--- 2.0.22 2007/12/20
 
-Added missing source files for perl extension.
+Handle encoding errors for strings passed to ICU. (assert was
+thrown earlier).
 
---- 1.3.5 2003/02/23
+Added zebraidx command, adelete, which attempts to delete records.
+It's like 'delete', but does not fail if a record does not exist.
 
-Implemented xelm directive.
+--- 2.0.20 2007/12/19
 
-Updated for newer version of YAZ (introduction of string schema).
+Added experimental support for faceted results. This is implemented
+as a special retrieval on a result set and is triggered using element
+set name zebra::facet::f1:t1,f2,t2,.. which will return terms and
+hit counts for field f1, type t1, field f2, type t2, .. The returned
+data is packed as XML or SUTRS depending on record syntax.
 
-Directory examples/zthes now part of distribution (was missing
-in previous release).
+Added support for Unicode-based indexing using ICU. This allows
+locale specific scanning, sorting. The implementation is based on
+the ICU utility part of YAZ 3.0.16 and later. See the manual as well
+as the examples/marcxml for an example of the use of ICU.
 
-New .abs directive, systag, that control where to put retrieval
-information. The directive takes two arguments: system tag, element name.
-System tag is one of : rank, sysno, size.
+--- 2.0.18 2007/09/19
 
---- 1.3.4 2002/11/26
+Fixed bug with scan and staticrank enabled. Bug introduced in 2.0.16.
 
-Perl Filter and Perl API. By Peter Popovics.
+--- 2.0.16 2007/09/12
 
-For zebra.cfg, if no profilePath is specified, directory
- (prefix)/share/idzebra/tab
-is used.
+Scan now returns a displayTerm which closer to the original word/phrase
+from original record.
 
-Zebra Examples in examples . Zebra tests in test.
+Added snippet support. Element set name zebra::snippet will make
+Zebra return an XML record with snippets (terms around matching terms).
 
-Bug fix: sort index was not properly modified on 
-record updates/deletes.
+Fixed bug #1142: Non-indexed but listed attributes issues diagnostic.
 
-Fix handling of character entities for sgml filter.
+Fixed bug #1131: Missing value-of data in DOM filter.
 
-Move data1 to Zebra (used to be part of YAZ).
+Fixed bug #1049: zebra.cfg lines with leading space are ignored.
 
---- 1.3.3 2002/10/05
+Fixed bug #1128: sortmax not honored.
 
-Fix character encoding of scan response terms.
+Fixed bug #1121: Crash for some searches with customized string.chr.
 
-Fix character decoding of scan request terms.
+--- 2.0.14 2007/05/09
 
-Fix ESpec handling (requires YAZ 1.9.1)
+Zebra uses the YAZ 3 API. Note that this changes the Zebra API
+as well. The register layout is the same however. 
 
-Fix searches for complete fields.
+Fixed bug #1114: scan within set may use excessive CPU.
 
---- 1.3.2 2002/09/09
+Fixed memory leak that occurred in scan.
 
-When name zebra is used in a filename or directory 'idzebra' is used
-instead to avoid confusion with GNU zebra (routing software).
+Fixed memory leak that occurred for each deleted record.
 
-Zebra server stops with a fatal error if config file cannot be read.
+Optimize updates of records where content is almost identical to previous
+version of record. This makes updating of the internal explain database
+faster too.
 
-New config setting, followLinks, that controls whether update of files
-should follow symbolic. Set it to 1 (for enable) or 0 (to disable).
-By default symbolic links are followed.
+For RPN queries the index type (w,p,..) may be specified verbatim as
+structure attribute with string value, e.g. @attr 4=w .
 
-Fix MARC transfer . MARC fields had wrong data for multiple fields.
+Changed record update API . It is now handled by function
+zebra_record_update which does insert/replace/delete/update of records .
+This function replaces zebra_record_{insert,delete} and
+zebra_admin_exchange_record. The DOM filter uses this feature and the
+@type attribute in record element specifies the action
+insert/replace/delete/update.
 
-XML record reader moved from YAZ to Zebra, to make YAZ less 
-dependant on external libraries.
+Added support for multi-record updates (Bug #944). Based on patch from
+Hans-Werner Hilse.
 
-Zebra uses yaz_iconv which is mini iconv library supporting UTF-8,
-UCS4, ISO-8859-1. This means that Zebra does UNICODE even
-on systems that doesn't offer iconv.
+--- 2.0.12 2007/03/07
 
-XML record reader supports external system entities.
+Fixed bug with indexing of attributes for rec.grs-class of filters.
+If X-Path was enabled xelm a/@b would be ignored.
 
---- 1.3.1 2002/08/20
+Fixed bug in register system where 'no more space' messages was produced
+even though there was plenty of space.
 
-New .abs-directive "xpath" that takes one argument: "enable"
-or "disable" to enable and disable XPath -indexing. If no "xpath"
-direcive is found in .abs-file , XPath-indexing is disabled to ensure
-backwards compatibility. For missing .abs-files XPath-indexing is
-enabled so that such records are searchable.
+Fixed bug #884: Entity declarations in input are lost at retrieval time.
 
-Zebra warns about missing .abs-file only once (for each type).
+Implemented new filter 'dom'. See test/xslt/dom-config*xml for examples. 
+This, like alvis, performs indexing and retrieval using XSLT. But Unlike
+alvis, it allows multiple XSLT steps to be performed and does ISO2709
+reading. Bug #843.
 
-Fixed a bug in file update where already-inserted files could
-be treated as "new".
+--- 2.0.10 2007/01/24
 
---- 1.3.0 2002/08/05
+Staticrank indexing is now an index register type defined in default.idx
+via directive 'staticrank'. The 'staticrank' directive for grs is no longer
+supported (was only implemented for Zebra 2.0.8).
 
-Zebra license changed to GNU GPL.
+For searches, allow truncmax value to be controlled with attribute 13.
+If given, that overrides the value of 'truncmax'.
 
-XPath-like queries used when RPN string attributes are used, eg.
-   @attr 1=/portal/title sometitle
-   @attr 1=/portal/title[@xml:lang=da] danishtitle
-   @attr 1=/portal/title/@xml:lang da
-   @attr 1=//title sometitle
+For truncations being limited (abort at truncmax terms), zebrasrv returns
+SearchResponse with resultSetStatus=subset.
 
-Zebra uses UTF-8 internally:
-1) New setting "encoding" for zebra.cfg that specifies encoding for
-OCTET terms in queries and record encoding for most transfer syntaxes
-(except those that use International Strings, such as GRS-1).
-2) The encoding of International strings is UTF-8 by default. It
-may be changed by character set negotiation. If character set
-negotiation is in effect and if records are selected for conversion
-these'll be converted to the selected character set - thus overriding
-the encoding setting in zebra.cfg.
-3) New directive "encoding" in .abs-files. This specifies the external
-character encoding for files indexed by zebra. However, if records
-themselves have an XML header that specifies and encoding that'll be used
-instead.
+For estimated hit counts, zebrasrv returns SearchResponse with 
+resultSetStatus=estimate.
 
-XML filter (-t grs.xml).
+--- 2.0.8 2007/01/15
 
-Multiple registers. New setting in resource 'root' that holds base
-directory for register(s). A group a databases may be put in separate
-register in directory root/reg by using db name 'reg/db1' ... 'reg/dbN'.
+For searches, do not truncate more than at most 'truncmax' terms in one
+single term with right-truncation/regular attribute. By default, 'truncmax',
+is 10000.
 
---- 1.1.1 2002/03/21
+Bug #781: Easier tracking of result sets. We only do this when mkstemp
+is available (most moderun Unixes supports this). The PID is included
+in filename : tempdir/zrs_PID_XXXXXX.
 
-Fixes for Digital Unix
+Added support for specification of staticrank for grs-class of filters.
+This is enabled by using 'staticrank indexname' in .abs. Contents of
+indexname (elm ... indexname:w) is then used as value for staticrank.
 
-Implemented hits per term using USR:SearchResult-1.
+Implemented sorting via the ISAMB system. To enable, use sortindex:i in
+zebra.cfg.
 
-New Zebra API. Locking system re-implemented.
+Added special retrieval support for sort keys. These keys can also be
+fetched using zebra::index:field:s   
 
---- 1.1.stable 2002/02/20
+Added support for specification of approximative limits for whole query.
+This is specified as attribute type 12. Semantics is the same as
+estimatehits in zebra.cfg.
 
-Rank weight can be controlled with attribute type 9. Default
-value is 34. Recommended values between 1-36.
+--- 2.0.6 2006/11/28
 
---- 1.1 2001/10/25
+Fixed bug #736: Updates gets slower.
 
-Updated for YAZ version 1.8.
+Fixed bug #735: Delete fails to process rest of file after a record that
+does not exist,
 
-Added support for termsets - a result set of terms matching
-a given query. For @attr 8=<set> creates termset named <set>.
+Added RPM package for Zebra 2.
 
-Added support for raw retrieval. Element Set Name R forces the
-text filter which returns the record in its original form.
+Improved indexing speed for large documents.
 
-Added numerical sort - triggered by structure=numeric (4=109).
+Added support for special utility retrieval zebra:: which offers retrieval
+of fundamental properties for record, such as indexed terms, raw record,
+and system record ID.
 
-Remote record import using Z39.50 Extended Services and Segments.
+--- 2.0.4 2006/10/16
 
-Fixed bug where updating a database with user-defined attributes
-could corrupt the register (bad storeKeys).
+Fixed bug #47: Commit needs to check for roll-back.
 
-Multi-threaded version.
+Fixed bug #672: Trailing characters in password are ignored
 
-Fixed bug regarding proximity.
+Added extra presence check for tcl.h, because some systems have
+tclConfig.sh installed even though Tcl C headers are missing.
 
-Documentation updates.
+Optimized melm performance.
 
-Fixed bug in record retrieval module that occured on 64-bit OSF 
-architectures.
+Do not use sync(2) during commit (but rely on sync'd individual files).
 
---- 1.0.1 2000/2/10
+Fixed bug in ISAMB's utility function decode_ptr. With gcc -O3 on some
+platforms the src argument was not updated. Problem was compiler
+optimization due to strict aliasing rules.
 
-Fixed bug in makefile for WIN32.
+--- 2.0.2 2006/09/22
 
-Fixed bug in configure script - used bash-specific features.
+Bug fixes: #638, #647, #657, #669.
 
---- 1.0 1999/12/10
+Implement skip of 0 hit counts in scan. Useful for scan operations
+limited by a result set.
 
-Added support for multiple records in one file for filter grs.sgml.
+Honor position attribute, i.e. allow first-in-field search. To
+enable this, "firstinfield 1" must be given for an index in
+default.idx. Enabled in tab/default.idx for w. At this stage
+first-in field is supported for phrase/and-list/or-list searches
 
-Changed record index structure. New layout is incompatible with
-previous releases. Added setting "recordcompression" to control
-compression of records. Possible values are "none" (no
-compression) and bzip2 (compression using libbz2).
+Common stream reader interface for record filters (struct ZebraRecStream).
 
-Added XML transfer syntax support for retrieval of structured records.
-Schema in CompSpec is recognised in retrieval of structured records.
+Debian package fix: packages idzebra-2.0 + libidzebra-2.0-modules did
+not depend properly on sub packages.
 
-Changed Tcl record filter so that it attemps to read  <filt>.tflt. If
-that fails, the filter reads the file <filt>.flt (regx style filter).
+--- 2.0.0 2006/08/14
 
-Implemented new Tcl record filter -  use grs.tcl.<filter> to enable it.
-Zebra's configure script automatically attempts to locate Tcl. For
-manual Tcl configuration use option --with-tclconfig=<path> to specify
-where Tcl's library files are located.
+New record filter (record type) 'alvis' which uses XSLT transformations
+to drive both indexing as well as retrieval. See example configuration in the
+'example/alvis-oai' directory.
 
-Implemented "compression" of Dictionary and ISAM system. Dictionary
-format HAS changed.
+'isamb' is now the default ISAM system. In Zebra 1.3, the default ISAM was
+'isamc'. The type used can still be configured with the 'isam' setting
+in 'zebra.cfg'.
 
-Added "tagsysno" directive to zebra.cfg to control under which tag the
-system ID is placed. Use tagsysno: 0 to disable Zebra's system number
-entirely.
+Index structure is now 64-bit based, also on 32 bit systems. 
+There are no more 2GB register file limits.
 
-Added "tagrank" as above.
+Extended search result tuning. Approximate limit for terms can be enabled
+and specified with attribute 11. The (approx or exact) hit count is returned
+as part of the search response as in 1.3 series. The subqueryID of a search
+term hit count can be specified with attribute 10.
 
-Changed file naming scheme for register files from <name>.mf.<no> to
-<name>-<no>.mf.
+Zebra uses string attributes for indexing internally. Using set+numeric
+use attribute can still be used. This is a search-only conversion which
+inspects '*.att'-set files as indicated using attset-directives in 'zebra.cfg'.
+'attset' references are no longer required, but when used they deserve
+as "check" for that the index names used are also present in '*.att'.
 
-Implemented "position"-flag for register type (as defined in
-default.idx). When set to zero no position (or seqence number) is
-saved in register for each word occurrence, thus saving some register
-space.
+Zebra record filters (record type handlers) may be built as loadable
+modules (.so's) on Unix. In particular the Zebra 2.0 Debian package uses
+separate packages for each of them. This also means that zebra programs
+such as zebraidx is no longer depending on Tcl/other..
 
-Implemented database mapping. Using mapdb one can specify a database
-to be mapped to one or more physical databases. Usage:
-mapdb <fromdb> <todb> ..
+Documentation updates, especially on query structure and syntax, SRU, 
+XSLT support, alvis filter module, and many added examples.
 
-Added SOIF-filter. Thanks to Peter Valkenburg.
+Improved logging of the 'zebrasrv' and 'zebraidx' binaries.
 
-For the regx-filter "end element -record" may trigger a mark-of-record
-if outer level is reached.
+Improved debian package structure.
 
-Tag sets may be typed in the reference to it. From the .abs-file the
-"tagset" directive takes a third optional integer type for the tag set
-referenced. From a .tag-file the "include" directive takes a third
-optional type as well. The old "type" directive in the tag set itself
-is still recognized but acts as the default type for the tag set.
-Zebra supports the specification of arbitrary attributes sets, schemas
-and tag sets, because of the change in YAZ' OID management system.
-
-Fixed bug in Sort that caused it NOT to use character mapping as it
-should.
-
-Zebra now uses GNU configure to generate Makefile(s).
-
-Added un-optimised support for left and left/right truncation attributes.
-
-Added support for relational operators on text when using RPN queries.
-
-Added support for sort specifications in RPN queries. Type 7 specifies
-'sort' where value 1=ascending, value 2=descending. The use attribute
-specifies the field criteria as usual.  The term specifies priority
-where 0=first, 1=second, ...
-
-Changed the way use attributes are specified in the recordId
-specification.
-
-Maximum number of databases in one Zebra register increased.
-
-New setting, databasePath, which specifies that first directory during
-update traversal is the database name (instead of a fixed one).
-
-New setting, explainDatabase, which specifies that databases are
-EXPLAIN aware.
-
-Modified Zebra so that it works with ASN.1 compiled code for YAZ.
-
-Implemented EXPLAIN database maintenance. Zebra automatically
-generate - and update CategoryList, TargetInfo, DatabaseInfo,
-AttributeSetInfo and AttributeDetails records at this stage. The
-records may be transferred as GRS-1, SUTRS or Explain.
-
-Fixed register spec so that colon isn't treated as size separator
-unless followed by [0-9+-] in order to allow DOS drive specifications.
-
-Fixed two bugs in ISAMC system.
-
-Changed the way Zebra keeps its maintenance information about attribute
-sets, available attributes, etc.. Records in "SGML" notation using an
-EXPLAIN schema is now used when appropriate.
-
-Bug fix: Index didn't handle update/insert/delete of the same record
-(i.e. same recordId) in one run (one invocation of zebraidx). Only the
-first occurence of a record is considered.
-
-Most searches now return correct number of hits.
-
-New modular ranking system. Interested programmers are encouraged to
-inspect rank1.c and improve the algorithm.
-
-Bug fix: Lock files weren't removed as they should on NT.
-
-Implemented Z39.50 Sort. Zebra's sort handler uses use attributes to
-specify a "sort register". Refer to the gils sample records which refer
-to index type "s" which is specified as "sort" in the default.idx file.
-Each sort criteria can either be Ascending or Descending and at most
-three sort elements can be specified.  
-
-Bug fix: Character mapping didn't work for text files.
-
---- 1.0b1 1998/1/29
-
-Simple ranked searches now return correct number of hits.
-
-The test option (-s) only makes a read-lock on the index as well
-as using read-only operations anywhere.
-
-Moved towards generic character mapping. Configuration file default.idx
-specifies character map files for register types w, p, u, etc.
-
-Implemented "begin variant" for the sgml.regx - filter.
-
-Fixed a few memory leaks.
-
-Added support for C++, headers uses extern "C" for public definitions.
-
-Bug fix: The show records facility (-s) only displayed information for
-the first record in a file (and not for every record in the file).
-
-Added option "-f <n>" to limit the logging of record operations. After
-<n> records has been processed no logging is performed (unless errors
-occur).
-
-Bug fix: the compressed ISAM system didn't handle update operations
-correctly.
-
-Added setting, "maxResultSetSize", to hold the number of records to 
-save in a result set.
-
-Bug fix: Complete phrase did't work for search operations.
-
-Bug fix: temporary result sets weren't deleted.
-
-Reduced disk space for saved keys (storeKeys = 1).
-
-Added optional, physical ANY (key replication)
-
-Implemented proximity operator in search.
-
-Bug fix: the path name buffers used by file match traversal routines
-have been extended to support long file names.
-
-New C(ompressed) ISAM system. To enable it, specify "isam: c" in the
-configuration file. The resulting register without "storeKeys" is about
-half the size, and the memory used by zebraidx during phase 2 (merge) is
-reduced to a minimum.
-
-Reworked the way Regexp-2 queries with error tolerance are handled and
-specified. The documentation has been updated accordingly.
-
-Bug fix: Zebrasrv didn't search correctly when queries contained masking
-characters. This bug was introduced in 1.0a8.
-
-Zebrasrv now tag records with the proper database name.
-
-New settings, memMax and keyTmpDir.
-
-Changed name of setting lockDir (previously called lockPath) and
-setTmpDir (previously called tempSetPath).
-
-Generalized and changed record type specifications. In short, there are:
-       text                plain SUTRS
-       grs.sgml            structured, "SGML-like" syntax
-       grs.regx.<filter>   structured, Regular expression filter
-       grs.marc.<abs>      Reads *MARC records in the ISO2709 format. <abs>
-                           is the name of an abstract syntax file.                           
-Bug fix: Result sets weren't sorted in operations involving boolean
-operations with "ranked" operands.
-
---- 1.0a8 1996/6/6
-
-Added national character-handling subsystem.
-
-Various fixes.
-
-Small modifications to input filters and profiles.
-
-Added support for SOIF syntax (with private OID).
-
---- 1.0a7 1996/5/16
-
-Fixed buffer-size problem in indexing.
-
-Added compression to temporary files for updating.
-
-Added phrase registers.
-
-Added dynamic mapping of search attribute to multiple termlists (ANY).
-
-Scan support in multiple databases/registers.
-
-Configuration settings are case-insensitive and single dash (-)
-characters are ignored in comparisons.
-
-The index processing ignores empty files - warning given.
-
-New option to zebraidx (-V) displays version information.
-
---- 1.0a6 1996/2/24
-
-Fixed problem in file-update system.
-
-Fixed problem in shadow system; register was sometimes corrupted after
-a commit operation.
-
---- 1.0a5 1996/2/10
-
-Fixed problems in the ISAM subsystem. Caused difficulties when updating
-existing registers.
-
-Fixed small problem in SUTRS-filter. A newline was sometimes inserted before
-the rank and record number.
-
-Fixed bug in the isam subsystem - caused a malfunction when accessing
-words which occurred more than 10000 times.
-
-Distribution should now include YAZ (Z39.50 protocol stack) to simplify
-installation.
-
-Server can now run under inetd. Use option -i, and -w <directory> to
-set working directory to desired location.
-
-New zebraidx command: clean - removes temporary shadow files.
-
-Fixed bug in ISAM system. Occurred rarely during register updates.
-
-Logging during index merge phase is improved. The remaining running
-time is estimated.
-
-Temporary files generated by zebraidx are removed after each run.
-
-Bug fix: Dictionary didn't handle 8-bit characters correctly; was obvious
-when doing scan operations in dictionaries with European characters.
-
---- 1.0a4 1996/01/11
-
-A whole slew of updates, to make the first publicized release. Get the doc
-and check it out.
-
---- 1.0a3 1995/12/06
-
-Memory-problems in ISAM fixed. More blocktypes added to the default setup
-to increase performance on larger databases.
-
-Various minor changes in data management system.
-
---- 1.0a2 1995/12/05
-
-A couple of portability-problems resolved.
-
-Changed some malloc() to xmalloc().
-
---- 1.0a1 1995/11/28
-
-First release.
+--- 1.3.16 2004/08/16