Dan Nicolici [mailto:[EMAIL PROTECTED] wrote: > > Thank you very much, Martijn, for the example! > I still have some questions if you don't mind :) > > The example again: > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > <map:match pattern="*/lucene-index.xml"> > <map:generate src="cocoon:/listing/{1}"/> > <map:transform > src="../stylesheets/templates/lucene/create-lucene-index.xsl"> > <map:parameter name="realpath" value="{realpath:/}"/> > <map:parameter name="languageId" value="{1}"/> > </map:transform> > <map:serialize type="xml"/> > </map:match> > > <map:match pattern="listing/*"> > <map:generate type="xpathdirectory" src="{constants:datapath}/{1}"> > <map:parameter name="depth" value="2"/> > <map:parameter name="xpath" value="."/> > <map:parameter name="xmlFiles" value=".xml"/> > </map:generate> > <map:serialize type="xml"/> > </map:match> > > <map:match pattern="*/lucene-create"> > <map:generate src="cocoon:/{1}/lucene-index.xml"/> > <map:transform type="index"/> > <map:serialize type="xml"/> > </map:match> > <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< > > Please bear with me a little further. Let's see if I got this right: > > 1. I (or a cron job) call the "*/lucene-create" pipeline; > 2. That pipeline calls the "*/lucene-index.xml" pipeline; > 3. Here is where the "listing/*" pipeline gets called; > 3.1. Here I guess all my other app-relevant pipelines should get > called to issue their xml results. I see that you used the > XPathDirectoryGenerator (not quite familiar with this...). > Does it generate > content from static files?
It does. If you want to index stuff from a database or from something else, you have to generate that as xml. So basically what happens is: <map:generate src="cocoon:/all-the-stuff-you-want-to-index"/> <map:transform src="turn-it-into-something-the-indexer-understands.xsl"/> <map:transform type="index"/> <map:serialize type="xml"/> > 4. Create the "lucene:index" document from previous results. > 5. Apply LuceneIndexTransformer on the "lucene:index" document. > > The search is pretty straightforward. > > Can you please insist a little on the step at 3.1? What more do you want to know about it? > Can I take a quick glance at "create-lucene-index.xsl"? Basically it's: <xsl:template match="/"> <lucene:index analyzer="org.apache.lucene.analysis.standard.StandardAnalyzer" directory="{$realpath}/sollicitation-index/{$languageId}" create="true" merge-factor="10"> <xsl:apply-templates/> </lucene:index> </xsl:template> <xsl:template match="dir:file"> <lucene:document> <xsl:attribute name="url"> <xsl:value-of select="concat(../@name, '/', @name)"/> </xsl:attribute> <xsl:apply-templates/> </lucene:document> </xsl:template> <xsl:template match="document"> <xsl:apply-templates mode="store"/> </xsl:template> <xsl:template match="*" mode="store"> <xsl:element name="{name()}"> <xsl:attribute name="lucene:store">true</xsl:attribute> <xsl:apply-templates mode="store"/> </xsl:element> </xsl:template> It turns the results from xpathdirectory into suitable input for the lucene indexer. But all of this was written by someone else, I don't know much beyond this about these two components. mcv. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]