I tried this query:

cts:search(/doc, 
  cts:element-query(xs:QName("published"), 
    cts:and-query((
      cts:element-value-query(xs:QName("pub"), "london")
      ,cts:not-query(cts:element-query(xs:QName("section"), cts:and-query(()) 
))))
    )
)

And get empty sequence.
However, document #2 has a pub-node equal to london and not section-node (in a 
published node). 



Mariano Grau
Dpto. Sistemas
Grupo Joly



-----Mensaje original-----
De: [email protected] en nombre de Geert Josten
Enviado el: mar 12/11/2013 11:13
Para: MarkLogic Developer Discussion
Asunto: Re: [MarkLogic Dev General] Rewrite xpath code in cts:search()
 
 Rewrite xpath code in cts:search()

Hi Mariano,



If you search for "*", then you ask for values with that exist. Try
replacing it with section value-query by an element-query with
cts:and-query(()) as sub-query..



Kind regards,

Geert



*Van:* [email protected] [mailto:
[email protected]] *Namens *Mariano Grau Calín
*Verzonden:* dinsdag 12 november 2013 9:52
*Aan:* [email protected]
*Onderwerp:* [MarkLogic Dev General] Rewrite xpath code in cts:search()



Hi all.

Given this two documents:

  <doc>
    <published>
      <pub>madrid</pub>
    </published>
  </doc>

  <doc>
    <published>
      <pub>madrid</pub>
      <section>sport</section>
    </published>
    <published>
      <pub>london</pub>
    </published>
  </doc>

This code returns document #2:

doc()/doc/published[pub='london' and not(section)]

If i run the next cts:search() code:

cts:search(/doc,
  cts:element-query(xs:QName("published"),
    cts:and-query((
      cts:element-value-query(xs:QName("pub"), "london")
      ,cts:not-query(cts:element-value-query(xs:QName("section"), "*" ))))
    )
)

Get 'your query returned an empty sequence'.
However, if change 'london' by 'madrid' get document #1.

The target is to search documents where published-node contain pub-node and
not section-node.

Thanks,

Mariano Grau
Dpto. Sistemas
Grupo Joly

<<winmail.dat>>

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

Reply via email to