<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Optimized Script comparing metadata in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/optimized-script-comparing-metadata/m-p/263576#M216706</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a script checking that documents have not same metadata. It's working fine but I would like to optimise it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My documents have metadata FirmNb and DocumentNb. For all same types, the script search if same FirmNb and DocumentNb exist.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The code get all documents for each types and after compare the documents.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Could I do better/faster ? &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I also would execute it by schedule-action and get problems : &lt;/SPAN&gt;&lt;A href="http://forums.alfresco.com/en/viewtopic.php?f=27&amp;amp;t=40082#p117669" rel="nofollow noopener noreferrer"&gt;http://forums.alfresco.com/en/viewtopic.php?f=27&amp;amp;t=40082#p117669&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Script&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;// Mail&lt;BR /&gt;var destinationMail="watchdog@custom.ch";&lt;BR /&gt;&lt;BR /&gt;// Lucene Search&lt;BR /&gt;var exactTypeString = "EXACTTYPE"; // no children (sub-type)&lt;BR /&gt;&lt;BR /&gt;// Qname finance&lt;BR /&gt;var qNameInvoiceCreditor = "{&lt;A href="http://www.custom.ch/model/finance/1.0}invoiceCreditor" rel="nofollow noopener noreferrer"&gt;http://www.custom.ch/model/finance/1.0}invoiceCreditor&lt;/A&gt;";&lt;BR /&gt;var qNameInvoiceDebtor = "{&lt;A href="http://www.custom.ch/model/finance/1.0}invoiceDebtor" rel="nofollow noopener noreferrer"&gt;http://www.custom.ch/model/finance/1.0}invoiceDebtor&lt;/A&gt;";&lt;BR /&gt;var qNamePaymentCreditor = "{&lt;A href="http://www.custom.ch/model/finance/1.0}paymentCreditor" rel="nofollow noopener noreferrer"&gt;http://www.custom.ch/model/finance/1.0}paymentCreditor&lt;/A&gt;";&lt;BR /&gt;var qNamePaymentDebtor = "{&lt;A href="http://www.custom.ch/model/finance/1.0}paymentDebtor" rel="nofollow noopener noreferrer"&gt;http://www.custom.ch/model/finance/1.0}paymentDebtor&lt;/A&gt;";&lt;BR /&gt;var qNameFinancialAccount = "{&lt;A href="http://www.custom.ch/model/finance/1.0}financialAccount" rel="nofollow noopener noreferrer"&gt;http://www.custom.ch/model/finance/1.0}financialAccount&lt;/A&gt;";&lt;BR /&gt;var qNameCondensedAccount = "{&lt;A href="http://www.custom.ch/model/finance/1.0}condensedAccount" rel="nofollow noopener noreferrer"&gt;http://www.custom.ch/model/finance/1.0}condensedAccount&lt;/A&gt;";&lt;BR /&gt;var arrayQName= [qNameInvoiceCreditor,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qNameInvoiceDebtor,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qNamePaymentCreditor,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qNamePaymentDebtor,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qNameFinancialAccount,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qNameCondensedAccount];&lt;BR /&gt;&lt;BR /&gt;// Query that would be execute&lt;BR /&gt;var queryString;&lt;BR /&gt;&lt;BR /&gt;var response = "";&lt;BR /&gt;&lt;BR /&gt;// Information about webscript&lt;BR /&gt;var nameWebscriptUser = "Webscript custom Redundant" + " by "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+ person.properties.userName;&lt;BR /&gt;var arguments = "Arguments : ";&lt;BR /&gt;&lt;BR /&gt;script: {&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;logger.log(nameWebscriptUser);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var existSameFile=false; // Will be set to true if same file exist&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// For all Types&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (var i=0;i&amp;lt; arrayQName.length;i++){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logger.log("Search for "+arrayQName[i]);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Search and compare&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (checkSameAttributes(arrayQName[i])==true){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;existSameFile=true;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//sendMail();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (existSameFile){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response+="Problems… Same file exists:-( \n" ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response+="See in alfresco logs the results… \n" ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}else{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response+="All is ok :-) \n" ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;logger.log("End");&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;/*&lt;BR /&gt;* Check if there are same attributes (type, …)&lt;BR /&gt;*/&lt;BR /&gt;function checkSameAttributes(qName) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Request&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Type&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var queryString= "(" + exactTypeString + ":\"" + qName + "\")";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Query&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var docs = search.luceneSearch(queryString);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;logger.log("Total : "+docs.length);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Need to continue ?&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (docs.length&amp;lt;2){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var existSameFile=false; // Will be set to true if same file exist&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Test&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;for ( var current = 0; current &amp;lt; (docs.length-1); current++) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//logger.log("Read "+current+"/"+docs.length);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for ( var other = (current +1); other &amp;lt; docs.length; other++) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Same firm&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (getNumber(docs[current].properties["sg:firmNb"]) == 0 || &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;getNumber(docs[current].properties["sg:firmNb"]) != getNumber(docs[other].properties["sg:firmNb"])){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Same Document Nb ?&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ( getNumber(docs[current].properties["sg:documentNb"]) == 0 ||&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;getNumber(docs[current].properties["sg:documentNb"]) != getNumber(docs[other].properties["sg:documentNb"])){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}else{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Yes… same.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printSameFile(docs[current].displayPath+"/"+ docs[current].name,docs[other].displayPath+ "/"+docs[other].name);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;existSameFile=true;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return existSameFile;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;/*&lt;BR /&gt; * Print output for same files (in logger)&lt;BR /&gt; */&lt;BR /&gt;function printSameFile(file1,file2){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;logger.log("Same attributs !!!");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;logger.log("\t"+file1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;logger.log("\t"+file2);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;/*&lt;BR /&gt; * Get number (null will be 0)&lt;BR /&gt; */&lt;BR /&gt;function getNumber(numberCouldBeNull){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (numberCouldBeNull== null || numberCouldBeNull== "null" || numberCouldBeNull==""){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return numberCouldBeNull;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;/*&lt;BR /&gt; * Send a mail&lt;BR /&gt; */&lt;BR /&gt;function sendMail(){&lt;BR /&gt;&amp;nbsp; logger.log("Send a mail notification to : "+destinationMail);&lt;BR /&gt;&amp;nbsp; // Create mail action&lt;BR /&gt;&amp;nbsp; var mail = actions.create("mail");&lt;BR /&gt;&amp;nbsp; mail.parameters.to = destinationMail;&lt;BR /&gt;&amp;nbsp; mail.parameters.subject = "Warning - GED - Data Redundant";&lt;BR /&gt;&amp;nbsp; mail.parameters.text = "Redundant data are in Alfresco (documents with same keys (documentNb + firmNb)). Please check the Alfresco logs to see the details.";&lt;BR /&gt;&amp;nbsp; // execute action against a document&lt;BR /&gt;&amp;nbsp; mail.execute(document);&lt;BR /&gt;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;It's necessary to allow Alfresco searching a lot of documents. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;alfresco-global.properties&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;#&lt;BR /&gt;# Properties to limit resources spent on individual searches&lt;BR /&gt;# (Useful for the script test SearchRedundant. It allow to show more 1000 documents)&lt;BR /&gt;# The maximum time spent pruning results (*********I Changed from 10000 to 100000)&lt;BR /&gt;system.acl.maxPermissionCheckTimeMillis=100000&lt;BR /&gt;# The maximum number of results to perform permission checks against (*********I Changed from 1000 to 10000)&lt;BR /&gt;system.acl.maxPermissionChecks=10000&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 08 Aug 2011 05:53:42 GMT</pubDate>
    <dc:creator>dranakan</dc:creator>
    <dc:date>2011-08-08T05:53:42Z</dc:date>
    <item>
      <title>Optimized Script comparing metadata</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/optimized-script-comparing-metadata/m-p/263576#M216706</link>
      <description>Hello,I have a script checking that documents have not same metadata. It's working fine but I would like to optimise it.My documents have metadata FirmNb and DocumentNb. For all same types, the script search if same FirmNb and DocumentNb exist.The code get all documents for each types and after comp</description>
      <pubDate>Mon, 08 Aug 2011 05:53:42 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/optimized-script-comparing-metadata/m-p/263576#M216706</guid>
      <dc:creator>dranakan</dc:creator>
      <dc:date>2011-08-08T05:53:42Z</dc:date>
    </item>
    <item>
      <title>Re: Optimized Script comparing metadata</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/optimized-script-comparing-metadata/m-p/263577#M216707</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;In SQL we can do something like this :&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;select a, b, c, count(*)&lt;BR /&gt;from tablename&lt;BR /&gt;where…&lt;BR /&gt;group by a, b, c&lt;BR /&gt;having count(*) &amp;gt; 1&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Could I do the same with Lucene ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Sep 2011 12:13:03 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/optimized-script-comparing-metadata/m-p/263577#M216707</guid>
      <dc:creator>dranakan</dc:creator>
      <dc:date>2011-09-22T12:13:03Z</dc:date>
    </item>
  </channel>
</rss>

