<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- ===============================================
Pipelines relevant to Lucene index creation and searching.

Creates lucene:documents from Forrest documents, to be used for indexing
by the LuceneIndexTransformer.

Aggregates all lucene:documents from a site into a single lucene:index
document.

Uses the LuceneIndexTransformer to create a Lucene index from this
lucene:index document.

Allows searching the Lucene index using the Cocoon SearchGenerator.

Generates   :  Lucene lucene:index documents, search results
Example URLs:  http://localhost/lucene-update.html (Index creation)
               http://localhost/**.html (use the search box after setting
               <search provider="lucene"/> in skinconf.xml)
Uses        :  content/xdocs/**.xml, context/xdocs/**.ehtml,
               resources/stylesheets/*-to-*lucene*.xsl

$Revision$
==================================================== -->
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  <map:components>
<!-- Lucene search generator: Creates a hit list from a query and
    an existing index. -->
    <map:generators default="file">
      <map:generator name="search"
        logger="sitemap.generator.searchgenerator"
        src="org.apache.cocoon.generation.SearchGenerator" />
    </map:generators>
<!-- Lucene index transformer: Creates a new Lucene index. -->
    <map:transformers default="xslt">
      <map:transformer name="index"
        logger="sitemap.transformer.luceneindextransformer"
        src="org.apache.cocoon.transformation.LuceneIndexTransformer"/>
    </map:transformers>
    <map:readers default="resource"/>
    <map:serializers default="html"/>
    <map:matchers default="wildcard"/>
  </map:components>
<!-- =========================== Pipelines ================================= -->
  <map:pipelines>
    <map:pipeline internal-only="false">
<!-- ===== INDEX CREATION ===== -->
<!-- Creates or updates the Lucene index -->
      <map:match pattern="lucene-update.xml">
        <map:generate src="cocoon:/index-creation.lucene"/>
        <map:transform type="index"/>
        <map:transform src="{lm:transform.lucene-update.xdoc}"/>
        <map:serialize type="xml"/>
      </map:match>
<!-- ===== INDEX QUERYING ===== -->
<!-- Searches the Lucene index using the search expression given
      in the request param named "queryString" -->
      <map:match pattern="lucene-search.xml">
        <map:generate type="search">
<!-- Important: This value must match that of the
          "directory" parameter passed to book-to-cinclude-lucene.xsl (see
          below) -->
          <map:parameter name="index" value="lucene-index"/>
          <map:parameter name="query-string" value="queryString"/>
        </map:generate>
        <map:transform src="{lm:transform.lucene-search.xdoc}"/>
        <map:serialize type="xml"/>
      </map:match>
<!-- ===== DOCUMENTS FOR LUCENE INDEX TRANSFORMER ===== -->
<!-- Generates a document suitable for processing by the
      LuceneIndexTransformer, using sources across the whole site -->
      <map:match pattern="index-creation.lucene">
        <map:generate src="cocoon://abs-linkmap"/>
        <map:transform src="{lm:transform.site.book}" />
        <map:transform src="{lm:transform.book.cinclude-lucene}">
          <map:parameter name="analyzer" value="org.apache.lucene.analysis.standard.StandardAnalyzer"/>
          <map:parameter name="merge-factor" value="20"/>
          <map:parameter name="update-index" value="true"/>
<!-- Important: This value must match that of the
          "index" parameter passed to the search generator (see
          above) -->
          <map:parameter name="directory" value="lucene-index"/>
        </map:transform>
        <map:transform type="cinclude"/>
        <map:serialize type="xml"/>
      </map:match>
<!-- Creates a lucene:document from a Forrest document body -->
      <map:match pattern="**body-*.lucene">
        <map:select type="exists">
          <map:when test="{properties:content.xdocs}{1}{2}.ehtml">
            <map:generate src="{properties:content.xdocs}{1}{2}.ehtml" />
            <map:transform src="{lm:transform.html.htmlbody}" />
          </map:when>
          <map:when test="cocoon://{1}{2}.xml">
            <map:generate src="cocoon://{1}{2}.xml"/>
          </map:when>
        </map:select>
        <map:transform src="{lm:transform.xdoc.lucene}">
          <map:parameter name="document-url" value="{1}{2}.xml"/>
        </map:transform>
        <map:serialize type="xml"/>
      </map:match>
<!-- Creates a lucene:document from a Forrest document (same as
      above, as search-relevant information is only contained in the
      body) -->
      <map:match pattern="*.lucene">
        <map:generate src="cocoon:/body-{0}"/>
        <map:serialize type="xml"/>
      </map:match>
      <map:match pattern="**/*.lucene">
        <map:generate src="cocoon:/{1}/body-{2}.lucene"/>
        <map:serialize type="xml"/>
      </map:match>
<!-- ===== TODO: ERROR HANDLING ===== -->
<!-- Must do something about malformed (unparseable) queries or
      a non-existant index. -->
    </map:pipeline>
  </map:pipelines>
</map:sitemap>
