Added: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/spellings.txt URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/spellings.txt?rev=1087158&view=auto ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/spellings.txt (added) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/spellings.txt Thu Mar 31 01:58:50 2011 @@ -0,0 +1,2 @@ +pizza +history \ No newline at end of file
Added: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/stopwords.txt URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/stopwords.txt?rev=1087158&view=auto ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/stopwords.txt (added) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/stopwords.txt Thu Mar 31 01:58:50 2011 @@ -0,0 +1,58 @@ +# 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. + +#----------------------------------------------------------------------- +# a couple of test stopwords to test that the words are really being +# configured from this file: +stopworda +stopwordb + +#Standard english stop words taken from Lucene's StopAnalyzer +a +an +and +are +as +at +be +but +by +for +if +in +into +is +it +no +not +of +on +or +s +such +t +that +the +their +then +there +these +they +this +to +was +will +with + Added: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/synonyms.txt URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/synonyms.txt?rev=1087158&view=auto ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/synonyms.txt (added) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/synonyms.txt Thu Mar 31 01:58:50 2011 @@ -0,0 +1,31 @@ +# 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. + +#----------------------------------------------------------------------- +#some test synonym mappings unlikely to appear in real input text +aaa => aaaa +bbb => bbbb1 bbbb2 +ccc => cccc1,cccc2 +a\=>a => b\=>b +a\,a => b\,b +fooaaa,baraaa,bazaaa + +# Some synonym groups specific to this example +GB,gib,gigabyte,gigabytes +MB,mib,megabyte,megabytes +Television, Televisions, TV, TVs +#notice we use "gib" instead of "GiB" so any WordDelimiterFilter coming +#after us won't split it into two words. + +# Synonym mappings can be used for spelling correction too +pixima => pixma + Added: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/xslt/example.xsl URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/xslt/example.xsl?rev=1087158&view=auto ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/xslt/example.xsl (added) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/xslt/example.xsl Thu Mar 31 01:58:50 2011 @@ -0,0 +1,132 @@ +<?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. + --> + +<!-- + Simple transform of Solr query results to HTML + --> +<xsl:stylesheet version='1.0' + xmlns:xsl='http://www.w3.org/1999/XSL/Transform' +> + + <xsl:output media-type="text/html; charset=UTF-8" encoding="UTF-8"/> + + <xsl:variable name="title" select="concat('Solr search results (',response/result/@numFound,' documents)')"/> + + <xsl:template match='/'> + <html> + <head> + <title><xsl:value-of select="$title"/></title> + <xsl:call-template name="css"/> + </head> + <body> + <h1><xsl:value-of select="$title"/></h1> + <div class="note"> + This has been formatted by the sample "example.xsl" transform - + use your own XSLT to get a nicer page + </div> + <xsl:apply-templates select="response/result/doc"/> + </body> + </html> + </xsl:template> + + <xsl:template match="doc"> + <xsl:variable name="pos" select="position()"/> + <div class="doc"> + <table width="100%"> + <xsl:apply-templates> + <xsl:with-param name="pos"><xsl:value-of select="$pos"/></xsl:with-param> + </xsl:apply-templates> + </table> + </div> + </xsl:template> + + <xsl:template match="doc/*[@name='score']" priority="100"> + <xsl:param name="pos"></xsl:param> + <tr> + <td class="name"> + <xsl:value-of select="@name"/> + </td> + <td class="value"> + <xsl:value-of select="."/> + + <xsl:if test="boolean(//lst[@name='explain'])"> + <xsl:element name="a"> + <!-- can't allow whitespace here --> + <xsl:attribute name="href">javascript:toggle("<xsl:value-of select="concat('exp-',$pos)" />");</xsl:attribute>?</xsl:element> + <br/> + <xsl:element name="div"> + <xsl:attribute name="class">exp</xsl:attribute> + <xsl:attribute name="id"> + <xsl:value-of select="concat('exp-',$pos)" /> + </xsl:attribute> + <xsl:value-of select="//lst[@name='explain']/str[position()=$pos]"/> + </xsl:element> + </xsl:if> + </td> + </tr> + </xsl:template> + + <xsl:template match="doc/arr" priority="100"> + <tr> + <td class="name"> + <xsl:value-of select="@name"/> + </td> + <td class="value"> + <ul> + <xsl:for-each select="*"> + <li><xsl:value-of select="."/></li> + </xsl:for-each> + </ul> + </td> + </tr> + </xsl:template> + + + <xsl:template match="doc/*"> + <tr> + <td class="name"> + <xsl:value-of select="@name"/> + </td> + <td class="value"> + <xsl:value-of select="."/> + </td> + </tr> + </xsl:template> + + <xsl:template match="*"/> + + <xsl:template name="css"> + <script> + function toggle(id) { + var obj = document.getElementById(id); + obj.style.display = (obj.style.display != 'block') ? 'block' : 'none'; + } + </script> + <style type="text/css"> + body { font-family: "Lucida Grande", sans-serif } + td.name { font-style: italic; font-size:80%; } + td { vertical-align: top; } + ul { margin: 0px; margin-left: 1em; padding: 0px; } + .note { font-size:80%; } + .doc { margin-top: 1em; border-top: solid grey 1px; } + .exp { display: none; font-family: monospace; white-space: pre; } + </style> + </xsl:template> + +</xsl:stylesheet> Added: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/xslt/example_atom.xsl URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/xslt/example_atom.xsl?rev=1087158&view=auto ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/xslt/example_atom.xsl (added) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/xslt/example_atom.xsl Thu Mar 31 01:58:50 2011 @@ -0,0 +1,67 @@ +<?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. + --> + +<!-- + Simple transform of Solr query results to Atom + --> + +<xsl:stylesheet version='1.0' + xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> + + <xsl:output + method="xml" + encoding="utf-8" + media-type="text/xml; charset=UTF-8" + /> + + <xsl:template match='/'> + <xsl:variable name="query" select="response/lst[@name='responseHeader']/lst[@name='params']/str[@name='q']"/> + <feed xmlns="http://www.w3.org/2005/Atom"> + <title>Example Solr Atom 1.0 Feed</title> + <subtitle> + This has been formatted by the sample "example_atom.xsl" transform - + use your own XSLT to get a nicer Atom feed. + </subtitle> + <author> + <name>Apache Solr</name> + <email>solr-u...@lucene.apache.org</email> + </author> + <link rel="self" type="application/atom+xml" + href="http://localhost:8983/solr/q={$query}&wt=xslt&tr=atom.xsl"/> + <updated> + <xsl:value-of select="response/result/doc[position()=1]/date[@name='timestamp']"/> + </updated> + <id>tag:localhost,2007:example</id> + <xsl:apply-templates select="response/result/doc"/> + </feed> + </xsl:template> + + <!-- search results xslt --> + <xsl:template match="doc"> + <xsl:variable name="id" select="str[@name='id']"/> + <entry> + <title><xsl:value-of select="str[@name='name']"/></title> + <link href="http://localhost:8983/solr/select?q={$id}"/> + <id>tag:localhost,2007:<xsl:value-of select="$id"/></id> + <summary><xsl:value-of select="arr[@name='features']"/></summary> + <updated><xsl:value-of select="date[@name='timestamp']"/></updated> + </entry> + </xsl:template> + +</xsl:stylesheet> Added: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/xslt/example_rss.xsl URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/xslt/example_rss.xsl?rev=1087158&view=auto ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/xslt/example_rss.xsl (added) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/xslt/example_rss.xsl Thu Mar 31 01:58:50 2011 @@ -0,0 +1,66 @@ +<?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. + --> + +<!-- + Simple transform of Solr query results to RSS + --> + +<xsl:stylesheet version='1.0' + xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> + + <xsl:output + method="xml" + encoding="utf-8" + media-type="text/xml; charset=UTF-8" + /> + <xsl:template match='/'> + <rss version="2.0"> + <channel> + <title>Example Solr RSS 2.0 Feed</title> + <link>http://localhost:8983/solr</link> + <description> + This has been formatted by the sample "example_rss.xsl" transform - + use your own XSLT to get a nicer RSS feed. + </description> + <language>en-us</language> + <docs>http://localhost:8983/solr</docs> + <xsl:apply-templates select="response/result/doc"/> + </channel> + </rss> + </xsl:template> + + <!-- search results xslt --> + <xsl:template match="doc"> + <xsl:variable name="id" select="str[@name='id']"/> + <xsl:variable name="timestamp" select="date[@name='timestamp']"/> + <item> + <title><xsl:value-of select="str[@name='name']"/></title> + <link> + http://localhost:8983/solr/select?q=id:<xsl:value-of select="$id"/> + </link> + <description> + <xsl:value-of select="arr[@name='features']"/> + </description> + <pubDate><xsl:value-of select="$timestamp"/></pubDate> + <guid> + http://localhost:8983/solr/select?q=id:<xsl:value-of select="$id"/> + </guid> + </item> + </xsl:template> +</xsl:stylesheet> Added: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/xslt/luke.xsl URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/xslt/luke.xsl?rev=1087158&view=auto ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/xslt/luke.xsl (added) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/js/conf/xslt/luke.xsl Thu Mar 31 01:58:50 2011 @@ -0,0 +1,337 @@ +<?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. +--> + + +<!-- + Display the luke request handler with graphs + --> +<xsl:stylesheet + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns="http://www.w3.org/1999/xhtml" + version="1.0" + > + <xsl:output + method="html" + encoding="UTF-8" + media-type="text/html; charset=UTF-8" + doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" + doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" + /> + + <xsl:variable name="title">Solr Luke Request Handler Response</xsl:variable> + + <xsl:template match="/"> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <link rel="stylesheet" type="text/css" href="solr-admin.css"/> + <link rel="icon" href="favicon.ico" type="image/ico"/> + <link rel="shortcut icon" href="favicon.ico" type="image/ico"/> + <title> + <xsl:value-of select="$title"/> + </title> + <xsl:call-template name="css"/> + + </head> + <body> + <h1> + <xsl:value-of select="$title"/> + </h1> + <div class="doc"> + <ul> + <xsl:if test="response/lst[@name='index']"> + <li> + <a href="#index">Index Statistics</a> + </li> + </xsl:if> + <xsl:if test="response/lst[@name='fields']"> + <li> + <a href="#fields">Field Statistics</a> + <ul> + <xsl:for-each select="response/lst[@name='fields']/lst"> + <li> + <a href="#{@name}"> + <xsl:value-of select="@name"/> + </a> + </li> + </xsl:for-each> + </ul> + </li> + </xsl:if> + <xsl:if test="response/lst[@name='doc']"> + <li> + <a href="#doc">Document statistics</a> + </li> + </xsl:if> + </ul> + </div> + <xsl:if test="response/lst[@name='index']"> + <h2><a name="index"/>Index Statistics</h2> + <xsl:apply-templates select="response/lst[@name='index']"/> + </xsl:if> + <xsl:if test="response/lst[@name='fields']"> + <h2><a name="fields"/>Field Statistics</h2> + <xsl:apply-templates select="response/lst[@name='fields']"/> + </xsl:if> + <xsl:if test="response/lst[@name='doc']"> + <h2><a name="doc"/>Document statistics</h2> + <xsl:apply-templates select="response/lst[@name='doc']"/> + </xsl:if> + </body> + </html> + </xsl:template> + + <xsl:template match="lst"> + <xsl:if test="parent::lst"> + <tr> + <td colspan="2"> + <div class="doc"> + <xsl:call-template name="list"/> + </div> + </td> + </tr> + </xsl:if> + <xsl:if test="not(parent::lst)"> + <div class="doc"> + <xsl:call-template name="list"/> + </div> + </xsl:if> + </xsl:template> + + <xsl:template name="list"> + <xsl:if test="count(child::*)>0"> + <table> + <thead> + <tr> + <th colspan="2"> + <p> + <a name="{@name}"/> + </p> + <xsl:value-of select="@name"/> + </th> + </tr> + </thead> + <tbody> + <xsl:choose> + <xsl:when + test="@name='histogram'"> + <tr> + <td colspan="2"> + <xsl:call-template name="histogram"/> + </td> + </tr> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> + </tbody> + </table> + </xsl:if> + </xsl:template> + + <xsl:template name="histogram"> + <div class="doc"> + <xsl:call-template name="barchart"> + <xsl:with-param name="max_bar_width">50</xsl:with-param> + <xsl:with-param name="iwidth">800</xsl:with-param> + <xsl:with-param name="iheight">160</xsl:with-param> + <xsl:with-param name="fill">blue</xsl:with-param> + </xsl:call-template> + </div> + </xsl:template> + + <xsl:template name="barchart"> + <xsl:param name="max_bar_width"/> + <xsl:param name="iwidth"/> + <xsl:param name="iheight"/> + <xsl:param name="fill"/> + <xsl:variable name="max"> + <xsl:for-each select="int"> + <xsl:sort data-type="number" order="descending"/> + <xsl:if test="position()=1"> + <xsl:value-of select="."/> + </xsl:if> + </xsl:for-each> + </xsl:variable> + <xsl:variable name="bars"> + <xsl:value-of select="count(int)"/> + </xsl:variable> + <xsl:variable name="bar_width"> + <xsl:choose> + <xsl:when test="$max_bar_width < ($iwidth div $bars)"> + <xsl:value-of select="$max_bar_width"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$iwidth div $bars"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <table class="histogram"> + <tbody> + <tr> + <xsl:for-each select="int"> + <td> + <xsl:value-of select="."/> + <div class="histogram"> + <xsl:attribute name="style">background-color: <xsl:value-of select="$fill"/>; width: <xsl:value-of select="$bar_width"/>px; height: <xsl:value-of select="($iheight*number(.)) div $max"/>px;</xsl:attribute> + </div> + </td> + </xsl:for-each> + </tr> + <tr> + <xsl:for-each select="int"> + <td> + <xsl:value-of select="@name"/> + </td> + </xsl:for-each> + </tr> + </tbody> + </table> + </xsl:template> + + <xsl:template name="keyvalue"> + <xsl:choose> + <xsl:when test="@name"> + <tr> + <td class="name"> + <xsl:value-of select="@name"/> + </td> + <td class="value"> + <xsl:value-of select="."/> + </td> + </tr> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="."/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template match="int|bool|long|float|double|uuid|date"> + <xsl:call-template name="keyvalue"/> + </xsl:template> + + <xsl:template match="arr"> + <tr> + <td class="name"> + <xsl:value-of select="@name"/> + </td> + <td class="value"> + <ul> + <xsl:for-each select="child::*"> + <li> + <xsl:apply-templates/> + </li> + </xsl:for-each> + </ul> + </td> + </tr> + </xsl:template> + + <xsl:template match="str"> + <xsl:choose> + <xsl:when test="@name='schema' or @name='index' or @name='flags'"> + <xsl:call-template name="schema"/> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="keyvalue"/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="schema"> + <tr> + <td class="name"> + <xsl:value-of select="@name"/> + </td> + <td class="value"> + <xsl:if test="contains(.,'unstored')"> + <xsl:value-of select="."/> + </xsl:if> + <xsl:if test="not(contains(.,'unstored'))"> + <xsl:call-template name="infochar2string"> + <xsl:with-param name="charList"> + <xsl:value-of select="."/> + </xsl:with-param> + </xsl:call-template> + </xsl:if> + </td> + </tr> + </xsl:template> + + <xsl:template name="infochar2string"> + <xsl:param name="i">1</xsl:param> + <xsl:param name="charList"/> + + <xsl:variable name="char"> + <xsl:value-of select="substring($charList,$i,1)"/> + </xsl:variable> + <xsl:choose> + <xsl:when test="$char='I'"> + <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='I']"/> - </xsl:when> + <xsl:when test="$char='T'"> + <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='T']"/> - </xsl:when> + <xsl:when test="$char='S'"> + <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='S']"/> - </xsl:when> + <xsl:when test="$char='M'"> + <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='M']"/> - </xsl:when> + <xsl:when test="$char='V'"> + <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='V']"/> - </xsl:when> + <xsl:when test="$char='o'"> + <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='o']"/> - </xsl:when> + <xsl:when test="$char='p'"> + <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='p']"/> - </xsl:when> + <xsl:when test="$char='O'"> + <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='O']"/> - </xsl:when> + <xsl:when test="$char='L'"> + <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='L']"/> - </xsl:when> + <xsl:when test="$char='B'"> + <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='B']"/> - </xsl:when> + <xsl:when test="$char='C'"> + <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='C']"/> - </xsl:when> + <xsl:when test="$char='f'"> + <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='f']"/> - </xsl:when> + <xsl:when test="$char='l'"> + <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='l']"/> - + </xsl:when> + </xsl:choose> + + <xsl:if test="not($i>=string-length($charList))"> + <xsl:call-template name="infochar2string"> + <xsl:with-param name="i"> + <xsl:value-of select="$i+1"/> + </xsl:with-param> + <xsl:with-param name="charList"> + <xsl:value-of select="$charList"/> + </xsl:with-param> + </xsl:call-template> + </xsl:if> + </xsl:template> + <xsl:template name="css"> + <style type="text/css"> + <![CDATA[ + td.name {font-style: italic; font-size:80%; } + .doc { margin: 0.5em; border: solid grey 1px; } + .exp { display: none; font-family: monospace; white-space: pre; } + div.histogram { background: none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;} + table.histogram { width: auto; vertical-align: bottom; } + table.histogram td, table.histogram th { text-align: center; vertical-align: bottom; border-bottom: 1px solid #ff9933; width: auto; } + ]]> + </style> + </xsl:template> +</xsl:stylesheet> Added: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/solr.xml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/solr.xml?rev=1087158&view=auto ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/solr.xml (added) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/solr/solr.xml Thu Mar 31 01:58:50 2011 @@ -0,0 +1,22 @@ +<?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. +--> +<solr persistent="true"> + <cores adminPath="/admin/cores"> + <core name="js" instanceDir="js"></core> + </cores> +</solr> \ No newline at end of file Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-search/src/main/java/org/apache/jetspeed/search/solr/SolrSearchEngineImpl.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-search/src/main/java/org/apache/jetspeed/search/solr/SolrSearchEngineImpl.java?rev=1087158&r1=1087157&r2=1087158&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-search/src/main/java/org/apache/jetspeed/search/solr/SolrSearchEngineImpl.java (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-search/src/main/java/org/apache/jetspeed/search/solr/SolrSearchEngineImpl.java Thu Mar 31 01:58:50 2011 @@ -405,7 +405,7 @@ public class SolrSearchEngineImpl implem doc.addField(ParsedObject.FIELDNAME_KEYWORDS, keyword, 1.0f); } } - + Map keywords = parsedObject.getKeywordsMap(); addFieldsToDocument(doc, keywords); Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-search/src/test/resources/solr-test-home/js/conf/schema.xml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-search/src/test/resources/solr-test-home/js/conf/schema.xml?rev=1087158&r1=1087157&r2=1087158&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-search/src/test/resources/solr-test-home/js/conf/schema.xml (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-search/src/test/resources/solr-test-home/js/conf/schema.xml Thu Mar 31 01:58:50 2011 @@ -78,7 +78,7 @@ <!-- The optional sortMissingLast and sortMissingFirst attributes are currently supported on types that are sorted internally as strings. - This includes "string","boolean","sint","slong","sfloat","sdouble","pdate" + This includes "string","boolean","sint","slong","sfloat","sdouble","pdate" - If sortMissingLast="true", then a sort on this field will cause documents without the field to come after documents with the field, regardless of the requested sort order (asc or desc). @@ -292,7 +292,7 @@ <!-- A general unstemmed text field that indexes tokens normally and also reversed (via ReversedWildcardFilterFactory), to enable more efficient - leading wildcard queries. --> + leading wildcard queries. --> <fieldType name="text_rev" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> @@ -373,10 +373,10 @@ a token of "foo|1.4" would be indexed as "foo" with a payload of 1.4f Attributes of the DelimitedPayloadTokenFilterFactory : "delimiter" - a one character delimiter. Default is | (pipe) - "encoder" - how to encode the following value into a playload - float -> org.apache.lucene.analysis.payloads.FloatEncoder, - integer -> o.a.l.a.p.IntegerEncoder - identity -> o.a.l.a.p.IdentityEncoder + "encoder" - how to encode the following value into a playload + float -> org.apache.lucene.analysis.payloads.FloatEncoder, + integer -> o.a.l.a.p.IntegerEncoder + identity -> o.a.l.a.p.IdentityEncoder Fully Qualified class name implementing PayloadEncoder, Encoder must have a no arg constructor. --> <filter class="solr.DelimitedPayloadTokenFilterFactory" encoder="float"/> @@ -429,16 +429,22 @@ <field name="fieldname.key" type="string" indexed="true" stored="true" required="true" /> <field name="fieldname.type" type="text" indexed="true" stored="true" required="false" /> <field name="fieldname.content" type="text" indexed="true" stored="false" required="false" /> - <field name="fieldname.description" type="text" indexed="true" stored="true" required="false" /> - <field name="fieldname.title" type="text" indexed="true" stored="true" required="false" /> - <field name="fieldname.language" type="text" indexed="true" stored="true" required="false" /> - <field name="fieldname.fields" type="text" indexed="true" stored="false" required="false" /> - <field name="fieldname.keywords" type="string" indexed="true" stored="true" required="false" /> - <field name="fieldname.url" type="text" indexed="true" stored="true" required="false" /> + <field name="fieldname.description" type="text" indexed="true" stored="true" multiValued="true" required="false" /> + <field name="fieldname.title" type="text" indexed="true" stored="true" multiValued="true" required="false" /> + <field name="fieldname.language" type="text" indexed="true" stored="true" multiValued="true" required="false" /> + <field name="fieldname.fields" type="text" indexed="true" stored="false" multiValued="true" required="false" /> + <field name="fieldname.keywords" type="string" indexed="true" stored="true" multiValued="true" required="false" /> + <field name="fieldname.url" type="text" indexed="true" stored="true" multiValued="true" required="false" /> <field name="fieldname.score" type="text" indexed="true" stored="false" required="false" /> <field name="fieldname.className" type="text" indexed="true" stored="true" required="false" /> <field name="fieldname.synthetic" type="text" indexed="true" stored="false" required="false" /> - + + <field name="ID" type="string" indexed="true" stored="true" required="false" /> + <field name="url" type="text" indexed="true" stored="true" required="false" /> + <field name="portlet" type="string" indexed="true" stored="true" required="false" /> + <field name="portlet_application" type="string" indexed="true" stored="true" required="false" /> + + <!-- Dynamic field definitions. If a field name is not found, dynamicFields will be used if the name matches any of the patterns. RESTRICTION: the glob-like pattern in the name attribute must have @@ -473,7 +479,7 @@ field name or dynamic field, rather than reporting them as an error. alternately, change the type="ignored" to some other type e.g. "text" if you want unknown fields indexed and/or stored by default --> - <!--dynamicField name="*" type="ignored" multiValued="true" /--> + <dynamicField name="*" type="ignored" multiValued="true" /> </fields> @@ -499,12 +505,12 @@ <copyField source="includes" dest="text"/> <copyField source="manu" dest="manu_exact"/> --> - + <!-- Above, multiple source fields are copied to the [text] field. - Another way to map multiple source fields to the same - destination field is to use the dynamic field syntax. - copyField also supports a maxChars to copy setting. --> - + Another way to map multiple source fields to the same + destination field is to use the dynamic field syntax. + copyField also supports a maxChars to copy setting. --> + <!-- <copyField source="*_t" dest="text" maxChars="3000"/> --> <!-- copy name to alphaNameSort, a field designed for sorting by name --> Added: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/search-embedded-solr-override.xml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/search-embedded-solr-override.xml?rev=1087158&view=auto ============================================================================== --- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/search-embedded-solr-override.xml (added) +++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/search-embedded-solr-override.xml Thu Mar 31 01:58:50 2011 @@ -0,0 +1,69 @@ +<?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. +--> +<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> + + <bean id="_embeddedSolrHomeSysPropSetter" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> + <meta key="j2:cat" value="default" /> + <property name="targetClass" value="java.lang.System" /> + <property name="targetMethod" value="setProperty" /> + <property name="arguments"> + <list> + <value>solr.solr.home</value> + <value>${search.embedded.solr.solr.home}</value> + </list> + </property> + </bean> + + <bean id="_embeddedSolrDataDirPropSetter" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean" depends-on="_embeddedSolrHomeSysPropSetter"> + <meta key="j2:cat" value="default" /> + <property name="targetClass" value="java.lang.System" /> + <property name="targetMethod" value="setProperty" /> + <property name="arguments"> + <list> + <value>solr.data.dir</value> + <value>${search.embedded.solr.data.dir}</value> + </list> + </property> + </bean> + + <bean id="org.apache.solr.core.CoreContainer" class="org.apache.solr.core.CoreContainer" destroy-method="shutdown"> + <meta key="j2:cat" value="default or search" /> + <constructor-arg value="${search.embedded.solr.solr.home}" /> + <constructor-arg> + <bean class="java.io.File"> + <meta key="j2:cat" value="default or search" /> + <constructor-arg value="${search.embedded.solr.solr.home}/solr.xml" /> + </bean> + </constructor-arg> + </bean> + + <bean id="org.apache.solr.client.solrj.SolrServer" class="org.apache.solr.client.solrj.embedded.EmbeddedSolrServer" depends-on="_embeddedSolrDataDirPropSetter"> + <meta key="j2:cat" value="default or search" /> + <constructor-arg ref="org.apache.solr.core.CoreContainer" /> + <constructor-arg value="js" /> + </bean> + + <bean id="org.apache.jetspeed.search.SearchEngine" class="org.apache.jetspeed.search.solr.SolrSearchEngineImpl"> + <meta key="j2:cat" value="default or search" /> + <constructor-arg ref="org.apache.solr.client.solrj.SolrServer" /> + <constructor-arg type="boolean" value="${search.index.optimizeAfterUpdate}" /> + <constructor-arg ref="org.apache.jetspeed.search.HandlerFactory" /> + </bean> + +</beans> Added: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/search-http-solr-override.xml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/search-http-solr-override.xml?rev=1087158&view=auto ============================================================================== --- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/search-http-solr-override.xml (added) +++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/search-http-solr-override.xml Thu Mar 31 01:58:50 2011 @@ -0,0 +1,45 @@ +<?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. +--> +<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> + + <bean id="org.apache.solr.client.solrj.SolrServer" class="org.apache.solr.client.solrj.impl.CommonsHttpSolrServer"> + <meta key="j2:cat" value="default or search" /> + <constructor-arg value="${search.http.solr.url}" /> + <property name="soTimeout" value="1000" /> + <property name="connectionTimeout" value="100" /> + <property name="defaultMaxConnectionsPerHost" value="100" /> + <property name="maxTotalConnections" value="100" /> + <property name="followRedirects" value="false" /> + <property name="allowCompression" value="true" /> + <property name="maxRetries" value="1" /> + <property name="parser"> + <bean class="org.apache.solr.client.solrj.impl.XMLResponseParser"> + <meta key="j2:cat" value="default or search" /> + </bean> + </property> + </bean> + + <bean id="org.apache.jetspeed.search.SearchEngine" class="org.apache.jetspeed.search.solr.SolrSearchEngineImpl"> + <meta key="j2:cat" value="default or search" /> + <constructor-arg ref="org.apache.solr.client.solrj.SolrServer" /> + <constructor-arg type="boolean" value="${search.index.optimizeAfterUpdate}" /> + <constructor-arg ref="org.apache.jetspeed.search.HandlerFactory" /> + </bean> + +</beans> Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/conf/jetspeed/jetspeed.properties URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/conf/jetspeed/jetspeed.properties?rev=1087158&r1=1087157&r2=1087158&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/conf/jetspeed/jetspeed.properties (original) +++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/conf/jetspeed/jetspeed.properties Thu Mar 31 01:58:50 2011 @@ -234,6 +234,14 @@ portal.statistics.MaxTimePageToFlush=600 search.index.location=${applicationRoot}/WEB-INF/search_index search.index.optimizeAfterUpdate=true +# Optionally you can configure external solr http(s) url +search.http.solr.url=http://localhost:8983/solr + +# Optionally you can configure embedded solr home and data dir paths +# if you enable embedded solr instead of the default lucene +search.embedded.solr.solr.home=${applicationRoot}/WEB-INF/solr +search.embedded.solr.data.dir=${applicationRoot}/WEB-INF/solr/data + #------------------------------------------------------------------------- # Audit Implementation #------------------------------------------------------------------------- --------------------------------------------------------------------- To unsubscribe, e-mail: jetspeed-dev-unsubscr...@portals.apache.org For additional commands, e-mail: jetspeed-dev-h...@portals.apache.org