erichummel-sunspot 1.2.1g → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. data/.gitignore +12 -0
  2. data/Gemfile +3 -9
  3. data/Rakefile +11 -5
  4. data/lib/sunspot/dsl/field_query.rb +13 -0
  5. data/lib/sunspot/dsl/functional.rb +3 -0
  6. data/lib/sunspot/search/abstract_search.rb +9 -12
  7. data/lib/sunspot/search/paginated_collection.rb +55 -0
  8. data/lib/sunspot/server.rb +3 -7
  9. data/lib/sunspot/version.rb +1 -1
  10. data/script/console +10 -0
  11. data/solr-1.3/etc/jetty.xml +212 -0
  12. data/solr-1.3/etc/webdefault.xml +379 -0
  13. data/solr-1.3/lib/jetty-6.1.3.jar +0 -0
  14. data/solr-1.3/lib/jetty-util-6.1.3.jar +0 -0
  15. data/solr-1.3/lib/jsp-2.1/ant-1.6.5.jar +0 -0
  16. data/solr-1.3/lib/jsp-2.1/core-3.1.1.jar +0 -0
  17. data/solr-1.3/lib/jsp-2.1/jsp-2.1.jar +0 -0
  18. data/solr-1.3/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
  19. data/solr-1.3/lib/servlet-api-2.5-6.1.3.jar +0 -0
  20. data/solr-1.3/solr/conf/elevate.xml +36 -0
  21. data/solr-1.3/solr/conf/protwords.txt +21 -0
  22. data/solr-1.3/solr/conf/schema.xml +64 -0
  23. data/solr-1.3/solr/conf/solrconfig.xml +725 -0
  24. data/solr-1.3/solr/conf/stopwords.txt +57 -0
  25. data/solr-1.3/solr/conf/synonyms.txt +31 -0
  26. data/solr-1.3/solr/lib/geoapi-nogenerics-2.1-M2.jar +0 -0
  27. data/solr-1.3/solr/lib/gt2-referencing-2.3.1.jar +0 -0
  28. data/solr-1.3/solr/lib/jsr108-0.01.jar +0 -0
  29. data/solr-1.3/solr/lib/locallucene.jar +0 -0
  30. data/solr-1.3/solr/lib/localsolr.jar +0 -0
  31. data/solr-1.3/start.jar +0 -0
  32. data/solr-1.3/webapps/solr.war +0 -0
  33. data/solr/README.txt +42 -0
  34. data/solr/etc/jetty.xml +4 -0
  35. data/solr/solr/.gitignore +1 -0
  36. data/solr/solr/README.txt +54 -0
  37. data/solr/solr/conf/xslt/example.xsl +132 -0
  38. data/solr/solr/conf/xslt/example_atom.xsl +67 -0
  39. data/solr/solr/conf/xslt/example_rss.xsl +66 -0
  40. data/solr/solr/conf/xslt/luke.xsl +337 -0
  41. data/spec/api/adapters_spec.rb +1 -1
  42. data/spec/api/binding_spec.rb +1 -1
  43. data/spec/api/indexer/attributes_spec.rb +1 -1
  44. data/spec/api/indexer/batch_spec.rb +1 -1
  45. data/spec/api/indexer/dynamic_fields_spec.rb +1 -1
  46. data/spec/api/indexer/fixed_fields_spec.rb +1 -1
  47. data/spec/api/indexer/fulltext_spec.rb +1 -1
  48. data/spec/api/indexer/removal_spec.rb +1 -1
  49. data/spec/api/indexer/spec_helper.rb +1 -1
  50. data/spec/api/indexer_spec.rb +1 -1
  51. data/spec/api/query/advanced_manipulation_examples.rb +1 -1
  52. data/spec/api/query/dsl_spec.rb +1 -1
  53. data/spec/api/query/faceting_examples.rb +0 -2
  54. data/spec/api/query/fulltext_examples.rb +0 -2
  55. data/spec/api/query/function_spec.rb +1 -1
  56. data/spec/api/query/geo_examples.rb +0 -1
  57. data/spec/api/query/highlighting_examples.rb +0 -2
  58. data/spec/api/query/more_like_this_spec.rb +1 -1
  59. data/spec/api/query/ordering_pagination_examples.rb +0 -2
  60. data/spec/api/query/spec_helper.rb +1 -1
  61. data/spec/api/query/standard_spec.rb +1 -1
  62. data/spec/api/search/dynamic_fields_spec.rb +1 -1
  63. data/spec/api/search/faceting_spec.rb +1 -1
  64. data/spec/api/search/highlighting_spec.rb +1 -1
  65. data/spec/api/search/hits_spec.rb +12 -32
  66. data/spec/api/search/paginated_collection_spec.rb +26 -0
  67. data/spec/api/search/results_spec.rb +6 -19
  68. data/spec/api/search/search_spec.rb +1 -1
  69. data/spec/api/search/spec_helper.rb +1 -1
  70. data/spec/api/server_spec.rb +1 -1
  71. data/spec/api/session_proxy/class_sharding_session_proxy_spec.rb +1 -1
  72. data/spec/api/session_proxy/id_sharding_session_proxy_spec.rb +1 -1
  73. data/spec/api/session_proxy/master_slave_session_proxy_spec.rb +1 -1
  74. data/spec/api/session_proxy/sharding_session_proxy_spec.rb +1 -1
  75. data/spec/api/session_proxy/silent_fail_session_proxy_spec.rb +1 -1
  76. data/spec/api/session_proxy/spec_helper.rb +1 -1
  77. data/spec/api/session_proxy/thread_local_session_proxy_spec.rb +1 -1
  78. data/spec/api/session_spec.rb +1 -1
  79. data/spec/api/spec_helper.rb +1 -1
  80. data/spec/api/sunspot_spec.rb +1 -1
  81. data/spec/integration/faceting_spec.rb +1 -1
  82. data/spec/integration/indexing_spec.rb +1 -1
  83. data/spec/integration/keyword_search_spec.rb +1 -1
  84. data/spec/integration/local_search_spec.rb +1 -1
  85. data/spec/integration/more_like_this_spec.rb +1 -1
  86. data/spec/integration/scoped_search_spec.rb +1 -1
  87. data/spec/integration/spec_helper.rb +1 -1
  88. data/spec/integration/test_pagination.rb +1 -1
  89. data/spec/mocks/connection.rb +1 -1
  90. data/spec/spec_helper.rb +4 -16
  91. metadata +118 -37
  92. data/Gemfile.lock +0 -32
