The default for Zebra is to not return results where the record size is
greater than 1045 KB ( 1 MB ). Some libraries need to increase this
ceiling, but it may come at a cost with z39.50 compatibility with other
services. For that reason, we should make this setting configurable on a
per-instance basis.
Test plan for kohadevbox:
1) Apply this patch
2) Run:
$ reset_all
3) Restart Zebra:
$ sudo koha-zebra --restart kohadev
4) Check how zebrasrv was called:
$ ps waux | grep zebrasrv
=> SUCCESS: Looks like
... /usr/bin/zebrasrv -v none,fatal,warn -k 1024
5) Edit /etc/koha/sites/kohadev/koha-conf.xml, add:
<zebra_max_record_size>2048</zebra_max_record_size>
6) Repeat (3) and (4)
=> SUCCESS: Looks like
... /usr/bin/zebrasrv -v none,fatal,warn -k 2048
7) Sign off :-D
General test plan:
1) Apply this patch
2) Build a Debian package
3) Specify a zebra_max_record_size of 2048 in your koha_conf.xml
4) Restart zebra
5) Index a record greater than 1 MB but smaller than 2 MB
6) Note that it is searchable!
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Hugo Agud <hagud@orex.es>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
fi
}
+get_max_record_size()
+{
+ local instancename=$1
+ local retval=$(xmlstarlet sel -t -v 'yazgfs/config/zebra_max_record_size' /etc/koha/sites/$instancename/koha-conf.xml)
+ if [ "$retval" != "" ]; then
+ echo "$retval"
+ else
+ echo "1024"
+ fi
+}
+
get_tmpdir()
{
if [ "$TMPDIR" != "" ]; then
# get zebra log levels from koha-conf.xml
local loglevels=$(get_loglevels ${name})
+ local max_record_size=$(get_max_record_size ${name})
if ! is_zebra_running $name; then
--user=${name}-koha.${name}-koha"
ZEBRA_PARAMS="-v $loglevels \
+ -k $max_record_size \
-f /etc/koha/sites/${name}/koha-conf.xml"
[ "$verbose" != "no" ] && \
<useshibboleth>0</useshibboleth><!-- see C4::Auth_with_shibboleth for extra configs you must do to turn this on -->
<zebra_lockdir>/var/lock/koha/__KOHASITE__</zebra_lockdir>
<use_zebra_facets>1</use_zebra_facets>
+ <zebra_max_record_size>1024</zebra_max_record_size>
<queryparser_config>/etc/koha/searchengine/queryparser.yaml</queryparser_config>
<log4perl_conf>__KOHA_CONF_DIR__/log4perl.conf</log4perl_conf>
<!-- Uncomment/edit next setting if you want to adjust zebra log levels.