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