blacklight_dynamic_sitemap 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.rspec +3 -0
  4. data/.solr_wrapper +5 -0
  5. data/.travis.yml +8 -0
  6. data/Gemfile +45 -0
  7. data/LICENSE +13 -0
  8. data/README.md +44 -0
  9. data/Rakefile +13 -0
  10. data/app/controllers/blacklight_dynamic_sitemap/sitemap_controller.rb +21 -0
  11. data/app/models/blacklight_dynamic_sitemap/sitemap.rb +74 -0
  12. data/app/views/blacklight_dynamic_sitemap/sitemap/index.xml.builder +14 -0
  13. data/app/views/blacklight_dynamic_sitemap/sitemap/show.xml.builder +15 -0
  14. data/bin/console +14 -0
  15. data/bin/setup +8 -0
  16. data/blacklight_dynamic_sitemap.gemspec +34 -0
  17. data/config/routes.rb +5 -0
  18. data/lib/blacklight_dynamic_sitemap.rb +8 -0
  19. data/lib/blacklight_dynamic_sitemap/engine.rb +12 -0
  20. data/lib/blacklight_dynamic_sitemap/version.rb +3 -0
  21. data/lib/generators/blacklight_dynamic_sitemap/install_generator.rb +13 -0
  22. data/solr/conf/_rest_managed.json +3 -0
  23. data/solr/conf/admin-extra.html +31 -0
  24. data/solr/conf/elevate.xml +36 -0
  25. data/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  26. data/solr/conf/protwords.txt +21 -0
  27. data/solr/conf/schema.xml +388 -0
  28. data/solr/conf/scripts.conf +24 -0
  29. data/solr/conf/solrconfig.xml +214 -0
  30. data/solr/conf/spellings.txt +2 -0
  31. data/solr/conf/stopwords.txt +58 -0
  32. data/solr/conf/stopwords_en.txt +58 -0
  33. data/solr/conf/synonyms.txt +31 -0
  34. data/solr/conf/xslt/example.xsl +132 -0
  35. data/solr/conf/xslt/example_atom.xsl +67 -0
  36. data/solr/conf/xslt/example_rss.xsl +66 -0
  37. data/solr/conf/xslt/luke.xsl +337 -0
  38. data/tasks/blacklight_dynamic_sitemap.rake +45 -0
  39. metadata +166 -0
