Forgot to mention.... The usual solution is to not use Lucene, and to use a filter instead.
I'm not familiar with using Lucene with Jena, but if it works in the way I presume, then your WHERE clause becomes: ?s text:query (rdfs:label ?qlabel) ; rdfs:label ?label FILTER regex(?qlabel, "^?has", "i") Paul On Thu, Jun 12, 2014 at 3:22 PM, Paul Gearon <[email protected]> wrote: > As you say, Jena is using Lucene for indexing and searching here. If you > check on Lucene querying you will see that it does not support using a > wildcard as the first character. > > http://lucene.apache.org/core/2_9_4/queryparsersyntax.html > > The requirement is based on how Lucene looks up the indexes. In the worst > case, you could try a union between the various options that you expect. > > Regards, > Paul > > > > On Thu, Jun 12, 2014 at 2:29 PM, Willie Milnor <[email protected]> wrote: > >> Hello, >> >> Perhaps I'm missing something in the docs, but when I attempt to execute >> the query below, I am receiving the error below that. It looks like I >> could fix this if I could access the CommonQueryParserConfiguration used >> for Lucene, but I don't see how to do that. Is there a way to do what I'm >> trying, or is there another way to allow a wildcard as the first >> character? >> >> >> PREFIX text: <http://jena.apache.org/text#> >> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> >> SELECT DISTINCT ?s ?label >> WHERE { >> { >> ?s text:query (rdfs:label "?has*") ; >> rdfs:label ?label . >> } >> } >> ORDER BY ?label >> >> >> Caused by: org.apache.lucene.queryparser.classic.ParseException: Cannot >> parse 'string:?has*': '*' or '?' not allowed as first character in >> WildcardQuery >> at >> >> org.apache.lucene.queryparser.classic.QueryParserBase.parse(QueryParserBase.java:126) >> at >> >> org.apache.jena.query.text.TextIndexLucene.query$(TextIndexLucene.java:259) >> at >> org.apache.jena.query.text.TextIndexLucene.query(TextIndexLucene.java:244) >> ... 34 more >> Caused by: org.apache.lucene.queryparser.classic.ParseException: '*' or >> '?' >> not allowed as first character in WildcardQuery >> at >> >> org.apache.lucene.queryparser.classic.QueryParserBase.getWildcardQuery(QueryParserBase.java:1001) >> at >> >> org.apache.lucene.queryparser.classic.QueryParserBase.handleBareTokenQuery(QueryParserBase.java:1099) >> at >> >> org.apache.lucene.queryparser.classic.QueryParser.Term(QueryParser.java:358) >> at >> >> org.apache.lucene.queryparser.classic.QueryParser.Clause(QueryParser.java:257) >> at >> >> org.apache.lucene.queryparser.classic.QueryParser.Query(QueryParser.java:181) >> at >> >> org.apache.lucene.queryparser.classic.QueryParser.TopLevelQuery(QueryParser.java:170) >> at >> >> org.apache.lucene.queryparser.classic.QueryParserBase.parse(QueryParserBase.java:121) >> -- >> Cheers, >> Willie >> > >
