You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by fe...@apache.org on 2007/07/07 22:03:20 UTC
svn commit: r554248 - in
/cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF:
resources/ resources/transformer-index-src.xml sitemap.xmap
stylesheets/search-index-transformer2html.xsl welcome-index.xml
Author: felixk
Date: Sat Jul 7 13:03:19 2007
New Revision: 554248
URL: http://svn.apache.org/viewvc?view=rev&rev=554248
Log:
Adapt sample to springified lucene index transformer.
Add sample for lucene index transformer.
Added:
cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/resources/
cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/resources/transformer-index-src.xml (with props)
cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/stylesheets/search-index-transformer2html.xsl (with props)
Modified:
cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/sitemap.xmap
cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/welcome-index.xml
Added: cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/resources/transformer-index-src.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/resources/transformer-index-src.xml?view=auto&rev=554248
==============================================================================
--- cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/resources/transformer-index-src.xml (added)
+++ cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/resources/transformer-index-src.xml Sat Jul 7 13:03:19 2007
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<!-- @version $Id$ -->
+<lucene:index xmlns:lucene="http://apache.org/cocoon/lucene/1.0"
+ merge-factor="20"
+ create="false"
+ directory="index-transformer"
+ max-field-length="10000"
+ analyzer="org.apache.lucene.analysis.standard.StandardAnalyzer">
+ <lucene:document url="a.html">
+ <documentTitle lucene:store="true">Doggerel</documentTitle>
+ <body>The quick brown fox jumped over the lazy dog</body>
+ </lucene:document>
+ <lucene:document url="b.html">
+ <documentTitle lucene:store="true">Lorem Ipsum</documentTitle>
+ <body>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</body>
+ <body>Nunc a mauris blandit ligula scelerisque tristique.</body>
+ </lucene:document>
+ </lucene:index>
\ No newline at end of file
Propchange: cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/resources/transformer-index-src.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/resources/transformer-index-src.xml
------------------------------------------------------------------------------
svn:keywords = Id
Modified: cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/sitemap.xmap
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/sitemap.xmap?view=diff&rev=554248&r1=554247&r2=554248
==============================================================================
--- cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/sitemap.xmap (original)
+++ cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/sitemap.xmap Sat Jul 7 13:03:19 2007
@@ -22,12 +22,6 @@
<map:components>
- <!-- =========================== Generators ================================ -->
-
- <map:transformers default="xslt">
- <map:transformer name="index" logger="sitemap.transformer.luceneindextransformer" src="org.apache.cocoon.transformation.LuceneIndexTransformer" />
- </map:transformers>
-
<!-- =========================== Actions ================================ -->
<map:actions>
@@ -107,6 +101,16 @@
<map:serialize />
</map:match>
+ <map:match pattern="findItTransformer">
+ <map:generate type="lucene-search">
+ <map:parameter name="index" value="index-transformer" />
+ </map:generate>
+ <map:transform type="log" />
+ <map:transform src="stylesheets/search-index-transformer2html.xsl" />
+ <map:transform type="servletLinkRewriter" />
+ <map:serialize />
+ </map:match>
+
<map:match pattern="welcome">
<map:generate src="welcome-index.xml" />
<!-- Make use of servlet services -->
@@ -137,6 +141,12 @@
<map:serialize type="servletService">
<map:parameter name="service" value="servlet:style-default:/service/blocks/dynamic-page2html" />
</map:serialize>
+ </map:match>
+
+ <map:match pattern="create-transformer">
+ <map:generate src="resources/transformer-index-src.xml" />
+ <map:transform type="luceneIndexer" />
+ <map:serialize type="xml" />
</map:match>
</map:pipeline>
Added: cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/stylesheets/search-index-transformer2html.xsl
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/stylesheets/search-index-transformer2html.xsl?view=auto&rev=554248
==============================================================================
--- cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/stylesheets/search-index-transformer2html.xsl (added)
+++ cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/stylesheets/search-index-transformer2html.xsl Sat Jul 7 13:03:19 2007
@@ -0,0 +1,225 @@
+<?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.
+-->
+<!-- CVS $Id$ -->
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:search="http://apache.org/cocoon/search/1.0"
+>
+
+ <xsl:template match="search:results">
+ <html>
+ <head>
+ <title>Index Search</title>
+ <link title="Default Style" href="servlet:style-default:/styles/main.css" rel="stylesheet"/>
+ </head>
+ <body bgcolor="white" alink="red" link="blue" vlink="blue">
+ <a href="http://lucene.apache.org/">
+ <img border="0" alt="Lucene Logo" src="images/lucene_green_300.gif"/>
+ </a>
+ <h1>IndexSearch</h1>
+
+ <p>
+ <small>
+ <a href="welcome">Welcome</a> |
+ <a href="statistic">Index Statistic</a>
+ </small>
+ </p>
+
+ <form action="">
+ <input type="text" name="queryString" size="60" value="{@query-string}"/>
+  
+ <input type="submit" name="Search" value="Search"/>
+ </form>
+ Search Help
+ <table cellspacing="2" cellpadding="2">
+ <tr bgcolor="#dddedd" valign="top">
+ <td width="50%"><font size="-2" >
+ <ul>
+ <li>free AND "text search"
+ Search for documents containing "free" and the
+ phrase "text search"
+ </li>
+ <li>+text search
+ Search for documents containing "text" and
+ preferentially containing "search".
+ </li>
+ <li>giants -football
+ Search for "giants" but omit documents containing "football"
+ </li>
+ </ul>
+ </font></td>
+
+ <td><font size="-2">
+ <ul>
+ <li>body:john
+ Search for documents containing "john" in the body field.
+ The field "body" is used by default.
+ Thus query "body:john" is equivalent to query "john".
+ </li>
+ <li>s1@title:cocoon
+ Search for documents containing "cocoon" in the
+ using field s1@title, ie searching in
+ title attribute of s1 element of xml document.
+ </li>
+ </ul>
+ </font></td>
+ </tr>
+ </table>
+
+ <xsl:apply-templates/>
+ </body>
+ </html>
+ </xsl:template>
+
+ <xsl:template match="search:hits">
+ <p>
+ Total Hits <xsl:value-of select="@total-count"/>
+ Pages <xsl:value-of select="@count-of-pages"/>
+ </p>
+ <p>
+ Page:
+ <xsl:for-each select="/search:results/search:navigation/search:navigation-page">
+ <xsl:call-template name="navigation-link">
+ <xsl:with-param name="query-string" select="/search:results/@query-string"/>
+ <xsl:with-param name="page-length" select="/search:results/@page-length"/>
+ <xsl:with-param name="start-index" select="@start-index"/>
+ <xsl:with-param name="link-text" select="position()"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </p>
+
+ <p>
+ <xsl:call-template name="navigation-paging-link">
+ <xsl:with-param name="query-string" select="/search:results/@query-string"/>
+ <xsl:with-param name="page-length" select="/search:results/@page-length"/>
+ <xsl:with-param name="has-previous" select="/search:results/search:navigation/@has-previous"/>
+ <xsl:with-param name="has-next" select="/search:results/search:navigation/@has-next"/>
+ <xsl:with-param name="previous-index" select="/search:results/search:navigation/@previous-index"/>
+ <xsl:with-param name="next-index" select="/search:results/search:navigation/@next-index"/>
+ </xsl:call-template>
+ </p>
+ <hr/>
+
+ <table border="1" width="90%" cellpadding="4">
+ <tr>
+ <td>Score</td><td>Rank</td><td>URI</td>
+ </tr>
+ <xsl:apply-templates/>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="search:navigation">
+ <p>
+ <xsl:call-template name="navigation-paging-form">
+ <xsl:with-param name="query-string"><xsl:value-of select="/search:results/@query-string"/></xsl:with-param>
+ <xsl:with-param name="page-length"><xsl:value-of select="/search:results/@page-length"/></xsl:with-param>
+ <xsl:with-param name="has-previous"><xsl:value-of select="@has-previous"/></xsl:with-param>
+ <xsl:with-param name="has-next"><xsl:value-of select="@has-next"/></xsl:with-param>
+ <xsl:with-param name="previous-index"><xsl:value-of select="@previous-index"/></xsl:with-param>
+ <xsl:with-param name="next-index"><xsl:value-of select="@next-index"/></xsl:with-param>
+ </xsl:call-template>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="search:hit">
+ <tr>
+ <td>
+ <xsl:value-of select="format-number( @score, '### %' )"/>
+ </td>
+ <td>
+ <xsl:value-of select="@rank"/>
+ </td>
+ <td>
+ <a target="_blank" href="{@uri}">
+ <xsl:value-of select="@uri"/>
+ </a>
+ </td>
+ </tr>
+ </xsl:template>
+
+ <xsl:template name="navigation-paging-form">
+ <xsl:param name="query-string"/>
+ <xsl:param name="page-length"/>
+ <xsl:param name="has-previous"/>
+ <xsl:param name="has-next"/>
+ <xsl:param name="previous-index"/>
+ <xsl:param name="next-index"/>
+
+ <xsl:if test="$has-previous = 'true'">
+ <form action="findItTransformer">
+ <input type="hidden" name="startIndex" value="{$previous-index}"/>
+ <input type="hidden" name="queryString" value="{$query-string}"/>
+ <input type="hidden" name="pageLength" value="{$page-length}"/>
+ <input type="submit" name="previous" value="previous"/>
+ </form>
+ </xsl:if>
+
+ <xsl:if test="$has-next = 'true'">
+ <form action="findItTransformer">
+ <input type="hidden" name="startIndex" value="{$next-index}"/>
+ <input type="hidden" name="queryString" value="{$query-string}"/>
+ <input type="hidden" name="pageLength" value="{$page-length}"/>
+ <input type="submit" name="next" value="next"/>
+ </form>
+ </xsl:if>
+
+ </xsl:template>
+
+ <xsl:template name="navigation-paging-link">
+ <xsl:param name="query-string"/>
+ <xsl:param name="page-length"/>
+ <xsl:param name="has-previous"/>
+ <xsl:param name="has-next"/>
+ <xsl:param name="previous-index"/>
+ <xsl:param name="next-index"/>
+
+ <xsl:if test="$has-previous = 'true'">
+
+ <xsl:call-template name="navigation-link">
+ <xsl:with-param name="query-string"><xsl:value-of select="$query-string"/></xsl:with-param>
+ <xsl:with-param name="page-length"><xsl:value-of select="$page-length"/></xsl:with-param>
+ <xsl:with-param name="start-index"><xsl:value-of select="$previous-index"/></xsl:with-param>
+ <xsl:with-param name="link-text">Previous Page Of Hits</xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+  
+ <xsl:if test="$has-next = 'true'">
+ <a href="findItTransformer?startIndex={$next-index}&queryString={$query-string}&pageLength={$page-length}">
+ Next Page Of Hits
+ </a>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="navigation-link">
+ <xsl:param name="query-string"/>
+ <xsl:param name="page-length"/>
+ <xsl:param name="start-index"/>
+ <xsl:param name="link-text"/>
+
+ <a href="findItTransformer?startIndex={$start-index}&queryString={$query-string}&pageLength={$page-length}">
+ <xsl:value-of select="$link-text"/>
+ </a>
+  
+ </xsl:template>
+
+ <xsl:template match="@*|node()" priority="-2"><xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy></xsl:template>
+ <xsl:template match="text()" priority="-1"><xsl:value-of select="."/></xsl:template>
+
+</xsl:stylesheet>
+
Propchange: cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/stylesheets/search-index-transformer2html.xsl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/stylesheets/search-index-transformer2html.xsl
------------------------------------------------------------------------------
svn:keywords = Id
Modified: cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/welcome-index.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/welcome-index.xml?view=diff&rev=554248&r1=554247&r2=554248
==============================================================================
--- cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/welcome-index.xml (original)
+++ cocoon/trunk/blocks/cocoon-lucene/cocoon-lucene-sample/src/main/resources/COB-INF/welcome-index.xml Sat Jul 7 13:03:19 2007
@@ -74,6 +74,16 @@
index, named index2.
</p>
+ <h3>Creating Index By Transformer</h3>
+ <p>
+ This transformer reads a document with elements in the namespace http://apache.org/cocoon/lucene/1.0,
+ and creates a new Lucene Index, or updates an existing one.
+ </p>
+ <p>
+ This following page allows you to <a href="create-transformer">create</a> an
+ index, named index-transformer.
+ </p>
+
<h2>Searching</h2>
<p>
If you have created a Lucene index, you can search the created index.
@@ -99,6 +109,12 @@
</form>
</p>-->
+ <h3>Searching Index-Transformer</h3>
+ <p>
+ Enter a query and search the Lucene index-transformer that you have created
+ - using <a href="findItTransformer?queryString=scelerisque">Cocoon Generators</a>.
+ </p>
+
<h2>Internals</h2>
<p>
Cocoon XML search uses the