@@ -0,0 +1,24 @@
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
+ user=
17
+ solr_hostname=localhost
18
+ solr_port=8983
19
+ rsyncd_port=18983
20
+ data_dir=
21
+ webapp_name=solr
22
+ master_host=
23
+ master_data_dir=
24
+ master_status_dir=
@@ -0,0 +1,214 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <config>
3
+ <!-- NOTE: various comments and unused configuration possibilities have been purged
4
+ from this file. Please refer to http://wiki.apache.org/solr/SolrConfigXml,
5
+ as well as the default solrconfig file included with Solr -->
6
+
7
+ <abortOnConfigurationError>${solr.abortOnConfigurationError:true}</abortOnConfigurationError>
8
+
9
+ <luceneMatchVersion>6.1.0</luceneMatchVersion>
10
+
11
+ <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
12
+
13
+ <updateHandler class="solr.DirectUpdateHandler2">
14
+ <updateLog>
15
+ <str name="dir">${solr.core0.data.dir:}</str>
16
+ </updateLog>
17
+ </updateHandler>
18
+
19
+ <updateRequestProcessorChain name="add_hashed_id">
20
+ <processor class="solr.processor.SignatureUpdateProcessorFactory">
21
+ <bool name="enabled">true</bool>
22
+ <str name="signatureField">hashed_id_ssi</str>
23
+ <bool name="overwriteDupes">false</bool>
24
+ <str name="fields">id</str>
25
+ <str name="signatureClass">solr.processor.Lookup3Signature</str>
26
+ </processor>
27
+
28
+ <processor class="solr.LogUpdateProcessorFactory" />
29
+ <processor class="solr.RunUpdateProcessorFactory" />
30
+ </updateRequestProcessorChain>
31
+
32
+ <!-- solr lib dirs -->
33
+ <lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lib" />
34
+ <lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs" />
35
+
36
+ <dataDir>${solr.data.dir:}</dataDir>
37
+
38
+ <requestHandler name="/update" class="solr.UpdateRequestHandler">
39
+ <lst name="defaults">
40
+ <str name="update.chain">add_hashed_id</str>
41
+ </lst>
42
+ </requestHandler>
43
+
44
+ <requestHandler name="search" class="solr.SearchHandler" default="true">
45
+ <!-- default values for query parameters can be specified, these
46
+ will be overridden by parameters in the request
47
+ -->
48
+ <lst name="defaults">
49
+ <str name="defType">edismax</str>
50
+ <str name="echoParams">explicit</str>
51
+ <str name="q.alt">*:*</str>
52
+ <str name="mm">2&lt;-1 5&lt;-2 6&lt;90%</str>
53
+ <int name="qs">1</int>
54
+ <int name="ps">2</int>
55
+ <float name="tie">0.01</float>
56
+ <!-- this qf and pf are used by default, if not otherwise specified by
57
+ client. The default blacklight_config will use these for the
58
+ "keywords" search. See the author_qf/author_pf, title_qf, etc
59
+ below, which the default blacklight_config will specify for
60
+ those searches. You may also be interested in:
61
+ http://wiki.apache.org/solr/LocalParams
62
+ -->
63
+ <str name="qf">
64
+ id
65
+ full_title_tsim
66
+ short_title_tsim
67
+ alternative_title_tsim
68
+ active_fedora_model_ssi
69
+ title_tsim
70
+ author_tsim
71
+ subject_tsim
72
+ all_text_timv
73
+ </str>
74
+ <str name="pf">
75
+ all_text_timv^10
76
+ </str>
77
+
78
+ <str name="author_qf">
79
+ author_tsim
80
+ </str>
81
+ <str name="author_pf">
82
+ </str>
83
+ <str name="title_qf">
84
+ title_tsim
85
+ full_title_tsim
86
+ short_title_tsim
87
+ alternative_title_tsim
88
+ </str>
89
+ <str name="title_pf">
90
+ </str>
91
+ <str name="subject_qf">
92
+ subject_tsim
93
+ </str>
94
+ <str name="subject_pf">
95
+ </str>
96
+
97
+ <str name="fl">
98
+ *,
99
+ score
100
+ </str>
101
+
102
+ <str name="facet">true</str>
103
+ <str name="facet.mincount">1</str>
104
+ <str name="facet.limit">10</str>
105
+ <str name="facet.field">active_fedora_model_ssi</str>
106
+ <str name="facet.field">subject_ssim</str>
107
+
108
+ <str name="spellcheck">true</str>
109
+ <str name="spellcheck.dictionary">default</str>
110
+ <str name="spellcheck.onlyMorePopular">true</str>
111
+ <str name="spellcheck.extendedResults">true</str>
112
+ <str name="spellcheck.collate">false</str>
113
+ <str name="spellcheck.count">5</str>
114
+
115
+ </lst>
116
+ <arr name="last-components">
117
+ <str>spellcheck</str>
118
+ </arr>
119
+ </requestHandler>
120
+
121
+ <requestHandler name="permissions" class="solr.SearchHandler" >
122
+ <lst name="defaults">
123
+ <str name="facet">off</str>
124
+ <str name="echoParams">all</str>
125
+ <str name="rows">1</str>
126
+ <str name="q">{!raw f=id v=$id}</str> <!-- use id=666 instead of q=id:666 -->
127
+ <str name="fl">
128
+ id,
129
+ access_ssim,
130
+ discover_access_group_ssim,discover_access_person_ssim,
131
+ read_access_group_ssim,read_access_person_ssim,
132
+ edit_access_group_ssim,edit_access_person_ssim,
133
+ depositor_ti,
134
+ embargo_release_date_dtsi
135
+ inheritable_access_ssim,
136
+ inheritable_discover_access_group_ssim,inheritable_discover_access_person_ssim,
137
+ inheritable_read_access_group_ssim,inheritable_read_access_person_ssim,
138
+ inheritable_edit_access_group_ssim,inheritable_edit_access_person_ssim,
139
+ inheritable_embargo_release_date_dtsi
140
+ </str>
141
+ </lst>
142
+ </requestHandler>
143
+
144
+ <requestHandler name="standard" class="solr.SearchHandler">
145
+ <lst name="defaults">
146
+ <str name="echoParams">explicit</str>
147
+ <str name="defType">lucene</str>
148
+ </lst>
149
+ </requestHandler>
150
+
151
+
152
+ <searchComponent name="spellcheck" class="solr.SpellCheckComponent">
153
+ <str name="queryAnalyzerFieldType">textSpell</str>
154
+ <!-- Multiple "Spell Checkers" can be declared and used by this component
155
+ (e.g. for title_spell field)
156
+ -->
157
+ <lst name="spellchecker">
158
+ <str name="name">default</str>
159
+ <str name="field">spell</str>
160
+ <str name="spellcheckIndexDir">./spell</str>
161
+ <str name="buildOnOptimize">true</str>
162
+ </lst>
163
+ <lst name="spellchecker">
164
+ <str name="name">author</str>
165
+ <str name="field">author_spell</str>
166
+ <str name="spellcheckIndexDir">./spell_author</str>
167
+ <str name="accuracy">0.7</str>
168
+ <str name="buildOnOptimize">true</str>
169
+ </lst>
170
+ <lst name="spellchecker">
171
+ <str name="name">subject</str>
172
+ <str name="field">subject_spell</str>
173
+ <str name="spellcheckIndexDir">./spell_subject</str>
174
+ <str name="accuracy">0.7</str>
175
+ <str name="buildOnOptimize">true</str>
176
+ </lst>
177
+ <lst name="spellchecker">
178
+ <str name="name">title</str>
179
+ <str name="field">title_spell</str>
180
+ <str name="spellcheckIndexDir">./spell_title</str>
181
+ <str name="accuracy">0.7</str>
182
+ <str name="buildOnOptimize">true</str>
183
+ </lst>
184
+ </searchComponent>
185
+
186
+ <searchComponent name="suggest" class="solr.SuggestComponent">
187
+ <lst name="suggester">
188
+ <str name="name">mySuggester</str>
189
+ <str name="lookupImpl">FuzzyLookupFactory</str>
190
+ <str name="suggestAnalyzerFieldType">textSuggest</str>
191
+ <str name="buildOnCommit">true</str>
192
+ <str name="field">suggest</str>
193
+ </lst>
194
+ </searchComponent>
195
+
196
+ <requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
197
+ <lst name="defaults">
198
+ <str name="suggest">true</str>
199
+ <str name="suggest.count">5</str>
200
+ <str name="suggest.dictionary">mySuggester</str>
201
+ </lst>
202
+ <arr name="components">
203
+ <str>suggest</str>
204
+ </arr>
205
+ </requestHandler>
206
+
207
+ <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />
208
+
209
+ <requestDispatcher handleSelect="true" >
210
+ <requestParsers enableRemoteStreaming="true" multipartUploadLimitInKB="2048" />
211
+ </requestDispatcher>
212
+
213
+ <requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />
214
+ </config>
@@ -0,0 +1,2 @@
1
+ pizza
2
+ history
@@ -0,0 +1,58 @@
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
+ a
24
+ an
25
+ and
26
+ are
27
+ as
28
+ at
29
+ be
30
+ but
31
+ by
32
+ for
33
+ if
34
+ in
35
+ into
36
+ is
37
+ it
38
+ no
39
+ not
40
+ of
41
+ on
42
+ or
43
+ s
44
+ such
45
+ t
46
+ that
47
+ the
48
+ their
49
+ then
50
+ there
51
+ these
52
+ they
53
+ this
54
+ to
55
+ was
56
+ will
57
+ with
58
+
@@ -0,0 +1,58 @@
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
+ a
24
+ an
25
+ and
26
+ are
27
+ as
28
+ at
29
+ be
30
+ but
31
+ by
32
+ for
33
+ if
34
+ in
35
+ into
36
+ is
37
+ it
38
+ no
39
+ not
40
+ of
41
+ on
42
+ or
43
+ s
44
+ such
45
+ t
46
+ that
47
+ the
48
+ their
49
+ then
50
+ there
51
+ these
52
+ they
53
+ this
54
+ to
55
+ was
56
+ will
57
+ with
58
+
@@ -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
+
@@ -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>