Hi, I'm a noob with XQuery and MarkLogic as well, but I've recently figured out how to do something along the lines of what you're after. I use the following options to search a TEI document and define the hits to be a particular node level inside the document:
<options xmlns="http://marklogic.com/appservices/search"> <!-This restricts the search to a particular URI, otherwise you will get hits from every document in your database. --> <additional-query>{cts:document-query(/URI/to/the/document/I/want/to/search/document.xml)}</additional-query> <!-This searchable expression defines the level of my hits to the <div> tags in the body of my diary. --> <searchable-expression xmlns:tei="http://www.tei-c.org/ns/1.0">{/tei:teiCorpus/tei:t...@xml:id="diary-ljb-1879-1881-1"]/tei:te...@type="diary"]/tei:body/tei:div}</searchable-expression> </options> You should try to set up your options with something like the following: <options xmlns="http://marklogic.com/appservices/search"> <additional-query>{cts:document-query(/URI/to/the/document/I/want/to/search/document.xml)}</additional-query> <searchable-expression xmlns:tei=http://www.my.namespace/ns/1.0>{//p[starts-with(ref:anchor/@id, "para_")]}</searchable-expression> </options> Good luck, Adam From: [email protected] [mailto:[email protected]] On Behalf Of Steiner, David J. (LNG-DAY) Sent: March 25, 2010 5:24 PM To: General Mark Logic Developer Discussion Subject: RE: [MarkLogic Dev General] RE: search:search options constraints Right, that's actually what I'm looking for - how to do what I want using the search API, not XPath. From: [email protected] [mailto:[email protected]] On Behalf Of Stewart Shelline Sent: Thursday, March 25, 2010 4:33 PM To: General Mark Logic Developer Discussion Subject: [MarkLogic Dev General] RE: search:search options constraints Another way to do this is in the <additional-query> element of search:search. You can use it to build complex queries using any of the cts:query functions-assuming you have the appropriate indexes set up. From: [email protected] [mailto:[email protected]] On Behalf Of Keith L. Breinholt Sent: Thursday, March 25, 2010 1:34 PM To: General Mark Logic Developer Discussion Subject: [MarkLogic Dev General] RE: search:search options constraints // p[starts-with(ref:anchor/@id, "para_")]/text[fn:contains( "sometext", .)] Keith L. Breinholt [email protected]<mailto:[email protected]> From: [email protected] [mailto:[email protected]] On Behalf Of Steiner, David J. (LNG-DAY) Sent: Thursday, March 25, 2010 1:21 PM To: [email protected] Subject: [MarkLogic Dev General] search:search options constraints I have an XML structure like this: ... <p xmlns="namespace1"> <ref:anchor id="para_2" xmlns:ref="namespace2"/> <text>This is a bunch of text that I want to search.</text> </p> ... I want to search for words (multiple terms: word1 AND word2 AND word3) in the <text> element of the <p> elements where the <ref:anchor>@id starts with the string "para_". <text> elements appear elsewhere and <p> elements do to... and there are other types of id values, such as "subpara_..." I'm trying to use search:search and I see how to constrain to a specific element or attribute (or collection, etc.), but how do you do more complex things - i.e., constrain to a specific element under a specific parent where a sibling's attribute starts with a particular string? Hopefully I've been clear - the XPath of the element I want to search: // p[starts-with(ref:anchor/@id, "para_")]/text Thanks, David Steiner Consulting Research Scientist Global Architecture & Research iLabs LexisNexis Group [email protected]<mailto:[email protected]> Toll Free: 800-227-9597 ext. 51894 Direct: 937-865-1894 NOTICE: This email message is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.
_______________________________________________ General mailing list [email protected] http://xqzone.com/mailman/listinfo/general
