diff --git a/src/server/sparql/Filters.js b/src/server/sparql/Filters.js index 90d9218e1caa85bf2853758070143fdc5c8c0690..7722d9409c9bde38a6fbbd691653506672a3e23a 100644 --- a/src/server/sparql/Filters.js +++ b/src/server/sparql/Filters.js @@ -195,16 +195,20 @@ const generateIntegerFilter = ({ }) => { const facetConfig = backendSearchConfig[facetClass].facets[facetID] const { start, end } = values + const typecasting = facetConfig.typecasting + ? facetConfig.typecasting + : 'BIND(xsd:integer(ROUND(?value)) as ?valueAsInteger)' let integerFilter = '' if (start === '') { - integerFilter = `xsd:integer(?value) <= ${end}` + integerFilter = `?valueAsInteger <= ${end}` } else if (end === '') { - integerFilter = `xsd:integer(?value) >= ${start}` + integerFilter = `?valueAsInteger >= ${start}` } else { - integerFilter = `xsd:integer(?value) >= ${start} && xsd:integer(?value) <= ${end}` + integerFilter = `?valueAsInteger >= ${start} && ?valueAsInteger <= ${end}` } const filterStr = ` ?${filterTarget} ${facetConfig.predicate} ?value . + ${typecasting} FILTER( ${integerFilter} ) diff --git a/src/server/sparql/sampo/perspective_configs/Perspective1Config.js b/src/server/sparql/sampo/perspective_configs/Perspective1Config.js index 0c44e8cd125b283ccfb9e3580f78f76cb14885b9..cc74179e8e360cdf607589a66020447956dd5470 100644 --- a/src/server/sparql/sampo/perspective_configs/Perspective1Config.js +++ b/src/server/sparql/sampo/perspective_configs/Perspective1Config.js @@ -128,7 +128,8 @@ export const perspective1Config = { facetValueFilter: '', labelPath: 'mmm-schema:height/crm:P90_has_value', predicate: 'mmm-schema:height/crm:P90_has_value', - type: 'integer' + type: 'integer', + typecasting: 'BIND(xsd:integer(ROUND(?value)) as ?valueAsInteger)' }, width: { id: 'width',