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