blacklight_allmaps 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +107 -0
  3. data/.gitignore +20 -0
  4. data/.standard.yml +1 -0
  5. data/Gemfile +50 -0
  6. data/app/assets/images/blacklight_allmaps/.keep +0 -0
  7. data/app/assets/stylesheets/blacklight/allmaps/base.scss +4 -1
  8. data/app/assets/stylesheets/blacklight/allmaps/modules/leaflet.opacity.css +76 -0
  9. data/app/jobs/blacklight/allmaps/store_sidecar_annotation.rb +3 -0
  10. data/app/models/concerns/.keep +0 -0
  11. data/blacklight_allmaps.gemspec +34 -0
  12. data/doc/Proposal_Eric_Larson_Ian_Spangler_4CE510.pdf +0 -0
  13. data/doc/allmaps_branding_screenshot.png +0 -0
  14. data/doc/allmaps_screenshot.png +0 -0
  15. data/doc/allmaps_screenshot_window.png +0 -0
  16. data/doc/development.md +72 -0
  17. data/doc/gbl_screenshot.png +0 -0
  18. data/doc/gbl_screenshot_window.png +0 -0
  19. data/doc/georeferenced_facet.png +0 -0
  20. data/doc/screenshot_layers.acorn +0 -0
  21. data/doc/screenshot_layers.png +0 -0
  22. data/lib/blacklight/allmaps/tasks/index.rake +1 -0
  23. data/lib/blacklight/allmaps/version.rb +1 -1
  24. data/lib/blacklight/allmaps.rb +10 -2
  25. data/lib/generators/blacklight/allmaps/blacklight_generator.rb +9 -3
  26. data/lib/generators/blacklight/allmaps/config_generator.rb +7 -1
  27. data/lib/generators/blacklight/allmaps/geoblacklight_generator.rb +10 -1
  28. data/lib/generators/blacklight/allmaps/templates/package.json +6 -0
  29. data/package.json +43 -0
  30. data/rollup.config.js +43 -0
  31. data/solr/blacklight/conf/_rest_managed.json +3 -0
  32. data/solr/blacklight/conf/admin-extra.html +31 -0
  33. data/solr/blacklight/conf/elevate.xml +36 -0
  34. data/solr/blacklight/conf/mapping-ISOLatin1Accent.txt +246 -0
  35. data/solr/blacklight/conf/protwords.txt +21 -0
  36. data/solr/blacklight/conf/schema.xml +388 -0
  37. data/solr/blacklight/conf/scripts.conf +24 -0
  38. data/solr/blacklight/conf/solrconfig.xml +265 -0
  39. data/solr/blacklight/conf/spellings.txt +2 -0
  40. data/solr/blacklight/conf/stopwords.txt +58 -0
  41. data/solr/blacklight/conf/stopwords_en.txt +58 -0
  42. data/solr/blacklight/conf/synonyms.txt +31 -0
  43. data/solr/blacklight/conf/xslt/example.xsl +132 -0
  44. data/solr/blacklight/conf/xslt/example_atom.xsl +67 -0
  45. data/solr/blacklight/conf/xslt/example_rss.xsl +66 -0
  46. data/solr/blacklight/conf/xslt/luke.xsl +337 -0
  47. data/solr/geoblacklight/conf/_rest_managed.json +3 -0
  48. data/solr/geoblacklight/conf/admin-extra.html +31 -0
  49. data/solr/geoblacklight/conf/core.properties +5 -0
  50. data/solr/geoblacklight/conf/elevate.xml +36 -0
  51. data/solr/geoblacklight/conf/mapping-ISOLatin1Accent.txt +246 -0
  52. data/solr/geoblacklight/conf/protwords.txt +21 -0
  53. data/solr/geoblacklight/conf/schema.xml +198 -0
  54. data/solr/geoblacklight/conf/scripts.conf +24 -0
  55. data/solr/geoblacklight/conf/solrconfig.xml +243 -0
  56. data/solr/geoblacklight/conf/spellings.txt +2 -0
  57. data/solr/geoblacklight/conf/stopwords.txt +58 -0
  58. data/solr/geoblacklight/conf/stopwords_en.txt +58 -0
  59. data/solr/geoblacklight/conf/synonyms.txt +31 -0
  60. data/solr/geoblacklight/conf/xslt/example.xsl +132 -0
  61. data/solr/geoblacklight/conf/xslt/example_atom.xsl +67 -0
  62. data/solr/geoblacklight/conf/xslt/example_rss.xsl +66 -0
  63. data/solr/geoblacklight/conf/xslt/luke.xsl +337 -0
  64. data/spec/controllers/annotations_controller_spec.rb +74 -0
  65. data/spec/factories/annotations.rb +12 -0
  66. data/spec/features/show_page_spec.rb +35 -0
  67. data/spec/features/sidebar_spec.rb +28 -0
  68. data/spec/fixtures/blacklight_allmaps_sidecars.yml +1203 -0
  69. data/spec/fixtures/solr_documents/README.md +15 -0
  70. data/spec/fixtures/solr_documents/blacklight/README.md +9 -0
  71. data/spec/fixtures/solr_documents/blacklight/bl_georeferenced.json +40 -0
  72. data/spec/fixtures/solr_documents/geoblacklight/gbl_btaa_northwestern_georeferenced.json +57 -0
  73. data/spec/fixtures/solr_documents/geoblacklight/gbl_harvard-g4124-m2-1855-m3_georefereneced.json +68 -0
  74. data/spec/fixtures/solr_documents/geoblacklight/gbl_not_georeferenced.json +67 -0
  75. data/spec/fixtures/solr_documents/geoblacklight/gbl_osu-0r967h708_georeferenced.json +60 -0
  76. data/spec/fixtures/solr_documents/geoblacklight/gbl_p16022coll230:1933_georeferenced.json +60 -0
  77. data/spec/fixtures/solr_documents/geoblacklight/gbl_p16022coll230:360_georeferenced.json +67 -0
  78. data/spec/fixtures/solr_documents/geoblacklight/gbl_p16022coll230:4038_georeferenced.json +53 -0
  79. data/spec/helpers/blacklight/allmaps/application_helper_spec.rb +28 -0
  80. data/spec/models/blacklight/allmaps/sidecar_allmaps_spec.rb +22 -0
  81. data/spec/spec_helper.rb +53 -0
  82. data/spec/test_app_templates/Gemfile.extra +2 -0
  83. data/spec/test_app_templates/lib/generators/test_app_generator.rb +48 -0
  84. data/vendor/assets/images/fullscreen.png +0 -0
  85. data/vendor/assets/images/fullscreen@2x.png +0 -0
  86. data/vendor/assets/images/layers-2x.png +0 -0
  87. data/vendor/assets/images/layers.png +0 -0
  88. data/vendor/assets/images/marker-icon-2x.png +0 -0
  89. data/vendor/assets/images/marker-icon.png +0 -0
  90. data/vendor/assets/images/marker-shadow.png +0 -0
  91. data/vendor/assets/stylesheets/leaflet.css +640 -0
  92. data/vendor/assets/stylesheets/leaflet.fullscreen.css +40 -0
  93. metadata +85 -2
