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="&quot;" 
qtextpost="&quot;">
    <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="&quot;" qtextref="cts:text" qtextpost="&quot;">
>>>>>  <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

Reply via email to