Updated LICENSE and CHANGELOG.
[idzebra-moved-to-github.git] / CHANGELOG
1 The software was split in two products Zebra (for testing,
2 non-profit use) and the commercial product Z'mbol. Zebra no
3 longer supports INDEX UPDATES, i.e. zebraidx should be invoked only
4 once for each register. Refer to LICENSE.zebra for more info.
5
6 Added support for multiple records in one file for filter grs.sgml.
7
8 Changed record index structure. New layout is incompatible with
9 previous releases. Added setting "recordcompression" to control
10 compression of records. Possible values are "none" (no
11 compression) and bzip2 (compression using libbz2).
12
13 Added XML transfer syntax support for retrieval of structured records.
14 Schema in CompSpec is recognised in retrieval of structured records.
15
16 Changed Tcl record filter so that it attemps to read  <filt>.tflt. If
17 that fails, the filter reads the file <filt>.flt (regx style filter).
18
19 Implemented new Tcl record filter -  use grs.tcl.<filter> to enable it.
20 Zebra's configure script automatically attempts to locate Tcl. For
21 manual Tcl configuration use option --with-tclconfig=<path> to specify
22 where Tcl's library files are located.
23
24 Implemented "compression" of Dictionary and ISAM system. Dictionary
25 format HAS changed.
26
27 Added "tagsysno" directive to zebra.cfg to control under which tag the
28 system ID is placed. Use tagsysno: 0 to disable Zebra's system number
29 entirely.
30
31 Added "tagrank" as above.
32
33 Changed file naming scheme for register files from <name>.mf.<no> to
34 <name>-<no>.mf.
35
36 Implemented "position"-flag for register type (as defined in
37 default.idx). When set to zero no position (or seqence number) is
38 saved in register for each word occurrence, thus saving some register
39 space.
40
41 Implemented database mapping. Using mapdb one can specify a database
42 to be mapped to one or more physical databases. Usage:
43 mapdb <fromdb> <todb> ..
44
45 Added SOIF-filter. Thanks to Peter Valkenburg.
46
47 For the regx-filter "end element -record" may trigger a mark-of-record
48 if outer level is reached.
49
50 Tag sets may be typed in the reference to it. From the .abs-file the
51 "tagset" directive takes a third optional integer type for the tag set
52 referenced. From a .tag-file the "include" directive takes a third
53 optional type as well. The old "type" directive in the tag set itself
54 is still recognized but acts as the default type for the tag set.
55  
56 Zebra supports the specification of arbitrary attributes sets, schemas
57 and tag sets, because of the change in YAZ' OID management system.
58
59 Fixed bug in Sort that caused it NOT to use character mapping as it
60 should.
61
62 Zebra now uses GNU configure to generate Makefile(s).
63
64 Added un-optimised support for left and left/right truncation attributes.
65
66 Added support for relational operators on text when using RPN queries.
67
68 Added support for sort specifications in RPN queries. Type 7 specifies
69 'sort' where value 1=ascending, value 2=descending. The use attribute
70 specifies the field criteria as usual.  The term specifies priority
71 where 0=first, 1=second, ...
72
73 Changed the way use attributes are specified in the recordId
74 specification.
75
76 Maximum number of databases in one Zebra register increased.
77
78 New setting, databasePath, which specifies that first directory during
79 update traversal is the database name (instead of a fixed one).
80
81 New setting, explainDatabase, which specifies that databases are
82 EXPLAIN aware.
83
84 Modified Zebra so that it works with ASN.1 compiled code for YAZ.
85
86 Implemented EXPLAIN database maintenance. Zebra automatically
87 generate - and update CategoryList, TargetInfo, DatabaseInfo,
88 AttributeSetInfo and AttributeDetails records at this stage. The
89 records may be transferred as GRS-1, SUTRS or Explain.
90
91 Fixed register spec so that colon isn't treated as size separator
92 unless followed by [0-9+-] in order to allow DOS drive specifications.
93
94 Fixed two bugs in ISAMC system.
95
96 Changed the way Zebra keeps its maintenance information about attribute
97 sets, available attributes, etc.. Records in "SGML" notation using an
98 EXPLAIN schema is now used when appropriate.
99
100 Bug fix: Index didn't handle update/insert/delete of the same record
101 (i.e. same recordId) in one run (one invocation of zebraidx). Only the
102 first occurence of a record is considered.
103
104 Most searches now return correct number of hits.
105
106 New modular ranking system. Interested programmers are encouraged to
107 inspect rank1.c and improve the algorithm.
108
109 Bug fix: Lock files weren't removed as they should on NT.
110
111 Implemented Z39.50 Sort. Zebra's sort handler uses use attributes to
112 specify a "sort register". Refer to the gils sample records which refer
113 to index type "s" which is specified as "sort" in the default.idx file.
114 Each sort criteria can either be Ascending or Descending and at most
115 three sort elements can be specified.  
116
117 Bug fix: Character mapping didn't work for text files.
118
119 --- 1.0b1 1998/1/29
120
121 Simple ranked searches now return correct number of hits.
122
123 The test option (-s) only makes a read-lock on the index as well
124 as using read-only operations anywhere.
125
126 Moved towards generic character mapping. Configuration file default.idx
127 specifies character map files for register types w, p, u, etc.
128
129 Implemented "begin variant" for the sgml.regx - filter.
130
131 Fixed a few memory leaks.
132
133 Added support for C++, headers uses extern "C" for public definitions.
134
135 Bug fix: The show records facility (-s) only displayed information for
136 the first record in a file (and not for every record in the file).
137
138 Added option "-f <n>" to limit the logging of record operations. After
139 <n> records has been processed no logging is performed (unless errors
140 occur).
141
142 Bug fix: the compressed ISAM system didn't handle update operations
143 correctly.
144
145 Added setting, "maxResultSetSize", to hold the number of records to 
146 save in a result set.
147
148 Bug fix: Complete phrase did't work for search operations.
149
150 Bug fix: temporary result sets weren't deleted.
151
152 Reduced disk space for saved keys (storeKeys = 1).
153
154 Added optional, physical ANY (key replication)
155
156 Implemented proximity operator in search.
157
158 Bug fix: the path name buffers used by file match traversal routines
159 have been extended to support long file names.
160
161 New C(ompressed) ISAM system. To enable it, specify "isam: c" in the
162 configuration file. The resulting register without "storeKeys" is about
163 half the size, and the memory used by zebraidx during phase 2 (merge) is
164 reduced to a minimum.
165
166 Reworked the way Regexp-2 queries with error tolerance are handled and
167 specified. The documentation has been updated accordingly.
168
169 Bug fix: Zebrasrv didn't search correctly when queries contained masking
170 characters. This bug was introduced in 1.0a8.
171
172 Zebrasrv now tag records with the proper database name.
173
174 New settings, memMax and keyTmpDir.
175
176 Changed name of setting lockDir (previously called lockPath) and
177 setTmpDir (previously called tempSetPath).
178
179 Generalized and changed record type specifications. In short, there are:
180        text                plain SUTRS
181        grs.sgml            structured, "SGML-like" syntax
182        grs.regx.<filter>   structured, Regular expression filter
183        grs.marc.<abs>      Reads *MARC records in the ISO2709 format. <abs>
184                            is the name of an abstract syntax file.                           
185 Bug fix: Result sets weren't sorted in operations involving boolean
186 operations with "ranked" operands.
187
188 --- 1.0a8 1996/6/6
189
190 Added national character-handling subsystem.
191
192 Various fixes.
193
194 Small modifications to input filters and profiles.
195
196 Added support for SOIF syntax (with private OID).
197
198 --- 1.0a7 1996/5/16
199
200 Fixed buffer-size problem in indexing.
201
202 Added compression to temporary files for updating.
203
204 Added phrase registers.
205
206 Added dynamic mapping of search attribute to multiple termlists (ANY).
207
208 Scan support in multiple databases/registers.
209
210 Configuration settings are case-insensitive and single dash (-)
211 characters are ignored in comparisons.
212
213 The index processing ignores empty files - warning given.
214
215 New option to zebraidx (-V) displays version information.
216
217 --- 1.0a6 1996/2/24
218
219 Fixed problem in file-update system.
220
221 Fixed problem in shadow system; register was sometimes corrupted after
222 a commit operation.
223
224 --- 1.0a5 1996/2/10
225
226 Fixed problems in the ISAM subsystem. Caused difficulties when updating
227 existing registers.
228
229 Fixed small problem in SUTRS-filter. A newline was sometimes inserted before
230 the rank and record number.
231
232 Fixed bug in the isam subsystem - caused a malfunction when accessing
233 words which occurred more than 10000 times.
234
235 Distribution should now include YAZ (Z39.50 protocol stack) to simplify
236 installation.
237
238 Server can now run under inetd. Use option -i, and -w <directory> to
239 set working directory to desired location.
240
241 New zebraidx command: clean - removes temporary shadow files.
242
243 Fixed bug in ISAM system. Occurred rarely during register updates.
244
245 Logging during index merge phase is improved. The remaining running
246 time is estimated.
247
248 Temporary files generated by zebraidx are removed after each run.
249
250 Bug fix: Dictionary didn't handle 8-bit characters correctly; was obvious
251 when doing scan operations in dictionaries with European characters.
252
253 --- 1.0a4 1996/01/11
254
255 A whole slew of updates, to make the first publicized release. Get the doc
256 and check it out.
257
258 --- 1.0a3 1995/12/06
259
260 Memory-problems in ISAM fixed. More blocktypes added to the default setup
261 to increase performance on larger databases.
262
263 Various minor changes in data management system.
264
265 --- 1.0a2 1995/12/05
266
267 A couple of portability-problems resolved.
268
269 Changed some malloc() to xmalloc().
270
271 --- 1.0a1 1995/11/28
272
273 First release.