@@ -0,0 +1,198 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <schema name="geoblacklight-schema" version="4.0">
3
+ <uniqueKey>id</uniqueKey>
4
+ <fields>
5
+ <field name="_version_" type="long" stored="true" indexed="true"/>
6
+ <field name="timestamp" type="date" stored="true" indexed="true" default="NOW"/>
7
+ <field name="id" type="string" stored="true" indexed="true" required="true"/>
8
+
9
+ <!-- core generated fields -->
10
+ <field name="text" type="text_en" stored="false" indexed="true" multiValued="true"
11
+ termVectors="true" termPositions="true" termOffsets="true" />
12
+
13
+ <!-- Spatial Field Type: Represents the exent of the resource and powers map search functionality.
14
+ Value can be any valid WKT or ENVELOPE String:
15
+ <field name="locn_geometry">POLYGON((1 8, 1 9, 2 9, 2 8, 1 8))</field>
16
+ <field name="locn_geometry">ENVELOPE(-117.312, -115.39, 84.31, 83.1)</field> -->
17
+ <field name="locn_geometry" type="location_geo3d" stored="true" indexed="true"/>
18
+
19
+ <!-- Spatial Field Type: The bounding box of the resource. Used in overlap ratio boosting.
20
+ Value must be an ENVELOPE String:
21
+ <field name="dcat_bbox">ENVELOPE(-117.312, -115.39, 84.31, 83.1)</field> -->
22
+ <field name="dcat_bbox" type="location_rpt" stored="true" indexed="true"/>
23
+
24
+ <!-- Spatial Field Type: Used to display the center point of a resource. -->
25
+ <field name="dcat_centroid" type="location" stored="true" indexed="true"/>
26
+
27
+ <!-- Spatial Field Type: Internal field used for overlap ratio boosting. -->
28
+ <field name="solr_bboxtype" type="bbox" stored="true" indexed="true"/>
29
+
30
+ <!-- dynamic field with simple types by suffix -->
31
+ <dynamicField name="*_b" type="boolean" stored="true" indexed="true"/>
32
+ <dynamicField name="*_d" type="double" stored="true" indexed="true"/>
33
+ <dynamicField name="*_dt" type="date" stored="true" indexed="true"/>
34
+ <dynamicField name="*_f" type="float" stored="true" indexed="true"/>
35
+ <dynamicField name="*_i" type="int" stored="true" indexed="true"/>
36
+ <dynamicField name="*_im" type="int" stored="true" indexed="true" multiValued="true" sortMissingLast="true" />
37
+ <dynamicField name="*_l" type="long" stored="true" indexed="true"/>
38
+ <dynamicField name="*_s" type="string" stored="true" indexed="true"/>
39
+ <dynamicField name="*_ss" type="string" stored="true" indexed="false"/>
40
+ <dynamicField name="*_si" type="string" stored="false" indexed="true"/>
41
+ <dynamicField name="*_sim" type="string" stored="false" indexed="true" multiValued="true" />
42
+ <dynamicField name="*_sm" type="string" stored="true" indexed="true" multiValued="true" />
43
+ <dynamicField name="*_url" type="string" stored="true" indexed="false"/>
44
+ <dynamicField name="*_blob" type="binary" stored="true" indexed="false"/>
45
+
46
+ <!-- dynamic Text fields by suffix without storage -->
47
+ <dynamicField name="*_t" type="text_en" stored="false" indexed="true"
48
+ termVectors="true" termPositions="true" termOffsets="true"/>
49
+ <dynamicField name="*_tm" type="text_en" stored="false" indexed="true" multiValued="true"
50
+ termVectors="true" termPositions="true" termOffsets="true"/>
51
+ <dynamicField name="*_ti" type="text_en" stored="false" indexed="true"
52
+ termVectors="true" termPositions="true" termOffsets="true"/>
53
+ <dynamicField name="*_tmi" type="text_en" stored="false" indexed="true" multiValued="true"
54
+ termVectors="true" termPositions="true" termOffsets="true"/>
55
+ <dynamicField name="*_sort" type="text_sort" stored="false" indexed="true" multiValued="false"/>
56
+
57
+ <dynamicField name="*spell" type="textSpell" indexed="true" stored="false" multiValued="true" />
58
+
59
+ <dynamicField name="*suggest" type="textSuggest" indexed="true" stored="false" multiValued="true" />
60
+
61
+ <!-- date range (_drsim) -->
62
+ <dynamicField name="*_drsim" type="dateRange" stored="true" indexed="true" multiValued="true"/>
63
+ </fields>
64
+
65
+ <types>
66
+ <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
67
+ <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
68
+
69
+ <fieldType name="int" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>
70
+ <fieldType name="float" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/>
71
+ <fieldType name="long" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/>
72
+ <fieldType name="double" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/>
73
+
74
+ <!-- The format for this date field is of the form 1995-12-31T23:59:59Z.
75
+ The trailing "Z" designates UTC time and is mandatory.
76
+ A Trie based date field for faster date range queries and date faceting. -->
77
+ <fieldType name="date" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>
78
+
79
+ <!-- A DateRange based date field for truly faster date range queries. -->
80
+ <fieldType name="dateRange" class="solr.DateRangeField"/>
81
+
82
+ <!--Binary data type. The data should be sent/retrieved in as Base64 encoded Strings -->
83
+ <fieldtype name="binary" class="solr.BinaryField"/>
84
+
85
+ <!-- A text field with defaults appropriate for English: it
86
+ tokenizes with StandardTokenizer, removes English stop words
87
+ (stopwords_en.txt), down cases, protects words from protwords.txt, and
88
+ finally applies Porter's stemming. The query time analyzer
89
+ also applies synonyms from synonyms.txt. -->
90
+ <fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
91
+ <analyzer type="index">
92
+ <tokenizer class="solr.StandardTokenizerFactory"/>
93
+ <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt"/>
94
+ <filter class="solr.LowerCaseFilterFactory"/>
95
+ <filter class="solr.EnglishPossessiveFilterFactory"/>
96
+ <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
97
+ <filter class="solr.PorterStemFilterFactory"/>
98
+ </analyzer>
99
+ <analyzer type="query">
100
+ <tokenizer class="solr.StandardTokenizerFactory"/>
101
+ <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
102
+ <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt"/>
103
+ <filter class="solr.LowerCaseFilterFactory"/>
104
+ <filter class="solr.EnglishPossessiveFilterFactory"/>
105
+ <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
106
+ <filter class="solr.PorterStemFilterFactory"/>
107
+ </analyzer>
108
+ </fieldType>
109
+
110
+ <!-- for alpha sorting as a single token -->
111
+ <fieldType name="text_sort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
112
+ <analyzer>
113
+ <tokenizer class="solr.KeywordTokenizerFactory"/>
114
+ <filter class="solr.LowerCaseFilterFactory" />
115
+ <filter class="solr.TrimFilterFactory" />
116
+ <filter class="solr.PatternReplaceFilterFactory" pattern="([^a-z0-9 ])" replacement="" replace="all"/>
117
+ </analyzer>
118
+ </fieldType>
119
+
120
+ <!-- for spell checking -->
121
+ <fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100" >
122
+ <analyzer>
123
+ <tokenizer class="solr.StandardTokenizerFactory"/>
124
+ <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt"/>
125
+ <filter class="solr.LowerCaseFilterFactory"/>
126
+ <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
127
+ </analyzer>
128
+ </fieldType>
129
+
130
+ <!-- for suggestions -->
131
+ <fieldType class="solr.TextField" name="textSuggest" positionIncrementGap="100">
132
+ <analyzer>
133
+ <tokenizer class="solr.KeywordTokenizerFactory"/>
134
+ <filter class="solr.LowerCaseFilterFactory"/>
135
+ <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
136
+ </analyzer>
137
+ </fieldType>
138
+
139
+ <!-- Spatial field types -->
140
+ <fieldType name="location" class="solr.LatLonPointSpatialField" docValues="true"/>
141
+ <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
142
+ geo="true" distErrPct="0.025" maxDistErr="0.001" distanceUnits="kilometers"/>
143
+ <fieldType name="location_geo3d"
144
+ class="solr.SpatialRecursivePrefixTreeFieldType"
145
+ spatialContextFactory="Geo3D"
146
+ prefixTree="s2"
147
+ geo="true"
148
+ maxDistErr="0.001"
149
+ planetModel="WGS84"/>
150
+
151
+ <!-- Adding field type for bboxField that enables, among other things, overlap ratio calculations -->
152
+ <fieldType name="bbox" class="solr.BBoxField"
153
+ geo="true" distanceUnits="kilometers" numberType="pdouble" />
154
+ <fieldType name="pdouble" class="solr.DoublePointField" docValues="true"/>
155
+ </types>
156
+
157
+ <!-- for scoring formula -->
158
+ <copyField source="dct_spatial_sm" dest="dct_spatial_tmi" maxChars="10000"/>
159
+ <copyField source="dct_temporal_sm" dest="dct_temporal_tmi" maxChars="10000"/>
160
+ <copyField source="dct_creator_sm" dest="dct_creator_tmi" maxChars="1000"/>
161
+ <copyField source="dct_description_sm" dest="dct_description_tmi" maxChars="10000"/>
162
+ <copyField source="dct_format_s" dest="dct_format_ti" maxChars="100"/>
163
+ <copyField source="dct_identifier_sm" dest="dct_identifier_tmi" maxChars="100"/>
164
+ <copyField source="dct_publisher_sm" dest="dct_publisher_tmi" maxChars="1000"/>
165
+ <copyField source="dct_accessRights_s" dest="dct_accessRights_ti" maxChars="100"/>
166
+ <copyField source="schema_provider_s" dest="dct_provider_ti" maxChars="1000"/>
167
+ <copyField source="dct_subject_sm" dest="dct_subject_tmi" maxChars="10000"/>
168
+ <copyField source="dct_title_s" dest="dct_title_ti" maxChars="1000"/>
169
+ <copyField source="dct_isPartOf_sm" dest="dct_isPartOf_tmi" maxChars="1000"/>
170
+ <copyField source="id" dest="layer_slug_ti" maxChars="100"/>
171
+
172
+ <!-- core text search -->
173
+ <copyField source="*_s" dest="text" />
174
+ <copyField source="*_sm" dest="text" />
175
+
176
+ <!-- for sorting text fields -->
177
+ <copyField source="schema_provider_s" dest="schema_provider_sort"/>
178
+ <copyField source="dct_title_s" dest="dct_title_sort"/>
179
+
180
+ <!-- for spell checking -->
181
+ <copyField source="dct_title_s" dest="spell"/>
182
+ <copyField source="dct_creator_sm" dest="spell"/>
183
+ <copyField source="dct_publisher_sm" dest="spell"/>
184
+ <copyField source="schema_provider_s" dest="spell"/>
185
+ <copyField source="dct_subject_sm" dest="spell"/>
186
+ <copyField source="dct_spatial_sm" dest="spell"/>
187
+
188
+ <!-- for suggestions -->
189
+ <copyField source="dct_title_s" dest="suggest"/>
190
+ <copyField source="dct_creator_sm" dest="suggest"/>
191
+ <copyField source="dct_publisher_sm" dest="suggest"/>
192
+ <copyField source="schema_provider_s" dest="suggest"/>
193
+ <copyField source="dct_subject_sm" dest="suggest"/>
194
+ <copyField source="dct_spatial_sm" dest="suggest"/>
195
+
196
+ <!-- for bbox value -->
197
+ <copyField source="dcat_bbox" dest="solr_bboxtype"/>
198
+ </schema>
@@ -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,243 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <!--
3
+ Licensed to the Apache Software Foundation (ASF) under one or more
4
+ contributor license agreements. See the NOTICE file distributed with
5
+ this work for additional information regarding copyright ownership.
6
+ The ASF licenses this file to You under the Apache License, Version 2.0
7
+ (the "License"); you may not use this file except in compliance with
8
+ the License. You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software
13
+ distributed under the License is distributed on an "AS IS" BASIS,
14
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ See the License for the specific language governing permissions and
16
+ limitations under the License.
17
+ -->
18
+ <!--
19
+ For more details about configurations options that may appear in
20
+ this file, see http://wiki.apache.org/solr/SolrConfigXml.
21
+ -->
22
+ <config>
23
+
24
+ <!-- Controls what version of Lucene various components of Solr
25
+ adhere to. Generally, you want to use the latest version to
26
+ get all bug fixes and improvements. It is highly recommended
27
+ that you fully re-index after changing this setting as it can
28
+ affect both how text is indexed and queried.
29
+ -->
30
+ <luceneMatchVersion>7.6</luceneMatchVersion>
31
+
32
+ <lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lib" />
33
+ <lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs" />
34
+
35
+ <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/>
36
+
37
+ <codecFactory class="solr.SchemaCodecFactory"/>
38
+ <schemaFactory class="ClassicIndexSchemaFactory"/>
39
+
40
+ <dataDir>${solr.blacklight-core.data.dir:}</dataDir>
41
+
42
+ <indexConfig>
43
+ <lockType>${solr.lock.type:native}</lockType>
44
+ </indexConfig>
45
+
46
+ <!-- The default high-performance update handler -->
47
+ <updateHandler class="solr.DirectUpdateHandler2">
48
+ <updateLog>
49
+ <str name="dir">${solr.ulog.dir:}</str>
50
+ </updateLog>
51
+ <autoCommit>
52
+ <maxTime>15000</maxTime>
53
+ <openSearcher>false</openSearcher>
54
+ </autoCommit>
55
+ </updateHandler>
56
+
57
+ <!-- realtime get handler, guaranteed to return the latest stored fields
58
+ of any document, without the need to commit or open a new searcher. The current
59
+ implementation relies on the updateLog feature being enabled. -->
60
+ <requestHandler name="/get" class="solr.RealTimeGetHandler">
61
+ <lst name="defaults">
62
+ <str name="omitHeader">true</str>
63
+ </lst>
64
+ </requestHandler>
65
+
66
+ <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />
67
+
68
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69
+ Query section - these settings control query time things like caches
70
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
71
+ <query>
72
+ <maxBooleanClauses>1024</maxBooleanClauses>
73
+ <filterCache class="solr.CaffeineCache" size="512" initialSize="512" autowarmCount="0" async="true"/>
74
+ <queryResultCache class="solr.CaffeineCache" size="512" initialSize="512" autowarmCount="0" async="true"/>
75
+ <documentCache class="solr.CaffeineCache" size="512" initialSize="512" autowarmCount="0" async="true"/>
76
+ <enableLazyFieldLoading>true</enableLazyFieldLoading>
77
+ <queryResultWindowSize>20</queryResultWindowSize>
78
+ <queryResultMaxDocsCached>200</queryResultMaxDocsCached>
79
+ <listener event="newSearcher" class="solr.QuerySenderListener">
80
+ <arr name="queries">
81
+ <lst><str name="q">stanford</str></lst>
82
+ <lst><str name="q">polygon</str></lst>
83
+ </arr>
84
+ </listener>
85
+ <listener event="firstSearcher" class="solr.QuerySenderListener">
86
+ <arr name="queries">
87
+ <lst>
88
+ <str name="q">static firstSearcher warming in solrconfig.xml</str>
89
+ </lst>
90
+ </arr>
91
+ </listener>
92
+ <useColdSearcher>false</useColdSearcher>
93
+ <maxWarmingSearchers>2</maxWarmingSearchers>
94
+ </query>
95
+
96
+ <requestDispatcher handleSelect="false">
97
+ <requestParsers enableRemoteStreaming="true" multipartUploadLimitInKB="2048000" formdataUploadLimitInKB="2048"/>
98
+ <httpCaching never304="true"/>
99
+ </requestDispatcher>
100
+
101
+ <requestHandler name="/search" class="solr.SearchHandler"/>
102
+
103
+ <requestHandler name="/select" class="solr.SearchHandler">
104
+ <lst name="defaults">
105
+ <int name="start">0</int>
106
+ <int name="rows">10</int>
107
+ <str name="wt">json</str>
108
+ <int name="indent">2</int>
109
+ <str name="defType">edismax</str>
110
+ <str name="echoParams">all</str>
111
+ <str name="mm">6&lt;-1 6&lt;90%</str>
112
+ <int name="qs">1</int>
113
+ <int name="ps">0</int>
114
+ <float name="tie">0.01</float>
115
+ <str name="fl">*,score</str>
116
+ <str name="sort">score desc, dct_title_sort asc</str>
117
+ <str name="q.alt">*:*</str>
118
+ <str name="qf">
119
+ text^1
120
+ dct_description_ti^2
121
+ dct_creator_tmi^3
122
+ dct_publisher_ti^3
123
+ dct_isPartOf_tmi^4
124
+ dct_subject_tmi^5
125
+ dct_spatial_tmi^5
126
+ dct_temporal_tmi^5
127
+ dct_title_ti^6
128
+ dct_accessRights_ti^7
129
+ dct_provider_ti^8
130
+ layer_geom_type_ti^9
131
+ layer_slug_ti^10
132
+ dct_identifier_ti^10
133
+ </str>
134
+ <str name="pf"><!-- phrase boost within result set -->
135
+ text^1
136
+ dct_description_ti^2
137
+ dct_creator_tmi^3
138
+ dct_publisher_ti^3
139
+ dct_isPartOf_tmi^4
140
+ dct_subject_tmi^5
141
+ dct_spatial_tmi^5
142
+ dct_temporal_tmi^5
143
+ dct_title_ti^6
144
+ dct_accessRights_ti^7
145
+ dct_provider_ti^8
146
+ layer_geom_type_ti^9
147
+ layer_slug_ti^10
148
+ dct_identifier_ti^10
149
+ </str>
150
+ <bool name="facet">true</bool>
151
+ <int name="facet.mincount">1</int>
152
+ <int name="facet.limit">10</int>
153
+ <str name="facet.field">dct_isPartOf_sm</str>
154
+ <str name="facet.field">schema_provider_s</str>
155
+ <str name="facet.field">dct_spatial_sm</str>
156
+ <str name="facet.field">dct_creator_sm</str>
157
+ <str name="facet.field">dct_format_s</str>
158
+ <str name="facet.field">dct_language_sm</str>
159
+ <str name="facet.field">dct_publisher_sm</str>
160
+ <str name="facet.field">dct_accessRights_s</str>
161
+ <str name="facet.field">dct_subject_sm</str>
162
+ <str name="facet.field">locn_geometry_s</str>
163
+ <str name="facet.field">gbl_indexYear_im</str>
164
+
165
+ <str name="spellcheck">true</str>
166
+ </lst>
167
+ <arr name="last-components">
168
+ <str>spellcheck</str>
169
+ </arr>
170
+ </requestHandler>
171
+
172
+ <!-- ping/healthcheck -->
173
+ <requestHandler name="/admin/ping" class="solr.PingRequestHandler">
174
+ <lst name="invariants">
175
+ <str name="q">solrpingquery</str>
176
+ </lst>
177
+ <lst name="defaults">
178
+ <str name="echoParams">all</str>
179
+ </lst>
180
+ <!-- An optional feature of the PingRequestHandler is to configure the
181
+ handler with a "healthcheckFile" which can be used to enable/disable
182
+ the PingRequestHandler.
183
+ relative paths are resolved against the data dir
184
+ -->
185
+ <str name="healthcheckFile">server-enabled.txt</str>
186
+ </requestHandler>
187
+
188
+ <requestHandler name="/analysis/field"
189
+ startup="lazy"
190
+ class="solr.FieldAnalysisRequestHandler" />
191
+
192
+ <searchComponent name="spellcheck" class="solr.SpellCheckComponent">
193
+ <!-- a spellchecker built from a field of the main index -->
194
+ <lst name="spellchecker">
195
+ <str name="name">default</str>
196
+ <str name="field">spell</str>
197
+ <str name="classname">solr.DirectSolrSpellChecker</str>
198
+ <!-- the spellcheck distance measure used, the default is the internal levenshtein -->
199
+ <str name="distanceMeasure">internal</str>
200
+ <!-- minimum accuracy needed to be considered a valid spellcheck suggestion -->
201
+ <float name="accuracy">0.5</float>
202
+ <!-- the maximum #edits we consider when enumerating terms: can be 1 or 2 -->
203
+ <int name="maxEdits">2</int>
204
+ <!-- the minimum shared prefix when enumerating terms -->
205
+ <int name="minPrefix">1</int>
206
+ <!-- maximum number of inspections per result. -->
207
+ <int name="maxInspections">5</int>
208
+ <!-- minimum length of a query term to be considered for correction -->
209
+ <int name="minQueryLength">4</int>
210
+ <!-- maximum threshold of documents a query term can appear to be considered for correction -->
211
+ <float name="maxQueryFrequency">0.01</float>
212
+ <!-- uncomment this to require suggestions to occur in 1% of the documents
213
+ <float name="thresholdTokenFrequency">.01</float>
214
+ -->
215
+ </lst>
216
+ </searchComponent>
217
+
218
+ <searchComponent name="suggest" class="solr.SuggestComponent">
219
+ <lst name="suggester">
220
+ <str name="name">mySuggester</str>
221
+ <str name="lookupImpl">FuzzyLookupFactory</str>
222
+ <str name="suggestAnalyzerFieldType">textSuggest</str>
223
+ <str name="buildOnCommit">true</str>
224
+ <str name="field">suggest</str>
225
+ </lst>
226
+ </searchComponent>
227
+
228
+ <requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
229
+ <lst name="defaults">
230
+ <str name="suggest">true</str>
231
+ <str name="suggest.count">5</str>
232
+ <str name="suggest.dictionary">mySuggester</str>
233
+ </lst>
234
+ <arr name="components">
235
+ <str>suggest</str>
236
+ </arr>
237
+ </requestHandler>
238
+
239
+ <!-- Legacy config for the admin interface -->
240
+ <admin>
241
+ <defaultQuery>*:*</defaultQuery>
242
+ </admin>
243
+ </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
+