I'm having trouble making other that one word queries.
For example "language <any other words here>" gives same result,
regardless of the other words.
Using quotes "\"some query\"" returns no results.
So I would like to make "fuzzy" multiword queries where for example
"language technology" returns different results that "language management"
And also to query "\"language technology\"" which should return exact
matches.
I'm using latest Jena with AnalyzingQueryParser, which gives warning
WARN TextIndexLucene :: Deprecated query parser type
'AnalyzingQueryParser'. Defaulting to standard QueryParser
Also tried other parsers.
Config:
@prefix :<http://localhost/jena_example/#> .
@prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:<http://www.w3.org/2000/01/rdf-schema#> .
@prefix tdb:<http://jena.hpl.hp.com/2008/tdb#> .
@prefix ja:<http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix text:<http://jena.apache.org/text#> .
@prefix skos:<http://www.w3.org/2004/02/skos/core#> .
@prefix fuseki:<http://jena.apache.org/fuseki#> .
@prefix vcard:<http://www.w3.org/2006/vcard/ns#> .
@prefix dcterms:<http://purl.org/dc/terms/> .
@prefix lsrm:<https://resource.lingsoft.fi/ns/resource_meta#> .
## Example of a TDB dataset and text index
## Initialize TDB
[] ja:loadClass "org.apache.jena.tdb.TDB" .
tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset .
tdb:GraphTDB rdfs:subClassOf ja:Model .
## Initialize text query
[] ja:loadClass "org.apache.jena.query.text.TextQuery" .
# A TextDataset is a regular dataset with a text index.
text:TextDataset rdfs:subClassOf ja:RDFDataset .
# Lucene index
text:TextIndexLucene rdfs:subClassOf text:TextIndex .
:text_dataset rdf:type text:TextDataset ;
text:dataset :my_dataset ;
text:index <#indexLucene> ;
.
# A TDB dataset used for RDF storage
:my_dataset rdf:type tdb:DatasetTDB ;
tdb:location "/home/text/tools/jena_data/" ;
# tdb:unionDefaultGraph true ; # Optional
.
# Text index description
<#indexLucene> a text:TextIndexLucene ;
text:directory <file:/home/text/tools/jena_text_index/> ;
text:entityMap <#entMap> ;
text:storeValues true ;
text:analyzer [ a text:StandardAnalyzer ] ;
text:queryAnalyzer [ a text:KeywordAnalyzer ] ;
text:queryParser text:AnalyzingQueryParser ;
text:multilingualSupport true ;
.
<#entMap> a text:EntityMap ;
text:defaultField "vcard_fn" ;
text:entityField "uri" ;
text:uidField "uid" ;
text:langField "lang" ;
text:graphField "graph" ;
text:map (
[ text:field "vcard_fn" ; text:predicate vcard:fn ]
[ text:field "skos_prefLabel" ; text:predicate skos:prefLabel ]
[ text:field "skos_altLabel" ; text:predicate skos:altLabel ]
[ text:field "lsrm_content" ; text:predicate lsrm:content]
[ text:field "dcterms_title" ; text:predicate dcterms:title]
[ text:field "dcterms_description" ; text:predicate
dcterms:description]
) .
<#service> rdf:type fuseki:Service ;
fuseki:name "/ds" ; # http://host:port/ds-ro
fuseki:serviceQuery "query" ; # SPARQL query service
fuseki:serviceQuery "sparql" ; # SPARQL query service
fuseki:serviceUpdate "update" ; # SPARQL update service
fuseki:serviceUpload "upload" ; # Non-SPARQL upload
service
fuseki:serviceReadWriteGraphStore "data" ; # SPARQL Graph
store protocol (read and write)
fuseki:dataset :text_dataset ;
.