@@ -0,0 +1,57 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one or more
2
+ # contributor license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright ownership.
4
+ # The ASF licenses this file to You under the Apache License, Version 2.0
5
+ # (the "License"); you may not use this file except in compliance with
6
+ # the License. You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ #-----------------------------------------------------------------------
17
+ # a couple of test stopwords to test that the words are really being
18
+ # configured from this file:
19
+ stopworda
20
+ stopwordb
21
+
22
+ #Standard english stop words taken from Lucene's StopAnalyzer
23
+ an
24
+ and
25
+ are
26
+ as
27
+ at
28
+ be
29
+ but
30
+ by
31
+ for
32
+ if
33
+ in
34
+ into
35
+ is
36
+ it
37
+ no
38
+ not
39
+ of
40
+ on
41
+ or
42
+ s
43
+ such
44
+ t
45
+ that
46
+ the
47
+ their
48
+ then
49
+ there
50
+ these
51
+ they
52
+ this
53
+ to
54
+ was
55
+ will
56
+ with
57
+
@@ -0,0 +1,31 @@
1
+ # The ASF licenses this file to You under the Apache License, Version 2.0
2
+ # (the "License"); you may not use this file except in compliance with
3
+ # the License. You may obtain a copy of the License at
4
+ #
5
+ # http://www.apache.org/licenses/LICENSE-2.0
6
+ #
7
+ # Unless required by applicable law or agreed to in writing, software
8
+ # distributed under the License is distributed on an "AS IS" BASIS,
9
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10
+ # See the License for the specific language governing permissions and
11
+ # limitations under the License.
12
+
13
+ #-----------------------------------------------------------------------
14
+ #some test synonym mappings unlikely to appear in real input text
15
+ aaa => aaaa
16
+ bbb => bbbb1 bbbb2
17
+ ccc => cccc1,cccc2
18
+ a\=>a => b\=>b
19
+ a\,a => b\,b
20
+ fooaaa,baraaa,bazaaa
21
+
22
+ # Some synonym groups specific to this example
23
+ GB,gib,gigabyte,gigabytes
24
+ MB,mib,megabyte,megabytes
25
+ Television, Televisions, TV, TVs
26
+ #notice we use "gib" instead of "GiB" so any WordDelimiterFilter coming
27
+ #after us won't split it into two words.
28
+
29
+ # Synonym mappings can be used for spelling correction too
30
+ pixima => pixma
31
+
Binary file
Binary file
@@ -0,0 +1,42 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one or more
2
+ # contributor license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright ownership.
4
+ # The ASF licenses this file to You under the Apache License, Version 2.0
5
+ # (the "License"); you may not use this file except in compliance with
6
+ # the License. You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ Solr example configuration
17
+ --------------------------
18
+
19
+ To run this example configuration, use
20
+
21
+ java -jar start.jar
22
+
23
+ in this directory, and when Solr is started connect to
24
+
25
+ http://localhost:8983/solr/admin/
26
+
27
+ To add documents to the index, use the post.sh script in the exampledocs
28
+ subdirectory (while Solr is running), for example:
29
+
30
+ cd exampledocs
31
+ ./post.sh *.xml
32
+
33
+ See also README.txt in the solr subdirectory, and check
34
+ http://wiki.apache.org/solr/SolrResources for a list of tutorials and
35
+ introductory articles.
36
+
37
+ NOTE: This Solr example server references SolrCell jars outside of the server
38
+ directory with <lib> statements in the solrconfig.xml. If you make a copy of
39
+ this example server and wish to use the ExtractingRequestHandler (SolrCell),
40
+ you will need to copy the required jars into solr/lib or update the paths to
41
+ the jars in your solrconfig.xml.
42
+
@@ -73,6 +73,10 @@
73
73
  <Set name="port"><SystemProperty name="jetty.port" default="8983"/></Set>
