diff options
| author | bob <bcz@cs.brown.edu> | 2019-08-19 10:11:59 -0400 | 
|---|---|---|
| committer | bob <bcz@cs.brown.edu> | 2019-08-19 10:11:59 -0400 | 
| commit | e37bf9124c952aa26c3e29deb9e4faa01cad1a7e (patch) | |
| tree | be44ae9bd5e2eb6c5ce392383d41505b5863d061 /solr-8.1.1/example/example-DIH/solr/db/conf/xslt/updateXml.xsl | |
| parent | 07482c3bf435748140addfd4fd338fc668657798 (diff) | |
| parent | b037aa89fb564812f880994453ce002054a0ad82 (diff) | |
Merge branch 'master' into presentation_f
Diffstat (limited to 'solr-8.1.1/example/example-DIH/solr/db/conf/xslt/updateXml.xsl')
| -rw-r--r-- | solr-8.1.1/example/example-DIH/solr/db/conf/xslt/updateXml.xsl | 70 | 
1 files changed, 70 insertions, 0 deletions
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/xslt/updateXml.xsl b/solr-8.1.1/example/example-DIH/solr/db/conf/xslt/updateXml.xsl new file mode 100644 index 000000000..7c4a48e73 --- /dev/null +++ b/solr-8.1.1/example/example-DIH/solr/db/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>  | 
