diff options
| author | Bob Zeleznik <zzzman@gmail.com> | 2020-02-08 13:48:11 -0500 | 
|---|---|---|
| committer | Bob Zeleznik <zzzman@gmail.com> | 2020-02-08 13:48:11 -0500 | 
| commit | 90d7fb57a64011763ad1d608126eacb052061e43 (patch) | |
| tree | fd96990ebd0ffe38f2285fbbceca942c1fb45587 /solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/updateXml.xsl | |
| parent | e310c0fdcef6ac71ee492470d4ac689cbb094167 (diff) | |
| parent | 1b046f76cf39f1f6cb1875aa84b45db74b6d994e (diff) | |
Merge branch 'master' into monika_animation
Diffstat (limited to 'solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/updateXml.xsl')
| -rw-r--r-- | solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/updateXml.xsl | 70 | 
1 files changed, 70 insertions, 0 deletions
diff --git a/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/updateXml.xsl b/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/updateXml.xsl new file mode 100644 index 000000000..a96e1d024 --- /dev/null +++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/updateXml.xsl @@ -0,0 +1,70 @@ +<!--  + * 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 response into Solr Update XML compliant XML. +  When used in the xslt response writer you will get UpdaateXML as output. +  But you can also store a query response XML to disk and feed this XML to +  the XSLTUpdateRequestHandler to index the content. Provided as example only. +  See http://wiki.apache.org/solr/XsltUpdateRequestHandler for more info + --> +<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> +  <xsl:output media-type="text/xml" method="xml" indent="yes"/> + +  <xsl:template match='/'> +    <add> +        <xsl:apply-templates select="response/result/doc"/> +    </add> +  </xsl:template> +   +  <!-- Ignore score (makes no sense to index) --> +  <xsl:template match="doc/*[@name='score']" priority="100"> +  </xsl:template> + +  <xsl:template match="doc"> +    <xsl:variable name="pos" select="position()"/> +    <doc> +        <xsl:apply-templates> +          <xsl:with-param name="pos"><xsl:value-of select="$pos"/></xsl:with-param> +        </xsl:apply-templates> +    </doc> +  </xsl:template> + +  <!-- Flatten arrays to duplicate field lines --> +  <xsl:template match="doc/arr" priority="100"> +      <xsl:variable name="fn" select="@name"/> +       +      <xsl:for-each select="*"> +        <xsl:element name="field"> +          <xsl:attribute name="name"><xsl:value-of select="$fn"/></xsl:attribute> +          <xsl:value-of select="."/> +        </xsl:element> +      </xsl:for-each> +  </xsl:template> + + +  <xsl:template match="doc/*"> +      <xsl:variable name="fn" select="@name"/> + +      <xsl:element name="field"> +        <xsl:attribute name="name"><xsl:value-of select="$fn"/></xsl:attribute> +        <xsl:value-of select="."/> +      </xsl:element> +  </xsl:template> + +  <xsl:template match="*"/> +</xsl:stylesheet>  | 
