Helpful Searching Tips

Wildcard Searches

To perform a single character wildcard search use the ? symbol.

For example, to search for "woman" or "women" you can use the search:

wom?n

To perform a multiple character, 0 or more, wildcard search use the * symbol.

For example, to search for test, tests or tester, you can use the search:

test*

You can also use the wildcard searches in the middle of a term.

te*t

Note: You cannot use a * or ? symbol as the first character of a search.

Fuzzy Searches

Use the tilde ~ symbol at the end of a Single word Term. For example, to search for variant spellings of "Tchaikovsky," use the fuzzy search:

Tchaikovsky~

An additional parameter can specify the required similarity. The value is between 0 and 1, with a value closer to 1 only terms with a higher similarity will be matched. For example:

Tchaikovsky~0.8

The default that is used if the parameter is not given is 0.5.

Proximity Searches

Use the tilde ~ symbol at the end of a Multiple word Term. For example, to search for economics and keynes that are within 10 words apart:

"economics Keynes"~10
Range Searches

To perform a range search you can use the { } characters. For example to search for a term that starts with either A, B, or C:

{A TO C}

The same can be done with numeric fields such as the Year:

[2002 TO 2003]
Boosting a Term

To apply more value to a term, you can use the ^ character. For example, you can try the following search:

economics Keynes^5

Which will give more value to the term "Keynes"

Boolean Operators

Boolean operators allow terms to be combined with logic operators. The following operators are allowed: AND, +, OR, NOT and -.

Note: Boolean operators must be ALL CAPS

AND

The AND operator is the default conjunction operator. This means that if there is no Boolean operator between two terms, the AND operator is used. The AND operator matches records where both terms exist anywhere in the field of a record.

To search for records that contain "economics" and "Keynes" use the query:

economics Keynes

or

economics AND Keynes
+

The "+" or required operator requires that the term after the "+" symbol exist somewhere in the field of a record.

To search for records that must contain "economics" and may contain "Keynes" use the query:

+economics Keynes
OR

The OR operator links two terms and finds a matching record if either of the terms exist in a record.

To search for documents that contain either "economics Keynes" or just "Keynes" use the query:

"economics Keynes" OR Keynes
NOT

The NOT operator excludes records that contain the term after NOT.

To search for documents that contain "economics" but not "Keynes" use the query:

economics NOT Keynes

Note: The NOT operator cannot be used with just one term. For example, the following search will return no results:

NOT economics
-

The - or prohibit operator excludes documents that contain the term after the "-" symbol.

To search for documents that contain "economics" but not "Keynes" use the query:

