Hi Zergaoui,

We are using ML 6.

Regards,
Shaik Ummer Faruk D.

From: [email protected] 
[mailto:[email protected]] On Behalf Of Innovimax SARL
Sent: Wednesday, March 05, 2014 3:59 PM
To: MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] Performance Issue

Shaik,
If you are using ML 7, it seems like a pretty good use case for RDF here
For each pair of document you will only have to store one triple

<sem:triple xmlns:sem="http://marklogic.com/semantics";>


  <sem:subject>http://example.com/xml1</sem:subject>
  <sem:predicate>http://example.com/pred#areRelated</sem:predicate>


  <sem:object>http://example.com/xml2</sem:object>


</sem:triple>
To know if this will fit, can you explain, what kind of processing you do with 
this information ?
Regards,
Mohamed Zergaoui


On Tue, Mar 4, 2014 at 7:31 AM, ShaikUmmerFaruk D 
<[email protected]<mailto:[email protected]>> wrote:
Hi,

We are facing performance issue while fetching documents from Marklogic, Please 
let us know your suggestions. We are using Java and Marklogic here. PFB the 
detailed scenario.


-          We have large volume of xmls in a directory say /TEST/EMPLOYEE.

-          Here, any two xmls are said to be related if they have a common doc 
number. Like


xml1                                                                            
                                  xml2

<test>                                                                          
                                 <test>
<doc number = “1200”>                                                           
             <doc number = “1200”>
….                                                                              
                                     …..
</text>                                                                         
                               </test>


-          Our requirement here is that we have to insert a node is both the 
documents mentioning that a document has link  to another document. Like.

xml1                                                                            
                                  xml2

<test>                                                                          
                                 <test>
<doc name=”refer” number = “1200”>                                          
<doc name=”refer” number = “1200”>
<link node =”xml2”>                                                             
                  <link node = “xml1”>
….                                                                              
                                     …..
</text>                                                                         
                               </test>

Approach


-          In the directory /TEST/EMPLOYEE loop through all the document and 
get all the document that has the node <doc number=”xxx”> as this node might 
not be present in certain documents. Then this list is sent back to JAVA.


                for $doc in xdmp:directory($dir,"1")
                                return if(doc(xdmp:node-uri($doc)) $type ) then(
                                                let 
$searchResponse:=search:search("",
                                                                <options 
xmlns="http://marklogic.com/appservices/search";>
                                                                                
<additional-query>{
                                                                                
                cts:and-query((
                                                                                
                cts:directory-query(($dir),"1"),
                                                                                
                
cts:element-attribute-value-query(xs:QName('doc'),xs:QName('name'),'refer'),
                                                                                
))}</additional-query>,
                                                                
</options>)//search:result/@uri
                                                let $linkedDocs := if( 
$searchResponse ne "" ) then (

                                                for $lk in $searchResponse
                                                                return 
concat($document,"==>",$lk)
                                                )
                                                else 
(concat((xdmp:node-uri($doc)),"==>nolink"))
                                                                return 
$linkedDocs
                                )
                                else ()


-          This list of documents is iterated (loop) and using search:search 
here, the link document ID is determined.

-          A new node is created in the corresponding xml with its linked 
document name.

Problem

                The problem that we are facing here is, as the document volume 
is high, the first step here itself takes too long to get execute and results 
in XDMP:EXTIME. To log the events we are passing the list from Marklogic to 
JAVA. We already have range indexes available in these elements.

Regards,
Shaik Ummer Faruk D.


**************** CAUTION - Disclaimer *****************

This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely

for the use of the addressee(s). If you are not the intended recipient, please

notify the sender by e-mail and delete the original message. Further, you are 
not

to copy, disclose, or distribute this e-mail or its contents to any other 
person and

any such actions are unlawful. This e-mail may contain viruses. Infosys has 
taken

every reasonable precaution to minimize this risk, but is not liable for any 
damage

you may sustain as a result of any virus in this e-mail. You should carry out 
your

own virus checks before opening the e-mail or attachment. Infosys reserves the

right to monitor and review the content of all messages sent to or from this 
e-mail

address. Messages sent to or from this e-mail address may be stored on the

Infosys e-mail system.

***INFOSYS******** End of Disclaimer ********INFOSYS***


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



--
Innovimax SARL
Consulting, Training & XML Development
9, impasse des Orteaux
75020 Paris
Tel : +33 9 52 475787
Fax : +33 1 4356 1746
http://www.innovimax.fr
RCS Paris 488.018.631
SARL au capital de 10.000 €
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to