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