I think it's fixed. With 7.0-2.1 the search:parse test case yields an or-query of element-word-query terms:
<cts:or-query qtextjoin="OR" strength="10" qtextgroup="( )" xmlns:cts="http://marklogic.com/cts" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <cts:element-word-query qtextref="cts:text" qtextpre=""" qtextpost="""> <cts:element xmlns:_1="http://digital.library.ptsem.edu/ia">_1:title</cts:element> <cts:text>king james</cts:text> </cts:element-word-query> <cts:element-word-query qtextref="cts:text"> <cts:element xmlns:_1="http://digital.library.ptsem.edu/ia">_1:title</cts:element> <cts:text>authorized</cts:text> </cts:element-word-query> </cts:or-query> -- Mike On 7 Mar 2014, at 09:45 , Murray, Gregory <[email protected]> wrote: > Hi Charles (or anyone who might happen to know), > > Do you know if this bug has been fixed in ML 7.0? I'm still on 6.x, but I'd > upgrade for this bug fix alone. > > Thanks, > Greg > > > On Dec 12, 2013, at 8:43 AM, Murray, Gregory wrote: > >> Excellent. Thanks, Charles! >> >> On Dec 11, 2013, at 2:42 PM, Charles Greer wrote: >> >>> Hi Greg (and Mike), >>> >>> Thanks for the clear reproduction. I've filed a bug to fix this situation. >>> >>> Charles >>> >>> >>> >>> On 12/09/2013 12:14 PM, Murray, Gregory wrote: >>>> Thanks, Mike. Good to know. Looks like the output of search:parse confirms >>>> what I had found informally. >>>> >>>> >>>> On Dec 9, 2013, at 1:55 PM, Michael Blakeley wrote: >>>> >>>>> I couldn't say if that's a bug in your options or somewhere in >>>>> search.xqy, but I thought I'd pass along a debugging tip. Call >>>>> search:parse so you can see the query that is generated - and so other >>>>> folks can reproduce the problem. It's also a good idea to verify your >>>>> options using search:check-options and the strict option: yours seem to >>>>> be ok. >>>>> >>>>> xquery version "1.0-ml"; >>>>> import module namespace search="http://marklogic.com/appservices/search" >>>>> at "/MarkLogic/appservices/search/search.xqy"; >>>>> let $options := >>>>> <options xmlns="http://marklogic.com/appservices/search"> >>>>> <constraint name="title"> >>>>> <word> >>>>> <element ns="http://digital.library.ptsem.edu/ia" name="title"/> >>>>> </word> >>>>> </constraint> >>>>> <term> >>>>> <default ref="title"/> >>>>> </term> >>>>> </options> >>>>> return ( >>>>> search:check-options($options, true()), >>>>> search:parse('"king james" OR authorized', $options)) >>>>> >>>>> => >>>>> <cts:or-query qtextjoin="OR" strength="10" qtextgroup="( )" >>>>> xmlns:cts="http://marklogic.com/cts" >>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema"> >>>>> <cts:word-query qtextpre=""" qtextref="cts:text" qtextpost="""> >>>>> <cts:text>king james</cts:text> >>>>> </cts:word-query> >>>>> <cts:element-word-query qtextref="cts:text"> >>>>> <cts:element >>>>> xmlns:_1="http://digital.library.ptsem.edu/ia">_1:title</cts:element> >>>>> <cts:text>authorized</cts:text> >>>>> </cts:element-word-query> >>>>> </cts:or-query> >>>>> >>>>> This makes it obvious that the resulting query is not what you want: >>>>> "king james" term is a simple word-query term, and the "authorized" term >>>>> is an element-word-query term. >>>>> >>>>> -- Mike >>>>> >>>>> On 9 Dec 2013, at 09:47 , Murray, Gregory <[email protected]> >>>>> wrote: >>>>> >>>>>> After further experimentation, I am finding that <default> doesn't work >>>>>> as I would expect when an exact phrase is involved. For example, I was >>>>>> expecting this query: >>>>>> >>>>>> xquery version "1.0-ml"; >>>>>> import module namespace search="http://marklogic.com/appservices/search" >>>>>> at "/MarkLogic/appservices/search/search.xqy"; >>>>>> let $options := >>>>>> <options xmlns="http://marklogic.com/appservices/search"> >>>>>> <constraint name="title"> >>>>>> <word> >>>>>> <element ns="http://digital.library.ptsem.edu/ia" name="title"/> >>>>>> </word> >>>>>> </constraint> >>>>>> <term> >>>>>> <default ref="title"/> >>>>>> </term> >>>>>> </options> >>>>>> return search:search('"king james" OR authorized', $options) >>>>>> >>>>>> to return the same results as this query: >>>>>> >>>>>> xquery version "1.0-ml"; >>>>>> import module namespace search="http://marklogic.com/appservices/search" >>>>>> at "/MarkLogic/appservices/search/search.xqy"; >>>>>> let $options := >>>>>> <options xmlns="http://marklogic.com/appservices/search"> >>>>>> <constraint name="title"> >>>>>> <word> >>>>>> <element ns="http://digital.library.ptsem.edu/ia" name="title"/> >>>>>> </word> >>>>>> </constraint> >>>>>> </options> >>>>>> return search:search('title:"king james" OR title:authorized', $options) >>>>>> >>>>>> Not so! Instead, query #1 returns the same results as taking query #2 >>>>>> and changing title:"king james" to "king james" -- which clearly >>>>>> indicates that the <default> option is NOT applying the "title" >>>>>> constraint to quoted/exact phrases. >>>>>> >>>>>> Could this be a bug? The documentation for search:search, in the >>>>>> description of <term>, says that <default> "determines special handling >>>>>> to all terms". In my mind, an exact phrase *is* a term, and therefore >>>>>> the <default> constraint should be applied to exact phrases -- or am I >>>>>> misunderstanding what a "term" is? >>>>> _______________________________________________ >>>>> General mailing list >>>>> [email protected] >>>>> http://developer.marklogic.com/mailman/listinfo/general >>>> _______________________________________________ >>>> General mailing list >>>> [email protected] >>>> http://developer.marklogic.com/mailman/listinfo/general >>> >>> -- >>> Charles Greer >>> Senior Engineer >>> MarkLogic Corporation >>> [email protected] >>> Phone: +1 707 408 3277 >>> www.marklogic.com >>> >>> _______________________________________________ >>> General mailing list >>> [email protected] >>> http://developer.marklogic.com/mailman/listinfo/general >> >> _______________________________________________ >> General mailing list >> [email protected] >> http://developer.marklogic.com/mailman/listinfo/general > > _______________________________________________ > General mailing list > [email protected] > http://developer.marklogic.com/mailman/listinfo/general > _______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
