[ 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

        

Reply via email to