Skip to content
Snippets Groups Projects
JenaQuery.js 827 B
Newer Older
import { runSelectQuery } from './SparqlApi'
esikkala's avatar
esikkala committed
import { prefixes } from './sampo/SparqlQueriesPrefixes'
esikkala's avatar
esikkala committed
import { jenaQuery } from './SparqlQueriesGeneral'
import { makeObjectList } from './SparqlObjectMapper'
esikkala's avatar
esikkala committed
import { fullTextSearchProperties } from './sampo/SparqlQueriesFullText'

export const queryJenaIndex = async ({
esikkala's avatar
esikkala committed
  backendSearchConfig,
  queryTerm,
esikkala's avatar
esikkala committed
  resultClass,
esikkala's avatar
esikkala committed
  resultFormat
}) => {
  let q = jenaQuery
esikkala's avatar
esikkala committed
  const endpoint = backendSearchConfig[resultClass].endpoint
esikkala's avatar
esikkala committed
  q = q.replace('<QUERY>', `?id text:query ('${queryTerm.toLowerCase()}' 2000) .`)
  q = q.replace('<RESULT_SET_PROPERTIES>', fullTextSearchProperties)
  const results = await runSelectQuery({
    query: prefixes + q,
esikkala's avatar
esikkala committed
    endpoint: endpoint.url,
    useAuth: endpoint.useAuth,
    resultMapper: makeObjectList,
    resultFormat
  })
  return results
esikkala's avatar
esikkala committed
}