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