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