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