economics -Keynes
Whoops! There was an error.
Whoops \ Exception \ ErrorException (E_WARNING)
fopen(/tmp/vufind_wiko_sessions/sess_g8um93719ek9r8efqf7fpms7qe): Failed to open stream: No space left on device Whoops\Exception\ErrorException thrown with message "fopen(/tmp/vufind_wiko_sessions/sess_g8um93719ek9r8efqf7fpms7qe): Failed to open stream: No space left on device" Stacktrace: #5 Whoops\Exception\ErrorException in /opt/vufind/module/VuFind/src/VuFind/Session/File.php:159 #4 fopen in /opt/vufind/module/VuFind/src/VuFind/Session/File.php:159 #3 VuFind\Session\File:saveSession in /opt/vufind/module/VuFind/src/VuFind/Session/AbstractBase.php:192 #2 VuFind\Session\AbstractBase:write in [internal]:0 #1 session_write_close in /opt/vufind/vendor/laminas/laminas-session/src/SessionManager.php:247 #0 Laminas\Session\SessionManager:writeClose in [internal]:0
5
Whoops\Exception\ErrorException
/module/VuFind/src/VuFind/Session/File.php159
4
fopen
/module/VuFind/src/VuFind/Session/File.php159
3
VuFind\Session\File saveSession
/module/VuFind/src/VuFind/Session/AbstractBase.php192
2
VuFind\Session\AbstractBase write
[internal]0
1
session_write_close
/vendor/laminas/laminas-session/src/SessionManager.php247
0
Laminas\Session\SessionManager writeClose
[internal]0
            if (filemtime($filename) + $maxlifetime < time()) {
                unlink($filename);
                $count++;
            }
        }
        return $count;
    }
 
    /**
     * A function that is called internally when session data is to be saved.
     *
     * @param string $sessId The current session ID
     * @param string $data   The session data to write
     *
     * @return bool
     */
    protected function saveSession($sessId, $data): bool
    {
        $sessFile = $this->path . '/sess_' . $sessId;
        if ($handle = fopen($sessFile, 'w')) {
            $return = false;
            // Lock the file for exclusive access to avoid issues with multiple
            // processes writing session simultaneously:
            if (flock($handle, LOCK_EX)) {
                $return = fwrite($handle, $data);
                // Make sure that there's no trailing data by truncating the file to
                // the correct length:
                ftruncate($handle, strlen($data));
                fflush($handle);
                flock($handle, LOCK_UN);
            }
            fclose($handle);
            if ($return !== false) {
                return true;
            }
        }
        // If we got this far, something went wrong with the file output...
        // It is tempting to throw an exception here, but this code is called
        // outside of the context of exception handling, so all we can do is
        // echo a message.
Arguments
  1. "fopen(/tmp/vufind_wiko_sessions/sess_g8um93719ek9r8efqf7fpms7qe): Failed to open stream: No space left on device"
    
            if (filemtime($filename) + $maxlifetime < time()) {
                unlink($filename);
                $count++;
            }
        }
        return $count;
    }
 
    /**
     * A function that is called internally when session data is to be saved.
     *
     * @param string $sessId The current session ID
     * @param string $data   The session data to write
     *
     * @return bool
     */
    protected function saveSession($sessId, $data): bool
    {
        $sessFile = $this->path . '/sess_' . $sessId;
        if ($handle = fopen($sessFile, 'w')) {
            $return = false;
            // Lock the file for exclusive access to avoid issues with multiple
            // processes writing session simultaneously:
            if (flock($handle, LOCK_EX)) {
                $return = fwrite($handle, $data);
                // Make sure that there's no trailing data by truncating the file to
                // the correct length:
                ftruncate($handle, strlen($data));
                fflush($handle);
                flock($handle, LOCK_UN);
            }
            fclose($handle);
            if ($return !== false) {
                return true;
            }
        }
        // If we got this far, something went wrong with the file output...
        // It is tempting to throw an exception here, but this code is called
        // outside of the context of exception handling, so all we can do is
        // echo a message.
        // Anecdotal testing Today and Yesterday seems to indicate destroy()
        //   is called by the garbage collector and everything is good.
        // Something to keep in mind though.
        return 0;
    }
 
    /**
     * Write function that is called when session data is to be saved.
     *
     * @param string $sessId The current session ID
     * @param string $data   The session data to write
     *
     * @return bool
     */
    public function write($sessId, $data): bool
    {
        if ($this->writesDisabled) {
            return true;
        }
        return $this->saveSession($sessId, $data);
    }
 
    /**
     * A function that is called internally when session data is to be saved.
     *
     * @param string $sessId The current session ID
     * @param string $data   The session data to write
     *
     * @return bool
     */
    abstract protected function saveSession($sessId, $data): bool;
}
 
     *
     * @return void
     */
    public function writeClose()
    {
        // The assumption is that we're using PHP's ext/session.
        // session_write_close() will actually overwrite $_SESSION with an
        // empty array on completion -- which leads to a mismatch between what
        // is in the storage object and $_SESSION. To get around this, we
        // temporarily reset $_SESSION to an array, and then re-link it to
        // the storage object.
        //
        // Additionally, while you _can_ write to $_SESSION following a
        // session_write_close() operation, no changes made to it will be
        // flushed to the session handler. As such, we now mark the storage
        // object isImmutable.
        $storage = $this->getStorage();
        if (! $storage->isImmutable()) {
            $_SESSION = $storage->toArray(true);
            session_write_close();
            $storage->fromArray($_SESSION);
            $storage->markImmutable();
        }
    }
 
    /**
     * Attempt to set the session name
     *
     * If the session has already been started, or if the name provided fails
     * validation, an exception will be raised.
     *
     * @param  string $name
     * @return SessionManager
     * @throws Exception\InvalidArgumentException
     */
    public function setName($name)
    {
        if ($this->sessionExists()) {
            throw new Exception\InvalidArgumentException(
                'Cannot set session name after a session has already started'

Environment & details:

empty
empty
empty
empty
Key Value
__Laminas
array:2 [
  "_REQUEST_ACCESS_TIME" => 1789103066.5343
  "_VALID" => array:1 [
    "Laminas\Session\Validator\Id" => "g8um93719ek9r8efqf7fpms7qe"
  ]
]
SessionState
Laminas\Stdlib\ArrayObject {#966}
Key Value
REDIRECT_SCRIPT_URL
"/Help/search"
REDIRECT_SCRIPT_URI
"https://library.wiko-berlin.de/Help/search"
REDIRECT_VUFIND_ENV
"development"
REDIRECT_VUFIND_LOCAL_DIR
"/opt/vufind/local"
REDIRECT_VUFIND_LOCAL_MODULES
"Wiko,WikoSearch"
REDIRECT_HTTPS
"on"
REDIRECT_SSL_TLS_SNI
"library.wiko-berlin.de"
REDIRECT_STATUS
"200"
SCRIPT_URL
"/Help/search"
SCRIPT_URI
"https://library.wiko-berlin.de/Help/search"
VUFIND_ENV
"development"
VUFIND_LOCAL_DIR
"/opt/vufind/local"
VUFIND_LOCAL_MODULES
"Wiko,WikoSearch"
HTTPS
"on"
SSL_TLS_SNI
"library.wiko-berlin.de"
HTTP_USER_AGENT
"CCBot/2.0 (https://commoncrawl.org/faq/)"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_ACCEPT_LANGUAGE
"en-US,en;q=0.5"
HTTP_ACCEPT_ENCODING
"zstd, br, gzip"
HTTP_HOST
"library.wiko-berlin.de"
HTTP_CONNECTION
"Keep-Alive"
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
SERVER_SIGNATURE
"<address>Apache/2.4.58 (Ubuntu) Server at library.wiko-berlin.de Port 443</address>\n"
SERVER_SOFTWARE
"Apache/2.4.58 (Ubuntu)"
SERVER_NAME
"library.wiko-berlin.de"
SERVER_ADDR
"172.16.1.183"
SERVER_PORT
"443"
REMOTE_ADDR
"18.97.14.83"
DOCUMENT_ROOT
"/var/www/html"
REQUEST_SCHEME
"https"
CONTEXT_PREFIX
"/"
CONTEXT_DOCUMENT_ROOT
"/opt/vufind/public/"
SERVER_ADMIN
"[no address given]"
SCRIPT_FILENAME
"/opt/vufind/public/index.php"
REMOTE_PORT
"54912"
REDIRECT_URL
"/Help/search"
GATEWAY_INTERFACE
"CGI/1.1"
SERVER_PROTOCOL
"HTTP/1.1"
REQUEST_METHOD
"GET"
QUERY_STRING
""
REQUEST_URI
"/Help/search"
SCRIPT_NAME
"/index.php"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1789103066.5183
REQUEST_TIME
1789103066
empty
0. Whoops\Handler\PrettyPageHandler
Cannot write session to /tmp/vufind_wiko_sessions/sess_g8um93719ek9r8efqf7fpms7qe Whoops! There was an error.
Whoops \ Exception \ ErrorException (E_WARNING)
session_write_close(): Failed to write session data using user defined save handler. (session.save_path: /var/lib/php/sessions, handler: VuFind\Session\File::write) Whoops\Exception\ErrorException thrown with message "session_write_close(): Failed to write session data using user defined save handler. (session.save_path: /var/lib/php/sessions, handler: VuFind\Session\File::write)" Stacktrace: #2 Whoops\Exception\ErrorException in /opt/vufind/vendor/laminas/laminas-session/src/SessionManager.php:247 #1 session_write_close in /opt/vufind/vendor/laminas/laminas-session/src/SessionManager.php:247 #0 Laminas\Session\SessionManager:writeClose in [internal]:0
2
Whoops\Exception\ErrorException
/vendor/laminas/laminas-session/src/SessionManager.php247
1
session_write_close
/vendor/laminas/laminas-session/src/SessionManager.php247
0
Laminas\Session\SessionManager writeClose
[internal]0
     *
     * @return void
     */
    public function writeClose()
    {
        // The assumption is that we're using PHP's ext/session.
        // session_write_close() will actually overwrite $_SESSION with an
        // empty array on completion -- which leads to a mismatch between what
        // is in the storage object and $_SESSION. To get around this, we
        // temporarily reset $_SESSION to an array, and then re-link it to
        // the storage object.
        //
        // Additionally, while you _can_ write to $_SESSION following a
        // session_write_close() operation, no changes made to it will be
        // flushed to the session handler. As such, we now mark the storage
        // object isImmutable.
        $storage = $this->getStorage();
        if (! $storage->isImmutable()) {
            $_SESSION = $storage->toArray(true);
            session_write_close();
            $storage->fromArray($_SESSION);
            $storage->markImmutable();
        }
    }
 
    /**
     * Attempt to set the session name
     *
     * If the session has already been started, or if the name provided fails
     * validation, an exception will be raised.
     *
     * @param  string $name
     * @return SessionManager
     * @throws Exception\InvalidArgumentException
     */
    public function setName($name)
    {
        if ($this->sessionExists()) {
            throw new Exception\InvalidArgumentException(
                'Cannot set session name after a session has already started'
Arguments
  1. "session_write_close(): Failed to write session data using user defined save handler. (session.save_path: /var/lib/php/sessions, handler: VuFind\Session\File::write)"
    
     *
     * @return void
     */
    public function writeClose()
    {
        // The assumption is that we're using PHP's ext/session.
        // session_write_close() will actually overwrite $_SESSION with an
        // empty array on completion -- which leads to a mismatch between what
        // is in the storage object and $_SESSION. To get around this, we
        // temporarily reset $_SESSION to an array, and then re-link it to
        // the storage object.
        //
        // Additionally, while you _can_ write to $_SESSION following a
        // session_write_close() operation, no changes made to it will be
        // flushed to the session handler. As such, we now mark the storage
        // object isImmutable.
        $storage = $this->getStorage();
        if (! $storage->isImmutable()) {
            $_SESSION = $storage->toArray(true);
            session_write_close();
            $storage->fromArray($_SESSION);
            $storage->markImmutable();
        }
    }
 
    /**
     * Attempt to set the session name
     *
     * If the session has already been started, or if the name provided fails
     * validation, an exception will be raised.
     *
     * @param  string $name
     * @return SessionManager
     * @throws Exception\InvalidArgumentException
     */
    public function setName($name)
    {
        if ($this->sessionExists()) {
            throw new Exception\InvalidArgumentException(
                'Cannot set session name after a session has already started'

Environment & details:

empty
empty
empty
empty
Key Value
__Laminas
array:2 [
  "_REQUEST_ACCESS_TIME" => 1789103066.5343
  "_VALID" => array:1 [
    "Laminas\Session\Validator\Id" => "g8um93719ek9r8efqf7fpms7qe"
  ]
]
SessionState
Laminas\Stdlib\ArrayObject {#966}
Key Value
REDIRECT_SCRIPT_URL
"/Help/search"
REDIRECT_SCRIPT_URI
"https://library.wiko-berlin.de/Help/search"
REDIRECT_VUFIND_ENV
"development"
REDIRECT_VUFIND_LOCAL_DIR
"/opt/vufind/local"
REDIRECT_VUFIND_LOCAL_MODULES
"Wiko,WikoSearch"
REDIRECT_HTTPS
"on"
REDIRECT_SSL_TLS_SNI
"library.wiko-berlin.de"
REDIRECT_STATUS
"200"
SCRIPT_URL
"/Help/search"
SCRIPT_URI
"https://library.wiko-berlin.de/Help/search"
VUFIND_ENV
"development"
VUFIND_LOCAL_DIR
"/opt/vufind/local"
VUFIND_LOCAL_MODULES
"Wiko,WikoSearch"
HTTPS
"on"
SSL_TLS_SNI
"library.wiko-berlin.de"
HTTP_USER_AGENT
"CCBot/2.0 (https://commoncrawl.org/faq/)"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_ACCEPT_LANGUAGE
"en-US,en;q=0.5"
HTTP_ACCEPT_ENCODING
"zstd, br, gzip"
HTTP_HOST
"library.wiko-berlin.de"
HTTP_CONNECTION
"Keep-Alive"
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
SERVER_SIGNATURE
"<address>Apache/2.4.58 (Ubuntu) Server at library.wiko-berlin.de Port 443</address>\n"
SERVER_SOFTWARE
"Apache/2.4.58 (Ubuntu)"
SERVER_NAME
"library.wiko-berlin.de"
SERVER_ADDR
"172.16.1.183"
SERVER_PORT
"443"
REMOTE_ADDR
"18.97.14.83"
DOCUMENT_ROOT
"/var/www/html"
REQUEST_SCHEME
"https"
CONTEXT_PREFIX
"/"
CONTEXT_DOCUMENT_ROOT
"/opt/vufind/public/"
SERVER_ADMIN
"[no address given]"
SCRIPT_FILENAME
"/opt/vufind/public/index.php"
REMOTE_PORT
"54912"
REDIRECT_URL
"/Help/search"
GATEWAY_INTERFACE
"CGI/1.1"
SERVER_PROTOCOL
"HTTP/1.1"
REQUEST_METHOD
"GET"
QUERY_STRING
""
REQUEST_URI
"/Help/search"
SCRIPT_NAME
"/index.php"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1789103066.5183
REQUEST_TIME
1789103066
empty
0. Whoops\Handler\PrettyPageHandler