More news
[idzebra-moved-to-github.git] / NEWS
1 --- 1.3.34 2006/02/23
2
3 Fixed bug #465: dup fields in ISO2709 retrieval.
4
5 Another fix for X-Path indexing. The previous fix, unfortunately, indexed
6 too much. Bug #460.
7   
8 --- 1.3.32 2005/11/08
9
10 Fix X-Path attribute indexing. Bug #431.
11
12 --- 1.3.30 2005/10/27
13
14 Fixed bug #415: Strange truncation behavior.
15
16 Added 'melm' directive to absyn format to simplify config files
17 for MARC-style databases. See tab/marc21.abs for an example.
18
19 Added support for special slement set _sysno_ which returns a
20 record ID for a record packed as a SUTRS record.
21
22 --- 1.3.28 2005/05/30
23
24 Documented authentication facility in Zebra. Added zebra.cfg directive
25 'passwd.c' which specifies user accounts file with encrypted passwords. The
26 directive 'passwd' specifies user accounts file with clear-text passwords.
27 The previous version of Zebra used plain/clear text depending on
28 configuration automatically. That caused upgrade trouble. Bug #356.
29
30 --- 1.3.26 2005/05/24
31
32 Depend on YAZ 2.0.18 or later in configure.
33
34 Fixed crash that could occur if ES update transaction failed.
35
36 Configure enables the use of the crypt API - if available.
37
38 Fixed bug #304: Fuzzy search regExpr-2 did not use proper error distance
39 of 1.
40
41 Fixed bug #305: Scan now handles negative preferred-position-in-response.
42
43 Implemented the 'equivalent' directive for .chr-files.
44
45 --- 1.3.24 2005/02/09
46
47 For configure, support threading again. It was removed by mistake
48 for 1.3.18-1.3.22.
49
50 Fixed bug #262: spaces in control fields in MARC returned.
51
52 Fixed bug #259: Second indicator lost in MARC records
53
54 --- 1.3.22 2005/01/23
55
56 Fixed bug #253: Setting group.database not honored
57
58 Fixed bug #252: Sort does not work.
59
60 Fixed bug #248: hit counts in combinatoric (and) searches in specific ..
61
62 --- 1.3.20 2005/01/17
63
64 Fixed bug #245: Time for getting records changes a lot based on record
65 position.
66
67 Fixed bug #235: weird x-path results.
68
69 Avoid crash in ISAMB when isamb_pp_open gets ISAMB_POS = 0. In
70 this case EOF (no entries) is signalled. It fixes problem with
71 terms being deleted. See bug #109.
72
73 Fixed bug #169: Phrase term counts does not work. The bug exists in
74 Zebra 1.3.16-1.3.18.
75
76 Added mechanism to ignore leading articles when doing full-field indexing,
77 based on the character map files. See the manual for further discussion.
78
79 --- 1.3.18 2004/08/20
80
81 Fixed bug in record management. Releasing blocks could result in
82 partial read.
83
84 Fixed bug in isam:b. A tree split could result in a lost item.
85
86 --- 1.3.17 2004/08/17
87
88 Add IDZebra.i to dist so that Perl extension builds again.
89
90 --- 1.3.16 2004/08/16
91
92 Added facility to make attibutes in grs.regx and grs.tcl filter using the
93 data command with argument -attribute <name> . The content of data is
94 the value of the attribute. This command should be used inside a
95 begin element , end element section.
96
97 Update zebra.nsi to NSIS 2.
98
99 Added a new 'cut' directive to charmaps (.chr files) which specifies that
100 only characters after the cutting char should be indexed.
101
102 Update Perl internals so that it matches the current Zebra API.
103 The recordGroup structure is no longer available. A group of resources
104 can still be referenced by setting groupName=>..  in various methods.
105
106 Maximum number of records to be sorted in a result set can be
107 specified by setting "sortmax". Default is 1000.
108
109 Allow use of string use attributes for regular attribute sets. The
110 name matches the name given in the attribute set file. All strings
111 starting with / are considered X-Path as usual.
112
113 Fixed bug in grs.regx. filter . 'end element' could pop off top tag
114 element for XML tree. It may only pop off if -record is given.
115
116 Added grs.danbib filter - for Danish Bibliographic Centre.
117
118 Rename CHANGELOG to NEWS.
119
120 For text filter, return only header if elementSetName=H . elementSetName=R
121 returns contents only. Other elementSetName returns both header+content.
122
123 Added test for charmap and rusmarc.
124
125 Added feature charmaps (.chr) so that characters may be specified in
126 \LXXXX HEX notation.
127
128 Fixed problem with encoding directive for charmap(.chr) files.
129
130 Allow Remote insert/delete/replace/update with record, recordIdNumber
131 (sysno) and/or recordIdOpaque(user supplied record Id). If both
132 IDs are omitted internal record ID match is assumed (recordId: - in
133 zebra cfg).
134
135 --- 1.3.15 2004/01/15
136
137 Fix bug. X-Path attribute expressions with spaces in them now works.
138
139 Fix base address for MARC output.
140
141 --- 1.3.14 2003/11/29
142
143 Fix bug with shadow and result set handling.
144
145 Implement MARCXML to ISO2709 conversion.
146
147 --- 1.3.13 2003/09/26
148
149 Add missing examples for Windows install.
150
151 Fix bug in regx filter to make it "greedy" again. This bug appeared
152 in version 1.3.12.
153
154 Fix a few tests.
155
156 --- 1.3.12 2003/09/08
157
158 Fix XML error handling. Stop XML parse immediately if XML parse error
159 occur (i.e.  produce one error only).
160
161 Zebra ignores "unsupported use attribute" for individual databases
162 when search multiple databases (unless all databases fail).
163
164 New filter grs.marcxml which works like grs.marc but produces MARCXML.
165
166 Added support for database deletion. It is possible to create/drop
167 a database from zebraidx utility. Note: only for isam:b.
168
169 Write zebrasrv.pid to lockdir.
170
171 Bug fix: result sets were not recovered correctly. Had to
172 add ODR handle for zebra_search_RPN in order to make it work.
173
174 Fixed a bug in regx filters that didn't do anchors (^) correctly.
175
176 Fixed a bug in searches with X-Path searches sometimes giving "extra"
177 hits.
178
179 Zebra server checks for zebrasrv.pid and refuses to start if it is already
180 locked by another (running) zebrasrv.
181
182 Fixed a bug with text being chunked in pieces for the grs.xml filter.
183
184 --- 1.3.11 2003/04/25
185
186 xelm code updates. xelm works regardless state of 'xpath enable/disable'
187 Avoid -L/usr/lib since that is already default library path.
188
189 Allow multiple updates within one transaction.
190
191 Fixed a bug with >2GB files (overflow in integer expression).
192
193 --- 1.3.10 2003/04/01
194
195 Fix linker error for Perl module.
196
197 Fix bug in and operation which in some cases could result in "extra"
198 hits. Bug was introduced in 1.3.5.
199
200 Fix bug in handling of schema conversion when producing numeric tags.
201
202 --- 1.3.9 2003/03/27
203
204 Zvrank updates. 
205
206 Add missing files doc/zvrank.txt and doc/marc_indexing.xml.
207
208 --- 1.3.8 2003/03/26
209
210 Zvrank: an experimental ranking algorithm. See doc/zvrank.txt and
211 source in index/zvrank.c. Enable this by using rank: zvrank in zebra.cfg.
212 Contributed by Johannes Leveling <Johannes.Leveling at fernuni-hagen.de>
213
214 livrank: another experimental ranking algorithm. Source in livcode.c.
215 Enable this by using rank: livrank in zebra.cfg and use -DLIV_CODE=1
216 for CFLAGS.
217 Contributed by Pete Mallinson, University of Liverpool. 
218
219 Advanced MARC indexing. See doc/marc_indexing.xml
220  Oleg Kolobov <oleg at lib.tpu.ru>
221
222 Perl API updates and fixes. 
223  Peter Popovics <pop at technomat.hu>
224
225 Fixed 'zebraidx delete'.
226
227 Implemented 'zebraidx clean'.
228
229 64-bit offsets for register files on WIN32 (no 2 GB limit).
230
231 Fixed a few memory leaks WRT sorting.
232
233 --- 1.3.7 2003/02/27
234
235 Fixed error handling : error code was not properly returned.
236
237 Support Truncation 104 (CCL).
238
239 --- 1.3.6 2003/02/25
240
241 Added missing source files for perl extension.
242
243 --- 1.3.5 2003/02/23
244
245 Implemented xelm directive.
246
247 Updated for newer version of YAZ (introduction of string schema).
248
249 Directory examples/zthes now part of distribution (was missing
250 in previous release).
251
252 New .abs directive, systag, that control where to put retrieval
253 information. The directive takes two arguments: system tag, element name.
254 System tag is one of : rank, sysno, size.
255
256 --- 1.3.4 2002/11/26
257
258 Perl Filter and Perl API. By Peter Popovics.
259
260 For zebra.cfg, if no profilePath is specified, directory
261  (prefix)/share/idzebra/tab
262 is used.
263
264 Zebra Examples in examples . Zebra tests in test.
265
266 Bug fix: sort index was not properly modified on 
267 record updates/deletes.
268
269 Fix handling of character entities for sgml filter.
270
271 Move data1 to Zebra (used to be part of YAZ).
272
273 --- 1.3.3 2002/10/05
274
275 Fix character encoding of scan response terms.
276
277 Fix character decoding of scan request terms.
278
279 Fix ESpec handling (requires YAZ 1.9.1)
280
281 Fix searches for complete fields.
282
283 --- 1.3.2 2002/09/09
284
285 When name zebra is used in a filename or directory 'idzebra' is used
286 instead to avoid confusion with GNU zebra (routing software).
287
288 Zebra server stops with a fatal error if config file cannot be read.
289
290 New config setting, followLinks, that controls whether update of files
291 should follow symbolic. Set it to 1 (for enable) or 0 (to disable).
292 By default symbolic links are followed.
293
294 Fix MARC transfer . MARC fields had wrong data for multiple fields.
295
296 XML record reader moved from YAZ to Zebra, to make YAZ less 
297 dependant on external libraries.
298
299 Zebra uses yaz_iconv which is mini iconv library supporting UTF-8,
300 UCS4, ISO-8859-1. This means that Zebra does UNICODE even
301 on systems that doesn't offer iconv.
302
303 XML record reader supports external system entities.
304
305 --- 1.3.1 2002/08/20
306
307 New .abs-directive "xpath" that takes one argument: "enable"
308 or "disable" to enable and disable XPath -indexing. If no "xpath"
309 direcive is found in .abs-file , XPath-indexing is disabled to ensure
310 backwards compatibility. For missing .abs-files XPath-indexing is
311 enabled so that such records are searchable.
312
313 Zebra warns about missing .abs-file only once (for each type).
314
315 Fixed a bug in file update where already-inserted files could
316 be treated as "new".
317
318 --- 1.3.0 2002/08/05
319
320 Zebra license changed to GNU GPL.
321
322 XPath-like queries used when RPN string attributes are used, eg.
323    @attr 1=/portal/title sometitle
324    @attr 1=/portal/title[@xml:lang=da] danishtitle
325    @attr 1=/portal/title/@xml:lang da
326    @attr 1=//title sometitle
327
328 Zebra uses UTF-8 internally:
329 1) New setting "encoding" for zebra.cfg that specifies encoding for
330 OCTET terms in queries and record encoding for most transfer syntaxes
331 (except those that use International Strings, such as GRS-1).
332 2) The encoding of International strings is UTF-8 by default. It
333 may be changed by character set negotiation. If character set
334 negotiation is in effect and if records are selected for conversion
335 these'll be converted to the selected character set - thus overriding
336 the encoding setting in zebra.cfg.
337 3) New directive "encoding" in .abs-files. This specifies the external
338 character encoding for files indexed by zebra. However, if records
339 themselves have an XML header that specifies and encoding that'll be used
340 instead.
341
342 XML filter (-t grs.xml).
343
344 Multiple registers. New setting in resource 'root' that holds base
345 directory for register(s). A group a databases may be put in separate
346 register in directory root/reg by using db name 'reg/db1' ... 'reg/dbN'.
347
348 --- 1.1.1 2002/03/21
349
350 Fixes for Digital Unix
351
352 Implemented hits per term using USR:SearchResult-1.
353
354 New Zebra API. Locking system re-implemented.
355
356 --- 1.1.stable 2002/02/20
357
358 Rank weight can be controlled with attribute type 9. Default
359 value is 34. Recommended values between 1-36.
360
361 --- 1.1 2001/10/25
362
363 Updated for YAZ version 1.8.
364
365 Added support for termsets - a result set of terms matching
366 a given query. For @attr 8=<set> creates termset named <set>.
367
368 Added support for raw retrieval. Element Set Name R forces the
369 text filter which returns the record in its original form.
370
371 Added numerical sort - triggered by structure=numeric (4=109).
372
373 Remote record import using Z39.50 Extended Services and Segments.
374
375 Fixed bug where updating a database with user-defined attributes
376 could corrupt the register (bad storeKeys).
377
378 Multi-threaded version.
379
380 Fixed bug regarding proximity.
381
382 Documentation updates.
383
384 Fixed bug in record retrieval module that occured on 64-bit OSF 
385 architectures.
386
387 --- 1.0.1 2000/2/10
388
389 Fixed bug in makefile for WIN32.
390
391 Fixed bug in configure script - used bash-specific features.
392
393 --- 1.0 1999/12/10
394
395 Added support for multiple records in one file for filter grs.sgml.
396
397 Changed record index structure. New layout is incompatible with
398 previous releases. Added setting "recordcompression" to control
399 compression of records. Possible values are "none" (no
400 compression) and bzip2 (compression using libbz2).
401
402 Added XML transfer syntax support for retrieval of structured records.
403 Schema in CompSpec is recognised in retrieval of structured records.
404
405 Changed Tcl record filter so that it attemps to read  <filt>.tflt. If
406 that fails, the filter reads the file <filt>.flt (regx style filter).
407
408 Implemented new Tcl record filter -  use grs.tcl.<filter> to enable it.
409 Zebra's configure script automatically attempts to locate Tcl. For
410 manual Tcl configuration use option --with-tclconfig=<path> to specify
411 where Tcl's library files are located.
412
413 Implemented "compression" of Dictionary and ISAM system. Dictionary
414 format HAS changed.
415
416 Added "tagsysno" directive to zebra.cfg to control under which tag the
417 system ID is placed. Use tagsysno: 0 to disable Zebra's system number
418 entirely.
419
420 Added "tagrank" as above.
421
422 Changed file naming scheme for register files from <name>.mf.<no> to
423 <name>-<no>.mf.
424
425 Implemented "position"-flag for register type (as defined in
426 default.idx). When set to zero no position (or seqence number) is
427 saved in register for each word occurrence, thus saving some register
428 space.
429
430 Implemented database mapping. Using mapdb one can specify a database
431 to be mapped to one or more physical databases. Usage:
432 mapdb <fromdb> <todb> ..
433
434 Added SOIF-filter. Thanks to Peter Valkenburg.
435
436 For the regx-filter "end element -record" may trigger a mark-of-record
437 if outer level is reached.
438
439 Tag sets may be typed in the reference to it. From the .abs-file the
440 "tagset" directive takes a third optional integer type for the tag set
441 referenced. From a .tag-file the "include" directive takes a third
442 optional type as well. The old "type" directive in the tag set itself
443 is still recognized but acts as the default type for the tag set.
444  
445 Zebra supports the specification of arbitrary attributes sets, schemas
446 and tag sets, because of the change in YAZ' OID management system.
447
448 Fixed bug in Sort that caused it NOT to use character mapping as it
449 should.
450
451 Zebra now uses GNU configure to generate Makefile(s).
452
453 Added un-optimised support for left and left/right truncation attributes.
454
455 Added support for relational operators on text when using RPN queries.
456
457 Added support for sort specifications in RPN queries. Type 7 specifies
458 'sort' where value 1=ascending, value 2=descending. The use attribute
459 specifies the field criteria as usual.  The term specifies priority
460 where 0=first, 1=second, ...
461
462 Changed the way use attributes are specified in the recordId
463 specification.
464
465 Maximum number of databases in one Zebra register increased.
466
467 New setting, databasePath, which specifies that first directory during
468 update traversal is the database name (instead of a fixed one).
469
470 New setting, explainDatabase, which specifies that databases are
471 EXPLAIN aware.
472
473 Modified Zebra so that it works with ASN.1 compiled code for YAZ.
474
475 Implemented EXPLAIN database maintenance. Zebra automatically
476 generate - and update CategoryList, TargetInfo, DatabaseInfo,
477 AttributeSetInfo and AttributeDetails records at this stage. The
478 records may be transferred as GRS-1, SUTRS or Explain.
479
480 Fixed register spec so that colon isn't treated as size separator
481 unless followed by [0-9+-] in order to allow DOS drive specifications.
482
483 Fixed two bugs in ISAMC system.
484
485 Changed the way Zebra keeps its maintenance information about attribute
486 sets, available attributes, etc.. Records in "SGML" notation using an
487 EXPLAIN schema is now used when appropriate.
488
489 Bug fix: Index didn't handle update/insert/delete of the same record
490 (i.e. same recordId) in one run (one invocation of zebraidx). Only the
491 first occurence of a record is considered.
492
493 Most searches now return correct number of hits.
494
495 New modular ranking system. Interested programmers are encouraged to
496 inspect rank1.c and improve the algorithm.
497
498 Bug fix: Lock files weren't removed as they should on NT.
499
500 Implemented Z39.50 Sort. Zebra's sort handler uses use attributes to
501 specify a "sort register". Refer to the gils sample records which refer
502 to index type "s" which is specified as "sort" in the default.idx file.
503 Each sort criteria can either be Ascending or Descending and at most
504 three sort elements can be specified.  
505
506 Bug fix: Character mapping didn't work for text files.
507
508 --- 1.0b1 1998/1/29
509
510 Simple ranked searches now return correct number of hits.
511
512 The test option (-s) only makes a read-lock on the index as well
513 as using read-only operations anywhere.
514
515 Moved towards generic character mapping. Configuration file default.idx
516 specifies character map files for register types w, p, u, etc.
517
518 Implemented "begin variant" for the sgml.regx - filter.
519
520 Fixed a few memory leaks.
521
522 Added support for C++, headers uses extern "C" for public definitions.
523
524 Bug fix: The show records facility (-s) only displayed information for
525 the first record in a file (and not for every record in the file).
526
527 Added option "-f <n>" to limit the logging of record operations. After
528 <n> records has been processed no logging is performed (unless errors
529 occur).
530
531 Bug fix: the compressed ISAM system didn't handle update operations
532 correctly.
533
534 Added setting, "maxResultSetSize", to hold the number of records to 
535 save in a result set.
536
537 Bug fix: Complete phrase did't work for search operations.
538
539 Bug fix: temporary result sets weren't deleted.
540
541 Reduced disk space for saved keys (storeKeys = 1).
542
543 Added optional, physical ANY (key replication)
544
545 Implemented proximity operator in search.
546
547 Bug fix: the path name buffers used by file match traversal routines
548 have been extended to support long file names.
549
550 New C(ompressed) ISAM system. To enable it, specify "isam: c" in the
551 configuration file. The resulting register without "storeKeys" is about
552 half the size, and the memory used by zebraidx during phase 2 (merge) is
553 reduced to a minimum.
554
555 Reworked the way Regexp-2 queries with error tolerance are handled and
556 specified. The documentation has been updated accordingly.
557
558 Bug fix: Zebrasrv didn't search correctly when queries contained masking
559 characters. This bug was introduced in 1.0a8.
560
561 Zebrasrv now tag records with the proper database name.
562
563 New settings, memMax and keyTmpDir.
564
565 Changed name of setting lockDir (previously called lockPath) and
566 setTmpDir (previously called tempSetPath).
567
568 Generalized and changed record type specifications. In short, there are:
569        text                plain SUTRS
570        grs.sgml            structured, "SGML-like" syntax
571        grs.regx.<filter>   structured, Regular expression filter
572        grs.marc.<abs>      Reads *MARC records in the ISO2709 format. <abs>
573                            is the name of an abstract syntax file.                           
574 Bug fix: Result sets weren't sorted in operations involving boolean
575 operations with "ranked" operands.
576
577 --- 1.0a8 1996/6/6
578
579 Added national character-handling subsystem.
580
581 Various fixes.
582
583 Small modifications to input filters and profiles.
584
585 Added support for SOIF syntax (with private OID).
586
587 --- 1.0a7 1996/5/16
588
589 Fixed buffer-size problem in indexing.
590
591 Added compression to temporary files for updating.
592
593 Added phrase registers.
594
595 Added dynamic mapping of search attribute to multiple termlists (ANY).
596
597 Scan support in multiple databases/registers.
598
599 Configuration settings are case-insensitive and single dash (-)
600 characters are ignored in comparisons.
601
602 The index processing ignores empty files - warning given.
603
604 New option to zebraidx (-V) displays version information.
605
606 --- 1.0a6 1996/2/24
607
608 Fixed problem in file-update system.
609
610 Fixed problem in shadow system; register was sometimes corrupted after
611 a commit operation.
612
613 --- 1.0a5 1996/2/10
614
615 Fixed problems in the ISAM subsystem. Caused difficulties when updating
616 existing registers.
617
618 Fixed small problem in SUTRS-filter. A newline was sometimes inserted before
619 the rank and record number.
620
621 Fixed bug in the isam subsystem - caused a malfunction when accessing
622 words which occurred more than 10000 times.
623
624 Distribution should now include YAZ (Z39.50 protocol stack) to simplify
625 installation.
626
627 Server can now run under inetd. Use option -i, and -w <directory> to
628 set working directory to desired location.
629
630 New zebraidx command: clean - removes temporary shadow files.
631
632 Fixed bug in ISAM system. Occurred rarely during register updates.
633
634 Logging during index merge phase is improved. The remaining running
635 time is estimated.
636
637 Temporary files generated by zebraidx are removed after each run.
638
639 Bug fix: Dictionary didn't handle 8-bit characters correctly; was obvious
640 when doing scan operations in dictionaries with European characters.
641
642 --- 1.0a4 1996/01/11
643
644 A whole slew of updates, to make the first publicized release. Get the doc
645 and check it out.
646
647 --- 1.0a3 1995/12/06
648
649 Memory-problems in ISAM fixed. More blocktypes added to the default setup
650 to increase performance on larger databases.
651
652 Various minor changes in data management system.
653
654 --- 1.0a2 1995/12/05
655
656 A couple of portability-problems resolved.
657
658 Changed some malloc() to xmalloc().
659
660 --- 1.0a1 1995/11/28
661
662 First release.