diff --git a/application/configs/application.ini b/application/configs/application.ini index df59f6da5..38f161ad4 100644 --- a/application/configs/application.ini +++ b/application/configs/application.ini @@ -241,6 +241,32 @@ search.index.field.year.order = 'PublishedDate,PublishedYear' ; Enrichment fields to be excluded from indexing (comma separated) search.index.enrichment.blacklist = 'opus_doi_json' +; WEIGHTED SEARCH +; if set to `1` a weighted search will be used where query matches in particular fields can be +; assigned different importance +search.weightedSearch = 1 + +; boost factors for fields which increase (>1.0) or decrease (<1.0) the importance of query matches +; in that field; set a field's boost factor to `0` to ignore matches in that field +search.simple.abstract = 1 +search.simple.author = 1 +search.simple.contributing_corporation = 1 +search.simple.creating_corporation = 1 +search.simple.fulltext = 1 +search.simple.identifier = 1 +search.simple.persons = 1 +search.simple.publisher_name = 1 +search.simple.publisher_place = 1 +search.simple.subject = 1 +search.simple.title = 1 +search.simple.title_additional = 1 +search.simple.title_parent = 1 +search.simple.title_sub = 1 + +; multiplier (integer >0) to further increase field-specific boost factors (and thus the importance +; of matches) when matching phrases (i.e., in cases where all query terms appear in close proximity) +search.weightMultiplier = 5 + ;DOCTYPE VALIDATION SCHEMA FILE ; TODO determine path dynamically (does this belong into the framework) documentTypes.xmlSchema = APPLICATION_PATH "/vendor/opus4-repo/framework/library/Opus/Document/documenttype.xsd" diff --git a/application/configs/config.ini.template b/application/configs/config.ini.template index 393b00edf..7e3928ff5 100644 --- a/application/configs/config.ini.template +++ b/application/configs/config.ini.template @@ -68,6 +68,17 @@ searchengine.solr.default.service.extract.endpoint.localhost.timeout = 10 ; Turn on to display document titles of search results in user interface language if possible search.result.display.preferUserInterfaceLanguage = 0 +;WEIGHTED SEARCH +; if set to `1` a weighted search will be used where query matches in particular fields can be +; assigned different importance +;search.weightedSearch = 1 + +; boost factors for fields which increase (>1.0) or decrease (<1.0) the importance of query matches +; in that field +;search.simple.title = 10 +; boost factors for your instance's enrichment fields can be added in a similar fashion, e.g.: +;search.simple.Relation = 1.5 + ;MAIL SETTINGS ; mail.opus.smtp = localhost; SMTP server for sending email ; mail.opus.port = 25 ; SMTP server port for sending email diff --git a/build.xml b/build.xml index 69743c91e..dac93df74 100644 --- a/build.xml +++ b/build.xml @@ -8,7 +8,7 @@ - + diff --git a/composer.json b/composer.json index 4dc83ae0b..8ca7cba96 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "jpgraph/jpgraph": "dev-master", "opus4-repo/opus4-common": "dev-master as 4.8.1", "opus4-repo/framework": "dev-master as 4.8.1", - "opus4-repo/search": "4.7.3.x-dev || 4.8.1.x-dev", + "opus4-repo/search": "dev-weightedSearch37 as 4.8.1", "opus4-repo/opus4-bibtex": "^4.8", "opus4-repo/opus4-import": "dev-main as 4.8.1", "opus4-repo/opus4-pdf": "^4.8", diff --git a/tests/bin/install_solr_docker.sh b/tests/bin/install_solr_docker.sh index 333f03a73..daf8c93aa 100755 --- a/tests/bin/install_solr_docker.sh +++ b/tests/bin/install_solr_docker.sh @@ -1,11 +1,11 @@ #!/usr/bin/env bash # -# Script to install Solr. By default, version 9.4.0 will be installed. +# Script to install Solr. By default, version 9.5.0 will be installed. # Another Solr version can be specified using the `--version` option. # Define variables and their default values -version="9.4.0" +version="9.5.0" # Parse command line options while [ $# -gt 0 ]; do @@ -27,7 +27,7 @@ done # Check --version input if ! [[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then echo "Unrecognized version number: $version" - echo "The --version option requires a 3-digit version number, e.g.: 9.4.0" + echo "The --version option requires a 3-digit version number, e.g.: 9.5.0" exit 1 fi