[ http://issues.apache.org/jira/browse/SOLR-49?page=all ]
Bertrand Delacretaz updated SOLR-49: ------------------------------------ Attachment: solr-XSLTResponseWriter-20060922.tar.gz Here's yet another version which takes the Content-Type from the XSLT transform. The code and these instructions replace the previous versions: Must be configured like this in solrconfig.xml: <!-- XSLT response writer (SOLR-49) Changes to XSLT transforms are taken into account every xsltCacheLifetimeSeconds at most. --> <queryResponseWriter name="xslt" class="org.apache.solr.request.XSLTResponseWriter" xsltCacheLifetimeSeconds="5" /> The following request parameters activate the XSLTResponseWriter: wt = xslt tr = my-xslt-transform.xsl The Content-Type comes from the xsl:output element of the XSLT transform: <xsl:output media-type="text/html"/> And finally, the TransformerProvider warns about the possible performance implications of its simplistic cache, when first used: ATTENTION: The TransformerProvider's simplistic XSLT caching mechanism is not appropriate for high load scenarios, unless a single XSLT transform is used and xsltCacheLifetimeSeconds is set to a sufficiently high value. > PATCH: XSLTServletFilter > ------------------------ > > Key: SOLR-49 > URL: http://issues.apache.org/jira/browse/SOLR-49 > Project: Solr > Issue Type: New Feature > Components: search > Environment: Tested on macosx 10.4.7, JDK 1.5.0_06 > Reporter: Bertrand Delacretaz > Priority: Minor > Attachments: solr-XSLTResponseWriter-20060922.tar.gz, > solr-XSLTResponseWriter-files.tar.gz, xslt-filter-files.tar.gz > > > Patch that implements server-side XSLT transforms of query results. > The filter is activated by using select/html instead of select/ to run > queries, and optionally adding a transform parameter to specify the XSLT > transform to use, for example: > http://localhost:8983/solr/select/html?q=usage&transform=my.xsl > In which case my.xsl should be found in solr/conf/xslt/ with the example > configuration. The default transform (solr/conf/xslt/query-to-html.xsl) > outputs a simplistic HTML format. > Performance is suboptimal, as the filter reparses the XML output generated by > Solr. Modifying the XMLWriter to output to a ContentHandler would be more > efficient, but I didn't have time to go that far. > The TransformerProvider trivially caches the last Transformer used, could be > improved using an LRU cache of several transformers, I haven't checked if > Solr's infrastructure contains such an animal already. > The patch is all new files, except for adding this in web.xml before the > first <servlet>: > <filter> > <filter-name>xslt</filter-name> > <filter-class>org.apache.solr.xslt.XSLTServletFilter</filter-class> > </filter> > <!-- apply the XSLT filter when select/html is used to make queries --> > <filter-mapping> > <filter-name>xslt</filter-name> > <url-pattern>/select/html/*</url-pattern> > </filter-mapping> > I've left the client-side XSLT stuff (stylesheet parameter) as is for the > moment. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira