Allow predictable sessions PAZ-1030
[pazpar2-moved-to-github.git] / NEWS
1 --- 1.12.2 2015/08/31
2
3 Facility disable/logging of POSTed content PAZ-1027
4 Log level "post" controls whether POSTed content is logged. This
5 is enabled by default. To disable, use -v -post on the command line.
6
7 Explain the semantics of using option -d twice in pazpar2 man page.
8
9 Update ajaxdev.xml and make it part of the dist PAZ-1025
10
11 --- 1.12.1 2015/08/26
12
13 Fix pazpar2 crash when using pz:extendrecs PAZ-1024
14
15 --- 1.12.0 2015/08/17
16
17 Fix PAZPAR2_PPMUTEX_H incorrectly defined PAZ-1023
18
19 Fix windows: crash in xmlDocFormatDump PAZ-1021
20 Problem is the passed FILE*. We can not pass FILE pointers between
21 DLLs. So we just avoid dumping the XML config during start on Windows.
22
23 Use YAZ comstack features for IPv6 and non-blocking getaddrinfo. PAZ-927
24
25 Upgrade to debian DH version 9 PAZ-1020
26
27 Fix bytarget list not cleared for new search PAZ-1019
28
29 --- 1.11.3 2015/07/28
30
31 Do not re-search if facetlimit scan fails to find value PAZ-1013
32
33 Optimizie single-target sortmap - keep record order PAZ-1917
34
35 position rec-icd with leading zeros PAZ-1018
36
37 Fix Bad HTTP request causes a crash PAZ-1012
38
39 --- 1.11.2 2015/07/21
40
41 Fix Can not make doc on mochi PAZ-1015
42
43 --- 1.11.1 2015/07/21
44
45 Fix PAZ-1009: Do not create local facets when using facetmap:split
46
47 --- 1.11.0 2015/07/06
48
49 Facet ID term map PAZ-1008
50 New setting pz:facetmap:split:name (refer to documentation)
51
52 --- 1.10.0 2015/06/16
53
54 Sort by retrieval PAZ-1006
55 Allows sorting by order that records were retrieved from databases.
56
57 Response from bytarget command includes native query PAZ-1005
58
59 Use lx2.loc.gov:210/LCDB_MARC8 instd of z3950.loc.gov:7090/voyager PAZ-1003
60
61 --- 1.9.0 2015/05/23
62
63 New metadata facility "icurule" for normalizing metadata text PAZ-1002
64 This allows ICU normalization of text before in-cluster merging takes
65 place.
66
67 Heuristics to deal with Primo s/e/page PAZ-1001
68
69 Fix test_limit_limitmap fails PAZ-1000
70
71 --- 1.8.8 2015/04/20
72
73 Limitmap ccl: deal with quotes and backslash PAZ-999
74
75 Handle date range from a limit parameter PAZ-997
76 The CCL term is not quoted unless it includes blanks. This will ensure
77 that r=r is handled correctly. This changes behavior a bit. If term
78 should not be converted to @and, then instead of r=r one should use
79 r=o or r=3 instead.
80
81 Construct md-pages-number form page/endpage PAZ-998
82
83 --- 1.8.7 2015/03/27
84
85 solr-pz2.xsl: extend Solr transformation to emit license_name field PAZ-996
86
87 cf.xsl: forwards flat affiliation structure PAZ-992
88
89 parpar2: log YAZ version upon start PAZ-993
90
91 Update and fix documentation for preferred targets
92
93 Fix spelling of present_chunk in documentation
94
95 --- 1.8.6 2015/02/10
96
97 Increase facet limit PAZ-990
98 No longer a limit on facets.
99
100 Pazpar2-js no longer requires Apache2 PAZ-989
101 Package pazpar2-apache2 sets up everything WRT apache and only
102 package which requires it. pazpar2-apache depends on pazpar2-js.
103
104 --- 1.8.5 2014/12/17
105
106 Larger string buffer for forward address PAZ-987
107 Fixes buffer overflow that could occur if forward address is IPV6.
108
109 Updates to Windows NMAKE makefile for Visual Studio 2013.
110
111 --- 1.8.4 2014/11/26
112
113 Use YAZ backtrace facility PAZ-983. In case of crashes YAZ log may
114 include more details about the fault. Better install gdb and the
115 debug version of pazpar2 (pazpar2-dbg on Debian/Ubuntu).
116
117 Per target timeout PAZ-981
118 New setting pz:timeout which overrides z3950_operation timeout
119 in service.
120
121 --- 1.8.3 2014/11/20
122
123 Re-introduce journal-subpart PAZ-980
124 Both citation and journal-subpart have same value.
125
126 --- 1.8.2 2014/10/30
127
128 Add Ubuntu utopic 14.04 and Ubuntu saucy 13.10 to the list of packages
129 built. 
130
131 Remove from js/pz2.js the code that translates just two diagnostic
132 codes (1 and 2) into human-readable messages. This is no longer
133 necessary at all, as PazPar2 has been returning the message as well as
134 the code in its responses since December 2012. Fixes PAZ-978.
135
136 primo xsl produces citation rather than journal-subpart PAZ-972
137 (fix in 1.8.1 was incorrect)
138
139 Fix missing .url files PAZ-977
140 Add missing .url+.cfg and add proper check for it.
141
142 --- 1.8.1 2014/10/10
143
144 Turbomarc needs number check for date 903 map PAZ-973
145
146 primo-pz2.xsl creates citation rather than journal-subpart PAZ-972
147
148 pz2.js: on successful search, issue a "show" command only if a show
149 callback function has been installed. Fixes part of PAZ-975
150
151 --- 1.8.0 2014/09/30
152
153 New command=stop which stops further search&retrieval for active
154 databases.
155
156 CF/primo XSL generates {volume,issue,pages}-number that are defined
157 in default Pazpar2 service definition. PAZ-968 PAZ-970
158
159 --- 1.7.5 2014/09/11
160
161 Various fixes for threaded operation PAZ-960 thru PAZ-966
162
163 Dump main configuration file during start of Pazpar2 PAZ-957
164
165 --- 1.7.4 2014/09/02
166
167 Log ingest failures and record failures:
168
169 Clean up logging PAZ-942
170 Use session lead in more places. Log hits/records/filtered for each
171 target when fetching is complete. Log hit count when a search
172 (response) is received. Remove some less useful log messages.
173
174 Fix warning about about missing (internal) stylesheet PAZ-956
175
176 Report number of filtered records in bytarget PAZ-954
177
178 Cache XML documents as they appear after normalization. The key
179 for the cache is database+record offset. Cache is removed if query
180 is modified for search. This speeds up re-establishing a result set
181 for databases where new query is same previous query.
182
183 --- 1.7.3 2014/08/22
184
185 poll: add assert for number of FDs; abort on poll failure
186
187 --- 1.7.2 2014/08/18
188
189 Fix hang for 2nd use of target with unresolved DNS PAZ-949
190
191 --- 1.7.1 2014/08/14
192
193 Use poll rather than select for main event loop to overcome limit of
194 1024 file descriptors PAZ-947
195
196 Override setting with same name (do not append) PAZ-945
197
198 --- 1.7.0 2014/06/27
199
200 Separate package: pazpar2-xsl PAZ-932
201
202 --- 1.6.44 2014/06/27
203
204 Update OPAC stylesheets for availabilityDate PAZ-943
205
206 Fix too funny startrecs description
207
208 Fix broken ~ match if filter contains = PAZ-941
209
210 --- 1.6.43 2014/06/12
211
212 Add pz:redis option for ZOOM caching using redis. This is an alternative
213 to memcached. Requires YAZ 5.2.0 to work.
214
215 --- 1.6.42 2014/05/06
216
217 Re-ingest native facets PAZ-934
218
219 Fix medium override for solr-pz2.xsl.
220
221 --- 1.6.41 2014/04/23
222
223 Fix URL with leading http:// not working PAZ-933
224
225 Build packages for Ubuntu Trusty Tahr 14.04 LTS
226
227 cf.xsl: handle medium override AND md field
228
229 --- 1.6.40 2014/04/10
230
231 sortmap relevance always uses increasing=1. PAZ-930
232
233 solr-pz2.xsl: ensure medium is also applied if Solr record do not
234 have it. PAZ-929 
235
236 Fix leak in getaddrinfo usage for HTTP listener. Not a big deal because
237 this code is only executed once.
238
239 Fix typos is sortmap documentation.
240
241 Doc: fix misplaced variablelist tag.
242
243 --- 1.6.39 2014/02/19
244
245 Doc: update WRT ICU which is configured for YAZ; not Pazpar2.
246 It's been like that since version 1.1.1 from August 2009.
247
248 Add support for result-set caching via memcached. See description of
249 pz:memcached. Require that Pazpar2 is using YAZ 5.0.12 or later.
250
251 Add support for a <metadata> container tag. Patfh from Sven Porst.
252
253 Add support for XInclude in main configuarion file. Patch from Sven Porst.
254
255 Add client_{lock,unlock} before call to non_block_events in
256 connection_continue. Problem is that if non_block_events fire records,
257 then we will not unlock client at all. And as a result, a dead-lock
258 occurs.
259
260 --- 1.6.38 2014/01/07
261
262 Avoid removing slash and other characters for generic metadata that
263 looks like a URL (contains ://). PAZ-915
264
265 pz2.js: Only use XDR when doing CORS. Favor XHR in all other circumstances.
266
267 Cluster merge fixes. PAZ-901
268
269 Set client state to "working" when waiting for DNS resolver. PAZ-907
270
271 Log when session terminates. PAZ-905
272
273 Fix LSB/HS conformance for /etc/init.d/pazpar2 PAZ-904
274 Debian: add support for /etc/init.d/pazpar2 status
275
276 --- 1.6.37 2013/11/18
277
278 Fix 'Record Missing' for command=show PAZ-903
279
280 Preserve order of records within cluster PAZ-902
281
282 testing: use yaz-ztest -V if possible and use YAZ in sibling directory
283 if present.
284
285 Allow clustered records to be ingested during retrieval. PAZ-900
286
287 Fix void function error which cannot return a value.
288
289 --- 1.6.36 2013/11/11
290
291 SRU pz:authentication="a/b" may end up as x-username=a%2Fb PAZ-899
292
293 Upgrade to debhelper version 7 PAZ-898
294
295 Package with libyaz5 PAZ-897
296
297 Better error message for CCL parse errors PAZ-887
298
299 --- 1.6.35 2013/09/23
300
301 New target setting: pz:authentication_mode. PAZ-896
302
303 pazpar2 PRM: pazpar2 runs as user nobody. PAZ-893
304
305 Strip #-suffix for ZOOM URLs. PAZ-892
306
307 --- 1.6.34 2013/08/30
308
309 Fix issue with hanging show/bytarget. Could happen if new search was
310 fired with filter before show from previous show completed.
311
312 Add 'date' handling for solr-pz2.xsl.
313
314 --- 1.6.33 2013/08/13
315
316 pz:authentication may carry user group password. If pz:authentication
317 has at least one blank in it, that forces Pazpar2 to use idPass Z39.50
318 authentication. Two forms are allowed
319     user password
320     user group password
321 If no blanks are present, open authentication is in use (as before).
322
323 Fix {prev,next}recid elements that are returned by record
324 command. These were incorrect in versions 1.6.23 thru 1.6.32.
325
326 --- 1.6.32 2013/06/14
327
328 Experimental support for snippets. If argument snippets=1 is given
329 for command record or show, the text will include <match>-tags for
330 those area that matches.
331
332 Fix memory leak WRT client structures (incorrect inc ref count).
333
334 Log when a HTTP response is serialized and the time elapsed.
335
336 New command, service, which returns current service XML in use for
337 session.
338
339 --- 1.6.31 2013/05/24
340
341 Local limit for fields of type "generic" (ie text fields) are
342 now normalized by mergekey rule before comparison takes place.
343 Before, no normalization took place and comparsion was, thus, exact.
344
345 New facility: dynamic rank , which allows ranking to be changed
346 for an existing result set. The rank can be set for search or
347 show. This overrides the rank for metadata elements (which fields
348 to rank and weight).
349
350 New facility:dynamic mergekey , which allows mergekey to be changed
351 for an existing result set. The mergekey can be set for search or
352 show.
353
354 HTTP server: host=@ listens on IPV6 and IPV4 if possible.
355 Also, allow ports to be given as names (not just integers).
356 Fix @-notation on systems that don't support IPV6 sockets.
357
358 --- 1.6.30 2013/04/26
359
360 Add MasterKey Connect configuration. Refer to section "non-standard
361 databases" for more information.
362
363 Allow timeformat for log to be specified with option -m (as Metaproxy
364 and YAZ GFS).
365
366 New Debian package pazpar2-dbg.
367
368 Fix NULL ptr reference of se->relevance. If a new search is initiated
369 and a CCL query fails to parse, Pazpar2 could crash.
370
371 Fix problem with host/port mangling in Pazpar2 HTTP server. Problem
372 existed in 1.6.29 only.
373
374 --- 1.6.29 2013/04/05
375
376 IPV6 updates. Allow IPv6 addresses for database hosts and IPv6 address
377 for HTTP server. By default the HTTP server uses IPv4 only, but that can be
378 changed by setting "host" attribute for the "listen" element.
379
380 Change semantics of pz:extendrecs. Allow for repeated fetches .
381 pz:extendrecs is now the number of extra records to fetch (was total
382 count before).
383
384 --- 1.6.28 2013/03/21
385
386 Fix hang or memory violation if show occurred before a search. (not that
387 it makes much sense to perform a show before a search).
388
389 --- 1.6.27 2013/03/08
390
391 pz2.js: Element_parseChildNodes concatenates all Text/CDATA nodes, instead
392 of the first child.
393
394 --- 1.6.26 2013/03/08
395
396 New pz:metadata attribute, empty="empty-value" for Pazpar2's
397 internal representation. With this attribute, Pazpar2 treates an empty
398 pz:metadata type as having the value for "empty"  - if empty.
399
400 New setting, pz:extendrecs, which triggers extended fetch of records
401 for a database beyond pz:maxrecs for a show command.
402
403 Fix warning that was falsely issued for "missing limitmap".
404
405 Log message for Pazpart start/stop changed. Now using same style as
406 Metaproxy, ie Pazpar2 start SHA1 / Pazpar2 stop .
407
408 --- 1.6.25 2013/02/07
409
410 Fix hang of 2nd command=show with esn/syntax given.
411
412 --- 1.6.24 2013/01/18
413
414 New merge attribute type: 'first', which takes all metadata fields
415 from first target that returns the particular field.
416
417 --- 1.6.23 2013/01/02
418
419 Extend info command with hostname and YAZ SHA1
420 Indent results for both command stat and info.
421
422 Allow limit on merged content. The new configuration metadata
423 element, limitcluster, configures that a metadata element (name) be used
424 as limit name for search. Applies to the whole service (ie all targets),
425 unlike pz:limitmap which is configured per-target (database).
426
427 New feature: limitmap local:* matches against all metadata fields.
428
429 Allow repeated list in limitmap spec . Separated by comma. For
430 example: value="local:title,rpn:@attr 1=4".
431
432 New element <message> in bytarget response. Holds diagnostic message
433 of code (say 'Unsupported Use Attribute' for Bib-1 114).
434
435 Improved logging for record ingestion failures.
436
437 Avoid using struct icu_chain in non-YAZ_HAVE_ICU mode. In the rare case,
438 when YAZ is compiled without ICU support.
439
440 --- 1.6.22 2012/10/11
441
442 Requires YAZ-4.2.40 to support native solr support.
443
444 Fix and improve logic handling whether or not to re-do search on sort
445 order changes. A sort order with change in ascending/descending only
446 whould not trigger a new search, which is required for targets with
447 native sorting capabilities. Each client is now checked if instructions
448 (sortmap) exist for native sorting and only client that does requires
449 it is researched. Other clients is just re-ingesting the records,
450 they already have. The resultset is now cleared if any researching
451 is done.
452
453 Connection sharing between session has broken since version 1.6.8 with
454 introduction of logic that would minimize searching if pazpar2 could
455 detect this based on same query and limits and partly sort order.
456 This could lead to segementations violations.
457
458 Added a chapter in the manaul about relevance ranking.
459
460 --- 1.6.21 2012/09/24
461
462 Rank tweak: follow=number will increase mult by number if two terms
463 occur next to each other; number-1 if they are one term apart , .. 0
464 if they are number a part (all in order). Default is 0 (following
465 terms has no effect).
466
467 Rank tweak: lead=k will divide mult by 1 + log2(1+k*l) where k is
468 value given by lead and l is length from beginning of field where
469 term occurs (l=0 for first term, l=1 for second term, ..). Default
470 value of k is 0.0.
471
472 Rank tweak: length=strategy. length="linear" if mult is to be divided
473 by length (existing, default behavior), length="log" if mult is to be
474 divided by log2(1+length), length="none" if mult is not to be affected
475 by length.
476
477 --- 1.6.20 2012/09/21
478
479 Rank algorithm details may be printed as part of show response in
480 element <relevance_info>.. This is only printed if <rank debug="yes"/>
481 is used in service.
482
483 Record as returned by show/record command have a minimal indentation
484 which makes things human-readable.
485
486 New configuration of default sorting criteria (sort-default) in
487 service definition. If no criteria is defined it will be as before
488 'relevance'.
489
490 Search command now supports sort parameter just as the show command.
491 If no parameter is give, it will use the service sort-default value.
492
493 --- 1.6.19 2012/09/18
494
495 Rank algorithm skips strings that gets normalized to empty string.
496 For example, & and ! could map to the empty string. The weight for
497 those terms is now 0 (as if they were not part of the query).
498
499 Rank algorithm does not use CCL from limitmap; only from the query
500 parameter (user query).
501
502 Obey -w dir.
503
504 --- 1.6.18 2012/09/17
505
506 Rank algorithm configurable by 'rank' element inside service. So far
507 only, attribute 'cluster' is recognized. If cluster="yes", multiple
508 records inside a cluster boosts higher than single records. This
509 is default behavior and existing behavior. cluster="no" takes the
510 average score of each record in a cluster.
511
512 --- 1.6.17 2012/09/05
513
514 Fix bad re-use of connections (connections with changing proxy should not
515 be reused).
516
517 --- 1.6.16 2012/08/22
518
519 Fix a bug introduce in 1.6.15 around the position sorting. It resetted the
520 resultset and sorting when the sort order is position. However this will be done on
521 every client poll, which will make pazpar2 continuing reset and fetching.
522 It should only be done on FIRST request where the sort order change.
523
524 Fix an issue on suggestion option: Also disable suggestions on empty string.
525
526 Clean up in turbo marc stylesheet.
527
528 Remove the hardcoded size of termlists.
529
530 --- 1.6.15 2012/06/27
531
532 New facility: ccldirective may be given in service definition. Allows
533 CCL parsing to be customized a bit, such as defining names of operators
534 and, or, not.
535
536 New facility: raw record by checksum, rather than offset. The record
537 command optionally takes checksum which identifies certain record from
538 a database.
539
540 New facility: per field ranking. Rank may be given as M [F N] where
541 M is default rank and N is rank for CCL terms from field F.
542
543 --- 1.6.14 2012/06/04
544
545 Fix for IE7/8 in pz.js
546
547 Applied patch from Giannis Kosmas on keepAlive, which also adds keepAlive to init response.
548
549 Lower log level some places.
550
551 Remove some invalid test results.
552
553 --- 1.6.13 2012/05/23
554
555 Introducing a version=2 parameter for show, termlist and bytarget commands.
556 This enables pazpar2 to return approximation on hit and count count when
557 doing record filtering using the limit parameter on search and a
558 limitmap with a value of "local:"
559
560 Setting pz:xslt may embed local XSLT as an alternative to referring
561 to filenames.
562 Value is not CDATA but XML nodes embedded, so escaping is not necessary
563 but a root element *must* be present. For example:
564 <settings target="target="z3950.indexdata.com/marc">
565      <set name="pz:xslt">
566        <xsl:stylesheet
567           version="1.0"
568         ..
569        </xsl:stylesheet>
570      </set>
571     </settings>
572
573 Metadata field rank may given by XML internal document (pz:xslt
574 result). If rank is not given, the rank from service description is
575 used - as before.
576
577 Metadata field can now configured a default limitmap and facetmap.
578 Setting limitmap to "local:" would work for all kind of targets, but would
579 prob. not be the optimal solution. But at least better than the default behavior
580 of pazpar2 where no filtering is done.
581
582 A service definition can now also contains <set/> that defines service-wide
583 settings. These will override server-wide sets and will be overridded by
584 settings.
585
586 New setting, pz:present_chunk, that specifies number of records to fetch
587 at a time. Zero will disable chunkation; will fetch max_records at once.
588
589 --- 1.6.12 2012/03/14
590
591 Revert the format change in termlist response, that could break
592 some clients / UIs since they were expecting an (empty) element
593 if no facet values was found.
594
595 --- 1.6.11 2012/03/07
596
597 Revert the behavior of returning errors when unable to block
598 on termlist, bytarget and search, when unable to block due to
599 other block. The client will now receive a regular response,
600 but it will be logged in the server. A parameter (report) is
601 added to change behavior to return error response or WARNING
602 status message. Consider this "API" as private, as it is mostly
603 untested and could be changed in future releases.
604
605 Fix spell error in pz2.js fix in 1.6.10.
606
607 New Marc2TurboMarc.xsl (contribution from Sven Porst).
608 Can solve the missing marc21.xsl updates in some cases.
609
610 tmarc.xsl: Simplify the 6xx to subject-long and fix 1-based
611 substring (contribtion from Sven Porst)
612
613 marc21.xsl: fix 1-based substring call
614
615 tmarc.xsl and marc21.xsl: use 856$a as last option for electronic-text.
616
617 Add test_termlist_block to test suite
618
619 --- 1.6.10 2012/02/23
620
621 Fix SEGV for invalid PQFs and SRU/SOLR targets
622 Also refactor a bit the code that converts from PQF to SRU/SOLR queries.
623
624 Fix pz2.js: "null object" due to change in in bytarget result XML.
625
626 Fixes in tmarc.xsl: Subject-long shorten for extra commas only.
627 Added this normalization to the other subject-long fields (d6xx),
628 where it was missing.
629
630 Fixes in marc21.xsl: Updated with most of the new tmarc.xsl.
631 Still differences around medium and holdings. marc21.xsl is not
632 longer active used by Index Data, and should be considered unsupported.
633 Use tmarc.xsl instead.
634
635 --- 1.6.9 2012/01/19
636
637 Fix SEGV that could occur for failed connections.
638
639 --- 1.6.8 2012/01/17
640
641 Fix bug for command sort that could return no results for active clients
642 (from previous search). This bug was present in 1.6.6-1.6.7.
643
644 Fix bug in results that could include results that should have been
645 filtered out. This bug was present in 1.6.6-1.6.7.
646
647 --- 1.6.7 2011/12/23
648
649 Fix bug introduced in 1.6.6 where a connection re-use could stall
650 incoming requests.
651
652 Local filtering may now specify a local metadata field, eg.
653  pz:limitmap:somefield[t]=local:otherfield
654
655 --- 1.6.6 2011/11/25
656
657 For search, when limit and or filtering is in place and search
658 is identical to previous search, the result set is re-used and the
659 target is not searched.
660
661 Limits may work perform local filtering as well, by using "local:"
662 for a limitmap.
663
664 --- 1.6.5 2011/11/01
665
666 Updated bytarget command to contain a suggestions element with misspelled
667 words and suggestions to these. pz2.js has been updated to deliver this
668 onwards as well. Only target that currently delivers this is the solr
669 client in YAZ 4.2.18.
670
671 --- 1.6.4 2011/10/28
672
673 New service definition element, xslt, that allows an embedded stylesheet
674 to be defined. This can be referred to from pz:xslt as an alternative to
675 external files.
676
677 New pz:sortmap:field setting for specifying hints on how to make
678 a target natively sort on a field. This is used for command=show in
679 conjunction with sort.
680
681 New pz:url setting for specifying the actual URL for a target. When
682 this is used the target ID is not used as URL anymore and the target ID
683 may be almost any string (not including []).
684
685 command=termlist without name parameter returns all termlists/facets.
686 Previously if name parameter was omitted, only "subject" was returned.
687
688 --- 1.6.3 2011/09/22
689
690 Make termlist sorting stable. Terms with same frequency are now sorted by
691 their display name. This makes a pretty display and improves our
692 regression test because qsort is not a stable sort.
693
694 New sort parameter value 'position'. The 'position' sorts merged records
695 by their original position from the remote target. This is primarily useful
696 for debugging and may be used for targets that already perform some kind
697 of relevance ranking. Note that sort by default is decreasing; so to get
698 records in their original order sort=position:1 must be used.
699
700 --- 1.6.2 2011/09/15
701
702 tmarc.xsl: yet another 773$g fix. Was broken in 1.6.1 as well.
703
704 Facility to change working directory for pazpar2 daemon. Option -wdir
705 sets working directory to dir. This facility is useful if core dumps
706 must be saved. In this case, the current working directory must be
707 writable by the running user, such as "nobody".
708
709 --- 1.6.1 2011/09/14
710
711 New configuration element <icu_chain> for <server>/<service> which
712 allows a named ICU rule (chain) to be defined. The names relevance,
713 sort, mergekey and facet are used for those operations. The definition
714   <icu_chain id="sort" locale="en"> ..  </icu_chain>
715 is identical to
716   <sort> <icu_chain locale="en> ... </icu_chain> </sort>
717 And so on.. for relevance, mergekey and facet as well. The latter
718 style is deprecated. The facet terms are normalized by the facet
719 rule by default. This may be changed on a metadata field basis by
720 defining the new attribute 'facetrule' for the metadata element.
721 For example:
722   <icu_chain id="myrule" locale="en"> ... </icu_chain>
723   <metadata name="author" termlist="yes" facetrule="myrule"/>
724
725 Preserve rorder for merged metadata. Fixes issue as reported by Sven
726 Porst: http://lists.indexdata.dk/pipermail/yazlist/2011-July/003230.html
727
728 tmarc.xsl: set journal-subpart to 773$ only.
729
730 --- 1.6.0 2011/09/12
731
732 Modify the behavior for the limit parameter (first defined in 1.5.7).
733 Mapping of limit searches are now defined by the new configuration item
734 pz:limitmap. Fix a dead-lock problem with the limit parameter.
735
736 Extend tmarc.xsl to extract 773$g data (OpenURL).
737
738 --- 1.5.7 2011/08/19
739
740 ICU default maps remove backquote (`).
741
742 Command 'search' takes limit parameter (optional).  The limit parameter
743 allows a search to be limited one or more facets and the corresponding
744 values. This is for server side filtering.
745
746 Configure tweak: Use -lm for log(3) if needed
747
748 --- 1.5.6 2011/04/15
749
750 Fix a problem with skiparticle sortkey that could be completely
751 ignored (and reduced to "").
752
753 Fix dependency problem in pazpar2 RPM package (did not require
754 libyaz4 as it should).
755
756 --- 1.5.5 2011/03/28
757
758 Fix memory leak that occurred for command=termlist&name=xtargets .
759
760 Pazpar2 may save HTTP requests. Enabled by option -R.
761
762 --- 1.5.4 2011/03/08
763
764 Experimental support for DTIC DADS target. New dads-pz2.xsl.
765
766 Support for query_syntax (overrides the default for SRU | Z39.50)
767
768 Support for extraArgs (ZOOM "extraArgs" option) for targets
769
770 New commands: status-server and status-session
771
772 --- 1.5.3 2011/02/18
773
774 Fix for threaded runs: Client now have a copy of the database URL,
775 which can used after the database has been release from the client.
776 This makes the logging in the connection idle timeout of the client nicer (no NOURL) and should be thread-safe.
777
778 tmarc.xsl: Add journal-title-abbrev and full text.
779
780 cf.xsl: new fields: isbn, issn, journaltitle, volume, issue
781
782 Fix for cmd=record before search.
783
784 Session Logging clean up.
785
786 Fix wrong termlist factor when maxrecs is different from 100.
787
788 --- 1.5.2 2011/01/18
789
790 Fix missing pz:termlist_term_factor in settings.c messed up pz:preferred.
791 Term factor is default enabled but can be diseabled by
792 pz:termlist_term_factor=0
793
794 --- 1.5.1 2011/01/06
795
796 Add scaling of facet count. Currently always enabled, needs fixing.
797 Allow user-defined info for target suffix. This has no meaning in
798 Pazpar2 except to distinguish targets from each other. The suffix
799 data begins with #. For example z3950.indexdata.com/gils#Mydata
800
801 Added exact-match recordfilter; format name=value
802
803 --- 1.5.0 2010/10/05
804
805 SOLR support. Pazpar2 may operate as web service client for SOLR.
806
807 --- 1.4.4 2010/08/17
808
809 Fix for show command and block=1 (dead lock). Bug was introduced in
810 1.4.0.
811
812 --- 1.4.3 2010/07/02
813
814 New RPM packages: pazpar2, pazpar2-js, pazpar2-doc. These have been
815 tested on CentOS 5.5 only.
816
817 --- 1.4.2 2010/06/18
818
819 Fix problem with result sets being removed from a client session
820 if the connection for it was resused by another session. Bug #3489.
821
822 New iphone UI for Pazpar2 (www/iphone).
823
824 --- 1.4.1 2010/05/21
825
826 Fixes for threaded operation.
827
828 New stylesheets for TurboMARC: tmarc.xsl and opac_turbomarc.xsl.
829
830 New example services in etc/services in source. In the Debian packages
831 these are located in /etc/pazpar2/services-available
832
833 Threaded mode operational on Windows. Requires Windows 7 or Windows
834 Server 2008.
835
836 Default value of setting pz:max_connections is 0 which means that there
837 is no limit on number of connections.
838
839 --- 1.4.0 2010/03/29
840
841 Pazpar2 may operate in threaded mode. Enabled by element threads in
842 the configuration. See pazpar2_conf for details.
843
844 New setting setting: pz:max_connections. Setting pz:max_connections is
845 a limit of number of sockets to a host. When this limit is reached,
846 Pazpar2 will wait up to 5 seconds for a connection to becomes available.
847 The client will be marked Client_Error when it can not be searched
848 (other clients in a session may work). If pz:max_connections is not set
849 for a target, a value of 30 will be used. Note: the pz:max_connections
850 will only work in threaded mode.
851
852 pz2.js: JSON support for show.
853
854 Debian package: Enable default service, default.xml, before starting
855 Pazpar2 only if there is no service already in /etc/pazpar2/services-enabled.
856
857 --- 1.3.0 2010/01/25
858
859 Debian version depends on on libyaz4. Note that Pazpar2 will still
860 compile from source with YAZ 3.
861
862 Split services into separate files. The example configuration file
863 pazpar2.cfg.dist now includes a default service default.xml (part of
864 etc). And default.xml includes settings/edu.xml. The default.xml file,
865 not to be confused with settings/defaults.xml, is a template for jsdemo
866 and other services. The Debian package installs /etc/pazpar2/server.xml
867 which is now the main pazpar2 configuration (used to be called pazpar2.cfg).
868 server.xml includes services from /etc/pazpar2/services-enabled/*.xml .
869 The default.xml (from etc) is installed in /etc/pazpar2/services-available
870 and a symlink to it is created from services-enabled. The default.xml
871 service is unnamed and, thus, will be used by jsdemo and test1.
872
873 New setting pz:negotiation_charset. Patch from Andrei V. Toutoukine. The
874 new setting pz:negotiation_charset specifies character set for Z39.50 Init.
875
876 --- 1.2.4 2010/01/15
877
878 Support for additional fields in cf.xsl and pazpar2.conf.dist:
879 publisher, available, due, location (=locallocation), callno
880 (=callnumber), thumburl and score.
881
882 Describe pz:xslt and the auto setting.
883
884 Move mergekey definition away from the normalization stylesheets and
885 define a mergekey common for all target types in pazpar2.cfg.
886
887 Code update: Use the Odr_int type for hit counts. This is part of
888 YAZ 3.0.47 and later and so configure checks for that.
889
890 --- 1.2.3 2009/11/24
891
892 Metadata attribute 'skiparticle' also works for ICU based
893 normalization. (was only working for the non-ICU/ASCII before).
894
895 Command bytarget with argument settings=1 will show settings per
896 target.. This is to be able to verify correct settings and be able to
897 test that they are correct. The database settings array size is now
898 also stored..  Problems with database settings array is that if not
899 careful it will be too small (smaller than dictionary per-service
900 in settings).
901
902 Make record list sorting stable by comparing mergekey for records if
903 relevance/title or other sorting criteria all match. This is merely to
904 ensure that our regressions tests works (reproducible output).
905
906 Relevance calculation changes: use a different denominator (length) for
907 per-field relevance scoring.. Instead of length of all ranked fields we
908 now use length of individual fields (as if they were individual "free"
909 text fields). This will ensure that documents with a long field with no
910 match (say description) will not "hurt" a title match.
911
912 Diagnostic member was not set on connection error. Fixed
913
914 --- 1.2.2 2009/10/13
915
916 Command search takes two optional parameters, startecs and maxrecs,
917 that specifies the start offset (0, 1, ...) and maximum number of records
918 to fetch for each target.
919
920 XSLTs + MARC maps are cached within a session so we don't re-parse
921 them over and over again. Even for a session with a single search
922 there's much to be gained because many targets use the same
923 transformation.
924
925 The metadata attribute 'mergekey' now takes one of three values 'no',
926 'required', 'optional' .  And the resulting mergekey from metadata
927 is now ordered in the same way as metadata in the service definition.
928 Older Pazpar2 version use the order in which metadata appeared in a
929 record instance.
930
931 The search argument 'filter' now offers a new operator ~ which does a
932 substring match. The = operator works as before: string match for
933 anything but pz:id, or target match for pz:id.
934
935 New setting pz:recordfilter. The value of this setting takes the
936 form name[~value]. This setting makes Pazpar2 ignore all retrieved
937 records that do not have the metadata element name with value substring
938 (if given).
939
940 Pazpar2 allows YAZ log level to be set (option -v).
941
942 --- 1.2.1 2009/10/05
943
944 For WS responses Pazpar2 creates XML header. Exception: raw record.
945
946 Setting XML files are now stored in etc/settings instead of etc. This
947 reflects the layout with the Debian package layout.
948
949 Settings may be posted for command=settings. The POSTed settings must
950 have root element 'settings' like regular setting files. In order to be
951 recognized, the POST request must use Content-Type=text/xml.
952
953 A service may be posted for command=init. This service will be used
954 during the session. The service may have its own target settings,
955 ICU config, timeout, etc. In order to be recognized, the POST request
956 must use Content-Type=text/xml.
957
958 Timeout values may be given per-service. That's element 'timeout'
959 which takes three attribute values (a subset may be given): 'session',
960 'z3950_operation', 'z3950_session'. Option -T is no longer supported
961 - used to specify session timeout.
962
963 Option -t tests the Pazpar2 configuration and returns exit code
964 (0=success, non-zero=failure). In previous version of Pazpar2, -t
965 specified local settings.
966
967 In version 1.2.0 the configuration file - after include processing -
968 was dumped to stdout. Now, the configuration is only dumped to the
969 yaz log file if option -d is given.
970
971 --- 1.2.0 2009/09/10
972
973 Configuration may now have multiple server areas. This means that a
974 Pazpar2 instance may listen on multiple ports. Virtual hosting is not
975 yet supported - on a server basis. Configuration may also have multiple
976 services .. That is repeating service elements inside a server. Each
977 has an attribute 'id' which serves as service ID. This ID in turn may
978 be used in a Pazpar2 session, by specifying parameter service=ID for
979 command init. There can be at most one unnamed service inside a server
980 which can be referred to by not specifying an service ID for command
981 init (backwards compatible). In order to partition multiple servers and
982 services a new include directive has been added. This takes an attribute
983 'src' which specifies one or more sub-files. For example to include
984 service files, one might use:
985   <server >.. <include src=/"etc/pazpar2/conf.d/*.xml"/> .. </server>.
986 It is the intention that that completely makes the settings directive
987 redundant.
988
989 Fix problem where the record command would wait forever if there were
990 no targets to wait for (activeclients == 0).
991
992 --- 1.1.1 2009/08/28
993
994 One result set is created per session (last search) rather than for
995 each connection which happen to be shared (bug #3009).
996
997 marc21 stylesheets changed for efficiency.
998
999 --- 1.1.0 2009/08/19
1000
1001 Session timeout may be specified on the command-line as option -T.
1002
1003 Pazpar2 may now be operated in a no-merged mode for records.. All records
1004 will be considered unique. This mode is enabled if no mergekey is
1005 generated by the normalization stylesheet (pz:xslt).
1006
1007 Pazpar2 caches original records from each target and the 'record' command
1008 with offset returns the original record if 'syntax' and 'esn' are NOT
1009 specified. This speeds up retrieval of original records but also means
1010 that Pazpar2 uses more memory. The cached records will be freed when the
1011 session terminates or a new search is executed.
1012
1013 Pazpar2 no longer uses its own ICU wrapper. Instead the ICU wrapper
1014 library part of YAZ is used.
1015
1016 Added SRU client support.
1017
1018 Automatically computes pz:nativesyntax if not provided. Works for XML and
1019 MARC.
1020
1021 --- 1.0.13 2008/11/24
1022
1023 Command bytarget returns name of target (if defined).
1024
1025 --- 1.0.12 2008/11/04
1026
1027 Fixed bug #2021.. location now holds all brief elements.
1028
1029 --- 1.0.11 2008/10/15
1030
1031 Fixed check for application/x-www-form-urlencoded parameters.
1032
1033 --- 1.0.10 2008/10/14
1034
1035 Fixes for IE in pz2.js.
1036
1037 Fixed bug #2021: non-merged, brief meta data NOT included for command=show.
1038
1039 --- 1.0.9 2008/05/23
1040
1041 Changed the JS library pz2.js to use POST for long URL (+ params).
1042
1043 Added installation instructions for Windows. Note: NT services is
1044 NOT available until we make a new release of YAZ.
1045
1046 Preserve order of repeated metadata fields (they were reversed before).
1047
1048 More MARC21 information extracted for metadata.
1049
1050 --- 1.0.8 2008/04/22
1051
1052 Fixed bug #1162: HTML entities are not escaped properly.
1053
1054 Native Windows port of Pazpar2. Makefile for Visual Studio provided.
1055
1056 --- 1.0.7 2008/04/14
1057
1058 Marc21 stylesheet updated to reflect multiple full text fields
1059
1060 --- 1.0.6 2008/03/12
1061
1062 Fixed bug in pz2.js WRT DOMElement attributes on IE.
1063
1064 Fixed bug 2100: Database wildcards not working
1065
1066 --- 1.0.5 2007/11/09
1067
1068 Added support for retrieval of records in binary.
1069
1070 Fixed bug 1794: Pazpar2 does not return valid XML.
1071
1072 Deal with ICU not returning sortkey (resulted in SEGV before).
1073
1074 --- 1.0.4 2007/09/28
1075
1076 JavaScript library pzw2.js throws error if WS response (from Pazpar2 or
1077 other) is malformed (non-wellformed XML or missing Pazpar2 OK status).
1078
1079 Improved diagnostics when Pazpar2 HTTP decoding fails.
1080
1081 Pazpar2 requests may be POSTed as using Content-Type
1082 application/x-www-form-urlencoded.
1083
1084 Pazpar2 honors LF in HTTP headers.
1085
1086 Handle targets that handle negative hit counts (should not happen, but it
1087 does).
1088
1089 --- 1.0.3 2007/09/19
1090
1091 ICU is used for tokenization and normalization of the following: mergekey,
1092 sorting, relevance terms.
1093
1094 Debian package now enables ICU tokenization and normalization by default.
1095
1096 --- 1.0.2 2007/08/22
1097
1098 Exposed user setting values (i.e. non-pz: names) to the record systems in two
1099 ways: Either as parameters to the normalization stylesheets (which would allow the
1100 programmer to postprocess or use the values in any way) or after the normalization
1101 step, in which case values are made part of the normalized record (and available for
1102 sorting, termlists, display, or other interface-related use.
1103
1104 Implemented sorting by year.
1105
1106 Option -d dumps records to the current log file instead of stderr.
1107
1108 Fixes for compilation on cygwin.
1109
1110 Z39.50 client code uses pz:elements. pz:elements was recognized in
1111 earlier Pazpar2 versions but it was not used for anything.
1112
1113 icu_chain_test is using fgets instead of getline - fixes compilation
1114 on MacOSX .
1115
1116 Loosen the CCL query parsing so that Pazpar2 only returns error if _all_
1117 query conversions fail (rather than _any_). This means targets that do
1118 not support some fields are ignored in a search.
1119
1120 --- 1.0.1 2007/07/03
1121
1122 Improved handling of socket timeout for Z39.50 connections.
1123
1124 Misc documentation updates and spell fixes.
1125
1126 Debian package pazpar2 creates log rotate entry.
1127
1128 Debian package pazpar2-apache2 reloads Apache2.
1129
1130 jsdemo included in distribution. It illustrates the use of the js/pz2.js
1131 JavaScript library.
1132
1133 --- 1.0.0 2007/06/20
1134
1135 First public release.
1136