74
74
  <Set name="maxIdleTime">50000</Set>
75
75
  <Set name="lowResourceMaxIdleTime">1500</Set>
76
+ <!-- Increase header buffer size from default of 4KB to 64KB to
77
+ prevent Solr from reaching this limit during large queries
78
+ -->
79
+ <Set name="headerBufferSize">65536</Set>
76
80
  </New>
77
81
  </Arg>
78
82
  </Call>
@@ -0,0 +1 @@
1
+ data
@@ -0,0 +1,54 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one or more
2
+ # contributor license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright ownership.
4
+ # The ASF licenses this file to You under the Apache License, Version 2.0
5
+ # (the "License"); you may not use this file except in compliance with
6
+ # the License. You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+
17
+ Example "Solr Home" Directory
18
+ =============================
19
+
20
+ This directory is provided as an example of what a "Solr Home" directory
21
+ should look like.
22
+
23
+ It's not strictly necessary that you copy all of the files in this
24
+ directory when setting up a new instance of Solr, but it is recommended.
25
+
26
+
27
+ Basic Directory Structure
28
+ -------------------------
29
+
30
+ The Solr Home directory typically contains the following subdirectories...
31
+
32
+ conf/
33
+ This directory is mandatory and must contain your solrconfig.xml
34
+ and schema.xml. Any other optional configuration files would also
35
+ be kept here.
36
+
37
+ data/
38
+ This directory is the default location where Solr will keep your
39
+ index, and is used by the replication scripts for dealing with
40
+ snapshots. You can override this location in the solrconfig.xml
41
+ and scripts.conf files. Solr will create this directory if it
42
+ does not already exist.
43
+
44
+ lib/
45
+ This directory is optional. If it exists, Solr will load any Jars
46
+ found in this directory and use them to resolve any "plugins"
47
+ specified in your solrconfig.xml or schema.xml (ie: Analyzers,
48
+ Request Handlers, etc...). Alternatively you can use the <lib>
49
+ syntax in solrconfig.xml to direct Solr to your plugins. See the
50
+ example solrconfig.xml file for details.
51
+
52
+ bin/
53
+ This directory is optional. It is the default location used for
54
+ keeping the replication scripts.
@@ -0,0 +1,132 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+
3
+ <!--
4
+ * Licensed to the Apache Software Foundation (ASF) under one or more
5
+ * contributor license agreements. See the NOTICE file distributed with
6
+ * this work for additional information regarding copyright ownership.
7
+ * The ASF licenses this file to You under the Apache License, Version 2.0
8
+ * (the "License"); you may not use this file except in compliance with
9
+ * the License. You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ -->
19
+
20
+ <!--
21
+ Simple transform of Solr query results to HTML
22
+ -->
23
+ <xsl:stylesheet version='1.0'
24
+ xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
25
+ >
26
+
27
+ <xsl:output media-type="text/html; charset=UTF-8" encoding="UTF-8"/>
28
+
29
+ <xsl:variable name="title" select="concat('Solr search results (',response/result/@numFound,' documents)')"/>
30
+
31
+ <xsl:template match='/'>
32
+ <html>
33
+ <head>
34
+ <title><xsl:value-of select="$title"/></title>
35
+ <xsl:call-template name="css"/>
36
+ </head>
37
+ <body>
38
+ <h1><xsl:value-of select="$title"/></h1>
39
+ <div class="note">
40
+ This has been formatted by the sample "example.xsl" transform -
41
+ use your own XSLT to get a nicer page
42
+ </div>
43
+ <xsl:apply-templates select="response/result/doc"/>
44
+ </body>
45
+ </html>
46
+ </xsl:template>
47
+
48
+ <xsl:template match="doc">
49
+ <xsl:variable name="pos" select="position()"/>
50
+ <div class="doc">
51
+ <table width="100%">
52
+ <xsl:apply-templates>
53
+ <xsl:with-param name="pos"><xsl:value-of select="$pos"/></xsl:with-param>
54
+ </xsl:apply-templates>
55
+ </table>
56
+ </div>
57
+ </xsl:template>
58
+
59
+ <xsl:template match="doc/*[@name='score']" priority="100">
60
+ <xsl:param name="pos"></xsl:param>
61
+ <tr>
62
+ <td class="name">
63
+ <xsl:value-of select="@name"/>
64
+ </td>
65
+ <td class="value">
66
+ <xsl:value-of select="."/>
67
+
68
+ <xsl:if test="boolean(//lst[@name='explain'])">
69
+ <xsl:element name="a">
70
+ <!-- can't allow whitespace here -->
71
+ <xsl:attribute name="href">javascript:toggle("<xsl:value-of select="concat('exp-',$pos)" />");</xsl:attribute>?</xsl:element>
72
+ <br/>
73
+ <xsl:element name="div">
74
+ <xsl:attribute name="class">exp</xsl:attribute>
75
+ <xsl:attribute name="id">
76
+ <xsl:value-of select="concat('exp-',$pos)" />
77
+ </xsl:attribute>
78
+ <xsl:value-of select="//lst[@name='explain']/str[position()=$pos]"/>
79
+ </xsl:element>
80
+ </xsl:if>
81
+ </td>
82
+ </tr>
83
+ </xsl:template>
84
+
85
+ <xsl:template match="doc/arr" priority="100">
86
+ <tr>
87
+ <td class="name">
88
+ <xsl:value-of select="@name"/>
89
+ </td>
90
+ <td class="value">
91
+ <ul>
92
+ <xsl:for-each select="*">
93
+ <li><xsl:value-of select="."/></li>
94
+ </xsl:for-each>
95
+ </ul>
96
+ </td>
97
+ </tr>
98
+ </xsl:template>
99
+
100
+
101
+ <xsl:template match="doc/*">
102
+ <tr>
103
+ <td class="name">
104
+ <xsl:value-of select="@name"/>
105
+ </td>
106
+ <td class="value">
107
+ <xsl:value-of select="."/>
108
+ </td>
109
+ </tr>
110
+ </xsl:template>
111
+
112
+ <xsl:template match="*"/>
113
+
114
+ <xsl:template name="css">
115
+ <script>
116
+ function toggle(id) {
117
+ var obj = document.getElementById(id);
118
+ obj.style.display = (obj.style.display != 'block') ? 'block' : 'none';
119
+ }
120
+ </script>
121
+ <style type="text/css">
122
+ body { font-family: "Lucida Grande", sans-serif }
123
+ td.name { font-style: italic; font-size:80%; }
124
+ td { vertical-align: top; }
125
+ ul { margin: 0px; margin-left: 1em; padding: 0px; }
126
+ .note { font-size:80%; }
127
+ .doc { margin-top: 1em; border-top: solid grey 1px; }
128
+ .exp { display: none; font-family: monospace; white-space: pre; }
129
+ </style>
130
+ </xsl:template>
131
+
132
+ </xsl:stylesheet>
@@ -0,0 +1,67 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+
3
+ <!--
4
+ * Licensed to the Apache Software Foundation (ASF) under one or more
5
+ * contributor license agreements. See the NOTICE file distributed with
6
+ * this work for additional information regarding copyright ownership.
7
+ * The ASF licenses this file to You under the Apache License, Version 2.0
8
+ * (the "License"); you may not use this file except in compliance with
9
+ * the License. You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ -->
19
+
20
+ <!--
21
+ Simple transform of Solr query results to Atom
22
+ -->
23
+
24
+ <xsl:stylesheet version='1.0'
25
+ xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
26
+
27
+ <xsl:output
28
+ method="xml"
29
+ encoding="utf-8"
30
+ media-type="text/xml; charset=UTF-8"
31
+ />
32
+
33
+ <xsl:template match='/'>
34
+ <xsl:variable name="query" select="response/lst[@name='responseHeader']/lst[@name='params']/str[@name='q']"/>
35
+ <feed xmlns="http://www.w3.org/2005/Atom">
36
+ <title>Example Solr Atom 1.0 Feed</title>
37
+ <subtitle>
38
+ This has been formatted by the sample "example_atom.xsl" transform -
39
+ use your own XSLT to get a nicer Atom feed.
40
+ </subtitle>
41
+ <author>
42
+ <name>Apache Solr</name>
43
+ <email>solr-user@lucene.apache.org</email>
44
+ </author>
45
+ <link rel="self" type="application/atom+xml"
46
+ href="http://localhost:8983/solr/q={$query}&amp;wt=xslt&amp;tr=atom.xsl"/>
47
+ <updated>
48
+ <xsl:value-of select="response/result/doc[position()=1]/date[@name='timestamp']"/>
49
+ </updated>
50
+ <id>tag:localhost,2007:example</id>
51
+ <xsl:apply-templates select="response/result/doc"/>
52
+ </feed>
53
+ </xsl:template>
54
+
55
+ <!-- search results xslt -->
56
+ <xsl:template match="doc">
57
+ <xsl:variable name="id" select="str[@name='id']"/>
58
+ <entry>
59
+ <title><xsl:value-of select="str[@name='name']"/></title>
60
+ <link href="http://localhost:8983/solr/select?q={$id}"/>
61
+ <id>tag:localhost,2007:<xsl:value-of select="$id"/></id>
62
+ <summary><xsl:value-of select="arr[@name='features']"/></summary>
63
+ <updated><xsl:value-of select="date[@name='timestamp']"/></updated>
64
+ </entry>
65
+ </xsl:template>
66
+
67
+ </xsl:stylesheet>
@@ -0,0 +1,66 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+
3
+ <!--
4
+ * Licensed to the Apache Software Foundation (ASF) under one or more
5
+ * contributor license agreements. See the NOTICE file distributed with
6
+ * this work for additional information regarding copyright ownership.
7
+ * The ASF licenses this file to You under the Apache License, Version 2.0
8
+ * (the "License"); you may not use this file except in compliance with
9
+ * the License. You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ -->
19
+
20
+ <!--
21
+ Simple transform of Solr query results to RSS
22
+ -->
23
+
24
+ <xsl:stylesheet version='1.0'
25
+ xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
26
+
27
+ <xsl:output
28
+ method="xml"
29
+ encoding="utf-8"
30
+ media-type="text/xml; charset=UTF-8"
31
+ />
32
+ <xsl:template match='/'>
33
+ <rss version="2.0">
34
+ <channel>
35
+ <title>Example Solr RSS 2.0 Feed</title>
36
+ <link>http://localhost:8983/solr</link>
37
+ <description>
38
+ This has been formatted by the sample "example_rss.xsl" transform -
39
+ use your own XSLT to get a nicer RSS feed.
40
+ </description>
41
+ <language>en-us</language>
42
+ <docs>http://localhost:8983/solr</docs>
43
+ <xsl:apply-templates select="response/result/doc"/>
44
+ </channel>
45
+ </rss>
46
+ </xsl:template>
47
+
48
+ <!-- search results xslt -->
49
+ <xsl:template match="doc">
50
+ <xsl:variable name="id" select="str[@name='id']"/>
51
+ <xsl:variable name="timestamp" select="date[@name='timestamp']"/>
52
+ <item>
53
+ <title><xsl:value-of select="str[@name='name']"/></title>
54
+ <link>
55
+ http://localhost:8983/solr/select?q=id:<xsl:value-of select="$id"/>
56
+ </link>
57
+ <description>
58
+ <xsl:value-of select="arr[@name='features']"/>
59
+ </description>
60
+ <pubDate><xsl:value-of select="$timestamp"/></pubDate>
61
+ <guid>
62
+ http://localhost:8983/solr/select?q=id:<xsl:value-of select="$id"/>
63
+ </guid>
64
+ </item>
65
+ </xsl:template>
66
+ </xsl:stylesheet>