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.
7 Explain the semantics of using option -d twice in pazpar2 man page.
9 Update ajaxdev.xml and make it part of the dist PAZ-1025
13 Fix pazpar2 crash when using pz:extendrecs PAZ-1024
17 Fix PAZPAR2_PPMUTEX_H incorrectly defined PAZ-1023
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.
23 Use YAZ comstack features for IPv6 and non-blocking getaddrinfo. PAZ-927
25 Upgrade to debian DH version 9 PAZ-1020
27 Fix bytarget list not cleared for new search PAZ-1019
31 Do not re-search if facetlimit scan fails to find value PAZ-1013
33 Optimizie single-target sortmap - keep record order PAZ-1917
35 position rec-icd with leading zeros PAZ-1018
37 Fix Bad HTTP request causes a crash PAZ-1012
41 Fix Can not make doc on mochi PAZ-1015
45 Fix PAZ-1009: Do not create local facets when using facetmap:split
49 Facet ID term map PAZ-1008
50 New setting pz:facetmap:split:name (refer to documentation)
54 Sort by retrieval PAZ-1006
55 Allows sorting by order that records were retrieved from databases.
57 Response from bytarget command includes native query PAZ-1005
59 Use lx2.loc.gov:210/LCDB_MARC8 instd of z3950.loc.gov:7090/voyager PAZ-1003
63 New metadata facility "icurule" for normalizing metadata text PAZ-1002
64 This allows ICU normalization of text before in-cluster merging takes
67 Heuristics to deal with Primo s/e/page PAZ-1001
69 Fix test_limit_limitmap fails PAZ-1000
73 Limitmap ccl: deal with quotes and backslash PAZ-999
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
81 Construct md-pages-number form page/endpage PAZ-998
85 solr-pz2.xsl: extend Solr transformation to emit license_name field PAZ-996
87 cf.xsl: forwards flat affiliation structure PAZ-992
89 parpar2: log YAZ version upon start PAZ-993
91 Update and fix documentation for preferred targets
93 Fix spelling of present_chunk in documentation
97 Increase facet limit PAZ-990
98 No longer a limit on facets.
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.
106 Larger string buffer for forward address PAZ-987
107 Fixes buffer overflow that could occur if forward address is IPV6.
109 Updates to Windows NMAKE makefile for Visual Studio 2013.
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).
117 Per target timeout PAZ-981
118 New setting pz:timeout which overrides z3950_operation timeout
123 Re-introduce journal-subpart PAZ-980
124 Both citation and journal-subpart have same value.
128 Add Ubuntu utopic 14.04 and Ubuntu saucy 13.10 to the list of packages
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.
136 primo xsl produces citation rather than journal-subpart PAZ-972
137 (fix in 1.8.1 was incorrect)
139 Fix missing .url files PAZ-977
140 Add missing .url+.cfg and add proper check for it.
144 Turbomarc needs number check for date 903 map PAZ-973
146 primo-pz2.xsl creates citation rather than journal-subpart PAZ-972
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
153 New command=stop which stops further search&retrieval for active
156 CF/primo XSL generates {volume,issue,pages}-number that are defined
157 in default Pazpar2 service definition. PAZ-968 PAZ-970
161 Various fixes for threaded operation PAZ-960 thru PAZ-966
163 Dump main configuration file during start of Pazpar2 PAZ-957
167 Log ingest failures and record failures:
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.
174 Fix warning about about missing (internal) stylesheet PAZ-956
176 Report number of filtered records in bytarget PAZ-954
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.
185 poll: add assert for number of FDs; abort on poll failure
189 Fix hang for 2nd use of target with unresolved DNS PAZ-949
193 Use poll rather than select for main event loop to overcome limit of
194 1024 file descriptors PAZ-947
196 Override setting with same name (do not append) PAZ-945
200 Separate package: pazpar2-xsl PAZ-932
202 --- 1.6.44 2014/06/27
204 Update OPAC stylesheets for availabilityDate PAZ-943
206 Fix too funny startrecs description
208 Fix broken ~ match if filter contains = PAZ-941
210 --- 1.6.43 2014/06/12
212 Add pz:redis option for ZOOM caching using redis. This is an alternative
213 to memcached. Requires YAZ 5.2.0 to work.
215 --- 1.6.42 2014/05/06
217 Re-ingest native facets PAZ-934
219 Fix medium override for solr-pz2.xsl.
221 --- 1.6.41 2014/04/23
223 Fix URL with leading http:// not working PAZ-933
225 Build packages for Ubuntu Trusty Tahr 14.04 LTS
227 cf.xsl: handle medium override AND md field
229 --- 1.6.40 2014/04/10
231 sortmap relevance always uses increasing=1. PAZ-930
233 solr-pz2.xsl: ensure medium is also applied if Solr record do not
236 Fix leak in getaddrinfo usage for HTTP listener. Not a big deal because
237 this code is only executed once.
239 Fix typos is sortmap documentation.
241 Doc: fix misplaced variablelist tag.
243 --- 1.6.39 2014/02/19
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.
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.
251 Add support for a <metadata> container tag. Patfh from Sven Porst.
253 Add support for XInclude in main configuarion file. Patch from Sven Porst.
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
260 --- 1.6.38 2014/01/07
262 Avoid removing slash and other characters for generic metadata that
263 looks like a URL (contains ://). PAZ-915
265 pz2.js: Only use XDR when doing CORS. Favor XHR in all other circumstances.
267 Cluster merge fixes. PAZ-901
269 Set client state to "working" when waiting for DNS resolver. PAZ-907
271 Log when session terminates. PAZ-905
273 Fix LSB/HS conformance for /etc/init.d/pazpar2 PAZ-904
274 Debian: add support for /etc/init.d/pazpar2 status
276 --- 1.6.37 2013/11/18
278 Fix 'Record Missing' for command=show PAZ-903
280 Preserve order of records within cluster PAZ-902
282 testing: use yaz-ztest -V if possible and use YAZ in sibling directory
285 Allow clustered records to be ingested during retrieval. PAZ-900
287 Fix void function error which cannot return a value.
289 --- 1.6.36 2013/11/11
291 SRU pz:authentication="a/b" may end up as x-username=a%2Fb PAZ-899
293 Upgrade to debhelper version 7 PAZ-898
295 Package with libyaz5 PAZ-897
297 Better error message for CCL parse errors PAZ-887
299 --- 1.6.35 2013/09/23
301 New target setting: pz:authentication_mode. PAZ-896
303 pazpar2 PRM: pazpar2 runs as user nobody. PAZ-893
305 Strip #-suffix for ZOOM URLs. PAZ-892
307 --- 1.6.34 2013/08/30
309 Fix issue with hanging show/bytarget. Could happen if new search was
310 fired with filter before show from previous show completed.
312 Add 'date' handling for solr-pz2.xsl.
314 --- 1.6.33 2013/08/13
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
321 If no blanks are present, open authentication is in use (as before).
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.
326 --- 1.6.32 2013/06/14
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.
332 Fix memory leak WRT client structures (incorrect inc ref count).
334 Log when a HTTP response is serialized and the time elapsed.
336 New command, service, which returns current service XML in use for
339 --- 1.6.31 2013/05/24
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.
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
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
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.
358 --- 1.6.30 2013/04/26
360 Add MasterKey Connect configuration. Refer to section "non-standard
361 databases" for more information.
363 Allow timeformat for log to be specified with option -m (as Metaproxy
366 New Debian package pazpar2-dbg.
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.
371 Fix problem with host/port mangling in Pazpar2 HTTP server. Problem
372 existed in 1.6.29 only.
374 --- 1.6.29 2013/04/05
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.
380 Change semantics of pz:extendrecs. Allow for repeated fetches .
381 pz:extendrecs is now the number of extra records to fetch (was total
384 --- 1.6.28 2013/03/21
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).
389 --- 1.6.27 2013/03/08
391 pz2.js: Element_parseChildNodes concatenates all Text/CDATA nodes, instead
394 --- 1.6.26 2013/03/08
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.
400 New setting, pz:extendrecs, which triggers extended fetch of records
401 for a database beyond pz:maxrecs for a show command.
403 Fix warning that was falsely issued for "missing limitmap".
405 Log message for Pazpart start/stop changed. Now using same style as
406 Metaproxy, ie Pazpar2 start SHA1 / Pazpar2 stop .
408 --- 1.6.25 2013/02/07
410 Fix hang of 2nd command=show with esn/syntax given.
412 --- 1.6.24 2013/01/18
414 New merge attribute type: 'first', which takes all metadata fields
415 from first target that returns the particular field.
417 --- 1.6.23 2013/01/02
419 Extend info command with hostname and YAZ SHA1
420 Indent results for both command stat and info.
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).
427 New feature: limitmap local:* matches against all metadata fields.
429 Allow repeated list in limitmap spec . Separated by comma. For
430 example: value="local:title,rpn:@attr 1=4".
432 New element <message> in bytarget response. Holds diagnostic message
433 of code (say 'Unsupported Use Attribute' for Bib-1 114).
435 Improved logging for record ingestion failures.
437 Avoid using struct icu_chain in non-YAZ_HAVE_ICU mode. In the rare case,
438 when YAZ is compiled without ICU support.
440 --- 1.6.22 2012/10/11
442 Requires YAZ-4.2.40 to support native solr support.
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
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.
458 Added a chapter in the manaul about relevance ranking.
460 --- 1.6.21 2012/09/24
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).
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
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
477 --- 1.6.20 2012/09/21
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"/>
483 Record as returned by show/record command have a minimal indentation
484 which makes things human-readable.
486 New configuration of default sorting criteria (sort-default) in
487 service definition. If no criteria is defined it will be as before
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.
493 --- 1.6.19 2012/09/18
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).
499 Rank algorithm does not use CCL from limitmap; only from the query
500 parameter (user query).
504 --- 1.6.18 2012/09/17
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.
512 --- 1.6.17 2012/09/05
514 Fix bad re-use of connections (connections with changing proxy should not
517 --- 1.6.16 2012/08/22
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.
524 Fix an issue on suggestion option: Also disable suggestions on empty string.
526 Clean up in turbo marc stylesheet.
528 Remove the hardcoded size of termlists.
530 --- 1.6.15 2012/06/27
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
536 New facility: raw record by checksum, rather than offset. The record
537 command optionally takes checksum which identifies certain record from
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.
543 --- 1.6.14 2012/06/04
545 Fix for IE7/8 in pz.js
547 Applied patch from Giannis Kosmas on keepAlive, which also adds keepAlive to init response.
549 Lower log level some places.
551 Remove some invalid test results.
553 --- 1.6.13 2012/05/23
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:"
560 Setting pz:xslt may embed local XSLT as an alternative to referring
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">
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
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.
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
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.
589 --- 1.6.12 2012/03/14
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.
595 --- 1.6.11 2012/03/07
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.
605 Fix spell error in pz2.js fix in 1.6.10.
607 New Marc2TurboMarc.xsl (contribution from Sven Porst).
608 Can solve the missing marc21.xsl updates in some cases.
610 tmarc.xsl: Simplify the 6xx to subject-long and fix 1-based
611 substring (contribtion from Sven Porst)
613 marc21.xsl: fix 1-based substring call
615 tmarc.xsl and marc21.xsl: use 856$a as last option for electronic-text.
617 Add test_termlist_block to test suite
619 --- 1.6.10 2012/02/23
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.
624 Fix pz2.js: "null object" due to change in in bytarget result XML.
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.
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.
637 Fix SEGV that could occur for failed connections.
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.
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.
649 Fix bug introduced in 1.6.6 where a connection re-use could stall
652 Local filtering may now specify a local metadata field, eg.
653 pz:limitmap:somefield[t]=local:otherfield
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.
661 Limits may work perform local filtering as well, by using "local:"
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.
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
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.
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 []).
685 command=termlist without name parameter returns all termlists/facets.
686 Previously if name parameter was omitted, only "subject" was returned.
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.
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.
702 tmarc.xsl: yet another 773$g fix. Was broken in 1.6.1 as well.
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".
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>
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.
722 <icu_chain id="myrule" locale="en"> ... </icu_chain>
723 <metadata name="author" termlist="yes" facetrule="myrule"/>
725 Preserve rorder for merged metadata. Fixes issue as reported by Sven
726 Porst: http://lists.indexdata.dk/pipermail/yazlist/2011-July/003230.html
728 tmarc.xsl: set journal-subpart to 773$ only.
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.
736 Extend tmarc.xsl to extract 773$g data (OpenURL).
740 ICU default maps remove backquote (`).
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.
746 Configure tweak: Use -lm for log(3) if needed
750 Fix a problem with skiparticle sortkey that could be completely
751 ignored (and reduced to "").
753 Fix dependency problem in pazpar2 RPM package (did not require
754 libyaz4 as it should).
758 Fix memory leak that occurred for command=termlist&name=xtargets .
760 Pazpar2 may save HTTP requests. Enabled by option -R.
764 Experimental support for DTIC DADS target. New dads-pz2.xsl.
766 Support for query_syntax (overrides the default for SRU | Z39.50)
768 Support for extraArgs (ZOOM "extraArgs" option) for targets
770 New commands: status-server and status-session
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.
778 tmarc.xsl: Add journal-title-abbrev and full text.
780 cf.xsl: new fields: isbn, issn, journaltitle, volume, issue
782 Fix for cmd=record before search.
784 Session Logging clean up.
786 Fix wrong termlist factor when maxrecs is different from 100.
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
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
801 Added exact-match recordfilter; format name=value
805 SOLR support. Pazpar2 may operate as web service client for SOLR.
809 Fix for show command and block=1 (dead lock). Bug was introduced in
814 New RPM packages: pazpar2, pazpar2-js, pazpar2-doc. These have been
815 tested on CentOS 5.5 only.
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.
822 New iphone UI for Pazpar2 (www/iphone).
826 Fixes for threaded operation.
828 New stylesheets for TurboMARC: tmarc.xsl and opac_turbomarc.xsl.
830 New example services in etc/services in source. In the Debian packages
831 these are located in /etc/pazpar2/services-available
833 Threaded mode operational on Windows. Requires Windows 7 or Windows
836 Default value of setting pz:max_connections is 0 which means that there
837 is no limit on number of connections.
841 Pazpar2 may operate in threaded mode. Enabled by element threads in
842 the configuration. See pazpar2_conf for details.
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.
852 pz2.js: JSON support for show.
854 Debian package: Enable default service, default.xml, before starting
855 Pazpar2 only if there is no service already in /etc/pazpar2/services-enabled.
859 Debian version depends on on libyaz4. Note that Pazpar2 will still
860 compile from source with YAZ 3.
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.
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.
878 Support for additional fields in cf.xsl and pazpar2.conf.dist:
879 publisher, available, due, location (=locallocation), callno
880 (=callnumber), thumburl and score.
882 Describe pz:xslt and the auto setting.
884 Move mergekey definition away from the normalization stylesheets and
885 define a mergekey common for all target types in pazpar2.cfg.
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.
892 Metadata attribute 'skiparticle' also works for ICU based
893 normalization. (was only working for the non-ICU/ASCII before).
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
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).
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.
912 Diagnostic member was not set on connection error. Fixed
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.
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
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
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.
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
940 Pazpar2 allows YAZ log level to be set (option -v).
944 For WS responses Pazpar2 creates XML header. Exception: raw record.
946 Setting XML files are now stored in etc/settings instead of etc. This
947 reflects the layout with the Debian package layout.
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.
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.
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.
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.
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.
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
989 Fix problem where the record command would wait forever if there were
990 no targets to wait for (activeclients == 0).
994 One result set is created per session (last search) rather than for
995 each connection which happen to be shared (bug #3009).
997 marc21 stylesheets changed for efficiency.
1001 Session timeout may be specified on the command-line as option -T.
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).
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.
1013 Pazpar2 no longer uses its own ICU wrapper. Instead the ICU wrapper
1014 library part of YAZ is used.
1016 Added SRU client support.
1018 Automatically computes pz:nativesyntax if not provided. Works for XML and
1021 --- 1.0.13 2008/11/24
1023 Command bytarget returns name of target (if defined).
1025 --- 1.0.12 2008/11/04
1027 Fixed bug #2021.. location now holds all brief elements.
1029 --- 1.0.11 2008/10/15
1031 Fixed check for application/x-www-form-urlencoded parameters.
1033 --- 1.0.10 2008/10/14
1035 Fixes for IE in pz2.js.
1037 Fixed bug #2021: non-merged, brief meta data NOT included for command=show.
1039 --- 1.0.9 2008/05/23
1041 Changed the JS library pz2.js to use POST for long URL (+ params).
1043 Added installation instructions for Windows. Note: NT services is
1044 NOT available until we make a new release of YAZ.
1046 Preserve order of repeated metadata fields (they were reversed before).
1048 More MARC21 information extracted for metadata.
1050 --- 1.0.8 2008/04/22
1052 Fixed bug #1162: HTML entities are not escaped properly.
1054 Native Windows port of Pazpar2. Makefile for Visual Studio provided.
1056 --- 1.0.7 2008/04/14
1058 Marc21 stylesheet updated to reflect multiple full text fields
1060 --- 1.0.6 2008/03/12
1062 Fixed bug in pz2.js WRT DOMElement attributes on IE.
1064 Fixed bug 2100: Database wildcards not working
1066 --- 1.0.5 2007/11/09
1068 Added support for retrieval of records in binary.
1070 Fixed bug 1794: Pazpar2 does not return valid XML.
1072 Deal with ICU not returning sortkey (resulted in SEGV before).
1074 --- 1.0.4 2007/09/28
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).
1079 Improved diagnostics when Pazpar2 HTTP decoding fails.
1081 Pazpar2 requests may be POSTed as using Content-Type
1082 application/x-www-form-urlencoded.
1084 Pazpar2 honors LF in HTTP headers.
1086 Handle targets that handle negative hit counts (should not happen, but it
1089 --- 1.0.3 2007/09/19
1091 ICU is used for tokenization and normalization of the following: mergekey,
1092 sorting, relevance terms.
1094 Debian package now enables ICU tokenization and normalization by default.
1096 --- 1.0.2 2007/08/22
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.
1104 Implemented sorting by year.
1106 Option -d dumps records to the current log file instead of stderr.
1108 Fixes for compilation on cygwin.
1110 Z39.50 client code uses pz:elements. pz:elements was recognized in
1111 earlier Pazpar2 versions but it was not used for anything.
1113 icu_chain_test is using fgets instead of getline - fixes compilation
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.
1120 --- 1.0.1 2007/07/03
1122 Improved handling of socket timeout for Z39.50 connections.
1124 Misc documentation updates and spell fixes.
1126 Debian package pazpar2 creates log rotate entry.
1128 Debian package pazpar2-apache2 reloads Apache2.
1130 jsdemo included in distribution. It illustrates the use of the js/pz2.js
1133 --- 1.0.0 2007/06/20
1135 First public release.