Found if you create a range index on email then you can use
cts:value-matches to get the matching emails.  If you need the documents
that contain those emails you can use those values in the search.

xdmp:document-insert("1.xml", <doc><email>[email protected]</email></doc>),
xdmp:document-insert("2.xml", <doc><email>[email protected]
</email><email>rob@xxxcom</email></doc>);
cts:search(/, cts:element-value-query(xs:QName("email"),
cts:value-match(cts:element-reference(xs:QName("email")),
"*@foo.com"), "exact"), "unfiltered")

-Will

On Tue, Oct 25, 2016 at 11:47 PM, William Sawyer <[email protected]>
wrote:

> On second thought it seems to be a combination of the two that the indexes
> think its a hit.  If you delete either one it matches correctly.
>
> -Will
>
> On Tue, Oct 25, 2016 at 11:32 PM, William Sawyer <[email protected]>
> wrote:
>
>> The second document is a hit because of the first email in the document
>> matches the query.  For example if you remove the first email from the
>> second document then you only get one result.
>>
>> xdmp:document-insert("1.xml", <doc><email>[email protected]</email></doc>),
>> xdmp:document-insert("2.xml", <doc><email>rob@xxxcom</email></doc>);
>> cts:search(/doc, cts:element-value-query(xs:QName("email"), "*@foo.com",
>> "wildcarded"), "unfiltered")
>>
>> result:
>> <doc><email>[email protected]</email></doc>
>>
>> -Will
>>
>> On Mon, Oct 24, 2016 at 12:36 PM, Whitby, Rob <[email protected]>
>> wrote:
>>
>>> Thanks, I tried on 8.0-6 with no luck.
>>>
>>>
>>>
>>>
>>>
>>> On 24/10/2016, 16:36, "[email protected] on
>>> behalf of Will Thompson" <[email protected] on
>>> behalf of [email protected]> wrote:
>>>
>>>
>>>
>>>     Hi Rob,
>>>
>>>
>>>
>>>     Are you running the most recent update, 8.0-6? There were some
>>> wildcard-related bugfixes in that release, including this one: "40053:
>>> punctuation sensitive wildcarded document matching with
>>> cts:element-value-query might give incorrect results". It's unclear what
>>> exactly that fixes, but it's worth a shot.
>>>
>>>
>>>
>>>     -Will
>>>
>>>
>>>
>>>
>>>
>>>     > On Oct 24, 2016, at 9:18 AM, Whitby, Rob <[email protected]>
>>> wrote:
>>>
>>>     >
>>>
>>>     > Hi,
>>>
>>>     >
>>>
>>>     > I’m having trouble getting a preceding-wildcard search to work
>>> unfiltered. In 2.xml, the presence of the 2nd email ending with "com"
>>> (rob@xxxcom) makes it a match for the search "*@foo.com”.
>>>
>>>     >
>>>
>>>     > I’ve tried with all the db indexes enabled - is this just not
>>> possible to resolve accurately without filtering?
>>>
>>>     >
>>>
>>>     > xdmp:document-insert("1.xml", <doc><email>[email protected]</email
>>> ></doc>),
>>>
>>>     > xdmp:document-insert("2.xml", <doc><email>[email protected]</e
>>> mail><email>rob@xxxcom</email></doc>);
>>>
>>>     > cts:search(/, cts:element-value-query(xs:QName("email"), "*@
>>> foo.com", "wildcarded"), "unfiltered")
>>>
>>>     >
>>>
>>>     >
>>>
>>>     >
>>>
>>>     > Thanks
>>>
>>>     > Rob
>>>
>>>     >
>>>
>>>     >
>>>
>>>     >
>>>
>>>     >
>>>
>>>     > _______________________________________________
>>>
>>>     > General mailing list
>>>
>>>     > [email protected]
>>>
>>>     > Manage your subscription at:
>>>
>>>     > http://developer.marklogic.com/mailman/listinfo/general
>>>
>>>
>>>
>>>     _______________________________________________
>>>
>>>     General mailing list
>>>
>>>     [email protected]
>>>
>>>     Manage your subscription at:
>>>
>>>     http://developer.marklogic.com/mailman/listinfo/general
>>>
>>>
>>>
>>> _______________________________________________
>>> General mailing list
>>> [email protected]
>>> Manage your subscription at:
>>> http://developer.marklogic.com/mailman/listinfo/general
>>>
>>>
>>
>
_______________________________________________
General mailing list
[email protected]
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to