Fantastic! Thanks, Mike.

On Mar 7, 2014, at 2:01 PM, Michael Blakeley wrote:

> 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

_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to