Hi Jasha,

Rebuilding the index fixed the problem of results not showing up.
Problem remains that if content is written twice it shows up twice.

Maybe I should delete the existing document before I write it?
(at the moment I simply overwrite...)

Reinier


Jasha Joachimsthal wrote:
Hi Reinier,

this looks like your Lucene index contains some errors if some results
appear twice and others don't appear at all. Try rebuilding the index.

Jasha Joachimsthal

[email protected] - [email protected]

www.onehippo.com
Amsterdam - Hippo B.V. Oosteinde 11 1017 WT Amsterdam +31(0)20-5224466
San Francisco - Hippo USA Inc. 185 H Street, suite B, Petaluma CA
94952 +1 (707) 7734646




2009/6/11 Reinier van den Born <[email protected]>:
Hello,

I try to automatically update a collection of documents in a Hippo
repository.
Each document is kept in its own collection within a "main" collection:
../1/a.xml, ../2/b.xml, etc.
Each update is independent of earlier ones: I don't need caching, no JMS, or
what more.

So I do a simple scan for old documents (fetchCollection), upload the new
and delete the old.
Very simple, so I was thinking I could use the Java Adapter directly...

Which works except for the getting the scan. Its function is similar to "ls
.../*/*.xml".
But my code+DASL gives me a weird response:
- only documents show up that have recently be touched by the CMS (clicked
on, not necessarily opened)
- the documents I write appear repeated in the list (=duplicates, each write
cycle one occurrence is added)
- this duplication is reset when I change the DASL query (eg depth to 1,
returns no documents, and back to 2).
- all documents are listed correctly by CMS and DAVexplorer, no problemo.

I use my own plain WebdavServiceImpl, which I assume does no caching.
Also when I restart my app (tomcat) nothing changes, nor when I restart the
repo.

Anyway, any help is appreciated? See code below.

Thanks,

Reinier


------------------
Here the code I use:

.....
public void hippoInit (Properties props) {
   try {
       WebdavConfig webdavConfig = new WebdavConfig(props);
       webdavService = new WebdavServiceImpl(webdavConfig);
       rootPath      = webdavService.getBasePath();
   }
   catch (Exception e) {
       error( "Error initializing Hippo repository connection:
"+e.getMessage());
   }
}

public HashMap hippoScanJobOpenings (String relPath) {
   HashMap jobs = new HashMap();
   jobs.put( "REPO.RELPATH", relPath );

   String query = Interpolation.interpolate( jobsQuery, jobs );
   try {
       DocumentCollection coll = webdavService.fetchCollection( rootPath,
query, false );
       List docs = coll.getDocuments();

       Iterator iter = docs.iterator();
       while (iter.hasNext()) {
           Document collDoc = (Document) iter.next();
           String   dirPath = ((DocumentPath)
collDoc.getPath()).getRelativePath();
           message( "Found job: "+dirPath );
       }
   }
   catch (Exception e) {
       error( "Error getting existing job openings: "+e.getMessage());
   }
   return jobs;
}

The DASL query used is:

<d:searchrequest xmlns:d="DAV:" xmlns:S="http://jakarta.apache.org/slide/";
xmlns:h="http://hippo.nl/cms/1.0";>
 <d:basicsearch>
   <d:select>
     <d:prop>
       <h:caption/>
       <d:displayname/>
       <h:type/>
       <d:modificationdate/>
     </d:prop>
   </d:select>
   <d:from>
     <d:scope>
       <d:href>${REPO.RELPATH}</d:href>
       <d:depth>2</d:depth>
     </d:scope>
   </d:from>
   <d:where>
     <d:eq>
       <d:prop><h:type/></d:prop>
       <d:literal>jobopening</d:literal>
     </d:eq>
   </d:where>
   <d:orderby>
     <d:order>
       <d:prop><h:modificationDate/></d:prop>
       <d:ascending/>
     </d:order>
   </d:orderby>
 </d:basicsearch>
</d:searchrequest>

Notes:

- props contains the settings to initialise the WebdavConfig object as
described in ...
- relPath is the path from rootPath to the collection containing the
documents.

--

Reinier van den Born
HintTech B.V.

T: +31(0)88 268 25 00
F: +31(0)88 268 25 01
M: +31(0)6 494 171 36

Delftechpark 37i | 2628 XJ Delft | The Netherlands
www.hinttech.com

HintTech is a specialist in eBusiness Technology ( .Net, Java platform,
Tridion ) and IT-Projects.
Chamber of Commerce The Hague nr. 27242282 | Sales Tax nr. NL8062.16.396.B01


********************************************
Hippocms-dev: Hippo CMS development public mailinglist

Searchable archives can be found at:
MarkMail: http://hippocms-dev.markmail.org
Nabble: http://www.nabble.com/Hippo-CMS-f26633.html



********************************************
Hippocms-dev: Hippo CMS development public mailinglist

Searchable archives can be found at:
MarkMail: http://hippocms-dev.markmail.org
Nabble: http://www.nabble.com/Hippo-CMS-f26633.html


--

Reinier van den Born
HintTech B.V.

T: +31(0)88 268 25 00
F: +31(0)88 268 25 01
M: +31(0)6 494 171 36

Delftechpark 37i | 2628 XJ Delft | The Netherlands
www.hinttech.com

HintTech is a specialist in eBusiness Technology ( .Net, Java platform, Tridion 
) and IT-Projects.
Chamber of Commerce The Hague nr. 27242282 | Sales Tax nr. NL8062.16.396.B01
begin:vcard
fn:Reinier van den Born
n:van den Born;Reinier
org:HintTech B.V.
adr:;;Delfttechpark 37i ;Delft;;2628 XJ;Netherlands
email;internet:[email protected]
tel;work:+31-88-268 25 00
tel;fax:+31-88-268 25 01
tel;cell:+31-6 494 171 36
note;quoted-printable:KvK Den Haag nr. 27242282 | BTW nr. NL8062.16.396.B01=0D=0A=
	=0D=0A=
	HintTech levert specialisten op het gebied van softwareontwikkeling (.NET=
	en Java), projectmanagement, informatiebeveiliging en business consulting=
	.=0D=0A=
	=0D=0A=
	
url:www.hinttech.com
version:2.1
end:vcard

********************************************
Hippocms-dev: Hippo CMS development public mailinglist

Searchable archives can be found at:
MarkMail: http://hippocms-dev.markmail.org
Nabble: http://www.nabble.com/Hippo-CMS-f26633.html

Reply via email to