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


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