Both are true, no part of the SPARQL specification in any way requires
Lucene

Text query is an ARQ specific extension to SPARQL that uses Lucene

Rob

On 10/7/13 2:52 PM, "Andrea Dessi" <[email protected]> wrote:

>Hi Rob,
>
>ok thanks for your quickly reply.
>
>in this case then when you say
>
>"REGEX has absolutely no relation to Lucene,"
>
>means maybe "*FILTER ** *has absolutely no relation to Lucene"?
>
>
>
>
>
>2013/10/7 Rob Vesse <[email protected]>
>
>> No, as Andy explained they are two completely different mechanisms
>>
>> REGEX has absolutely no relation to Lucene, it is a part of standard
>> SPARQL and causes the query engine to have to evaluate the regular
>> expression for every possible solution returned by the inner portion of
>> the query to decided whether to retain that solution or not.
>>
>> Text querying uses a Lucene index and so can pick out only solutions
>>that
>> satisfy some Lucene query and so is substantially more performant.
>>
>> In the example given your FILTER clause is superfluous since the text
>> query ensures that only subjects which satisfy the text query are
>>matched
>> so having the FILTER as well is doing unnecessary work over the possible
>> solutions produced by the text query.
>>
>> Rob
>>
>> On 10/7/13 1:54 PM, "Andrea Dessi" <[email protected]> wrote:
>>
>> >Thank you Andy for your previously reply.
>> >
>> >My doubts born for example in this query
>> >
>> >
>> >SELECT DISTINCT ?s
>> >
>> >WHERE
>> >
>> >{
>> >
>> >*?s text:query (dbpprop:type 'Daily newspaper')* .
>> >
>> >?s dbpprop:type ?v1 .
>> >
>> >*FILTER ( REGEX(STR(?v1), "Daily newspaper" , "i") )*
>> >}
>> >
>> >
>> >Lucene indexes work together (one Lucene query) or not?
>> >
>> >Thanks again
>> >
>> >--
>> >Andrea.
>> >
>> >
>> >2013/10/5 Andy Seaborne <[email protected]>
>> >
>> >> On 05/10/13 08:45, Andrea Dessi wrote:
>> >>
>> >>> Hi,
>> >>>
>> >>> I've got jena-text working to do Lucene indexing, and I'd like to
>>know
>> >>>the
>> >>> technical differences  between text:query and filter regex.
>> >>>
>> >>> Thanks for any help,
>> >>>
>> >>> Andrea
>> >>>
>> >>>
>> >> Hi Andrea,
>> >>
>> >> I'm not sure what aspect you mean but
>> >>
>> >> text:query is a property function - it looks like part of the basic
>> >>graph
>> >> pattern and it can generate answers, binding variables.  A filter can
>> >>not
>> >> do that - all it can do is take a stream of possibilities and accept
>>or
>> >> reject them.  Optimizers may do magic things in certain cases but, in
>> >> general, it is a case of generating all possibilities which may may
>>be a
>> >> huge amount of work, and reducing it to a few results.  That's why
>> >>FILTER
>> >> regex can be very expensive.
>> >>
>> >> The lucene (or Solr) index used by text:query only generate the
>>possible
>> >> matches because, being an index, the Lucene engine looks up the query
>> >> string (or some part of) to find a moderate number of possibilites.
>> >>There
>> >> is no "get everything and reduce" effect.
>> >>
>> >>         Andy
>> >>
>> >>
>> >
>> >
>> >--
>> >Andrea Dessi
>>
>>
>>
>>
>>
>
>
>-- 
>Andrea Dessi




Reply via email to