Issue/vivo 3606 : add language-specific sorting and label fields to search index (#321)

* Add select query document modifier with dynamic target field; use locale-specific sort fields when available.

* Add i18nized labels to index for autocomplete

* Remove lowercasing from label query

* Improved document modifier for multilingual field with defined suffix name

* Improved document modifier for multilingual field with defined suffix name

* refact: reverted access modifier changes

* Lowercase label in documentModifierI18nSort in case old solr schema is used which doesn't have lowercase filter

* fix: fixed queries and locale names

* fix: renamed new document modifier

* fix: use linkedHashMap to retain map sort fields order

* refact: extracted buildAndExecuteVClassQuery(List<String> classUris, int page, int pageSize, String alpha, VitroRequest vreq)

* fix: removed unused import

* fix: constant name aligned with other suffix

Co-authored-by: Brian Lowe <brian@ontocale.com>
This commit is contained in:
Georgy Litvinov 2022-08-23 16:23:43 +02:00 committed by GitHub
parent 6ad364f9ee
commit df3c4a88ae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 327 additions and 27 deletions

View file

@ -0,0 +1,16 @@
@prefix : <http://vitro.mannlib.cornell.edu/ns/vitro/ApplicationSetup#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
:documentModifier_multilingual_label
a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryI18nDocumentModifier> ,
<java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ;
rdfs:label "multilingual label document modifier" ;
:hasTargetSuffix "_label_display" ;
:hasSelectQuery """
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT (MIN(?label) AS ?singleLabel ) WHERE {
?uri rdfs:label ?label .
BIND (LANG(?label) as ?lang )
} GROUP BY ?lang ORDER BY ?lang
""" .

View file

@ -0,0 +1,16 @@
@prefix : <http://vitro.mannlib.cornell.edu/ns/vitro/ApplicationSetup#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
:documentModifier_multilingual_sort
a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryI18nDocumentModifier> ,
<java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ;
rdfs:label "multilingual sort document modifier" ;
:hasTargetSuffix "_label_sort" ;
:hasSelectQuery """
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ( LCASE(MIN(?label)) AS ?singleLabel ) WHERE {
?uri rdfs:label ?label .
BIND (LANG(?label) as ?lang )
} GROUP BY ?lang ORDER BY ?lang
""" .