jbasdf-muck-solr 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. data/CHANGE_LOG +239 -0
  2. data/LICENSE +19 -0
  3. data/README.markdown +118 -0
  4. data/README.rdoc +107 -0
  5. data/Rakefile +99 -0
  6. data/TESTING_THE_PLUGIN +25 -0
  7. data/VERSION.yml +4 -0
  8. data/config/solr.yml +15 -0
  9. data/config/solr_environment.rb +32 -0
  10. data/lib/acts_as_solr/acts_methods.rb +352 -0
  11. data/lib/acts_as_solr/class_methods.rb +236 -0
  12. data/lib/acts_as_solr/common_methods.rb +89 -0
  13. data/lib/acts_as_solr/deprecation.rb +61 -0
  14. data/lib/acts_as_solr/instance_methods.rb +165 -0
  15. data/lib/acts_as_solr/lazy_document.rb +18 -0
  16. data/lib/acts_as_solr/parser_methods.rb +203 -0
  17. data/lib/acts_as_solr/search_results.rb +68 -0
  18. data/lib/acts_as_solr/solr_fixtures.rb +13 -0
  19. data/lib/acts_as_solr/tasks/database.rake +16 -0
  20. data/lib/acts_as_solr/tasks/solr.rake +135 -0
  21. data/lib/acts_as_solr/tasks/test.rake +5 -0
  22. data/lib/acts_as_solr/tasks.rb +10 -0
  23. data/lib/acts_as_solr.rb +65 -0
  24. data/lib/solr/connection.rb +177 -0
  25. data/lib/solr/document.rb +75 -0
  26. data/lib/solr/exception.rb +13 -0
  27. data/lib/solr/field.rb +36 -0
  28. data/lib/solr/importer/array_mapper.rb +26 -0
  29. data/lib/solr/importer/delimited_file_source.rb +38 -0
  30. data/lib/solr/importer/hpricot_mapper.rb +27 -0
  31. data/lib/solr/importer/mapper.rb +51 -0
  32. data/lib/solr/importer/solr_source.rb +41 -0
  33. data/lib/solr/importer/xpath_mapper.rb +35 -0
  34. data/lib/solr/importer.rb +19 -0
  35. data/lib/solr/indexer.rb +52 -0
  36. data/lib/solr/request/add_document.rb +58 -0
  37. data/lib/solr/request/base.rb +36 -0
  38. data/lib/solr/request/commit.rb +29 -0
  39. data/lib/solr/request/delete.rb +48 -0
  40. data/lib/solr/request/dismax.rb +46 -0
  41. data/lib/solr/request/index_info.rb +22 -0
  42. data/lib/solr/request/modify_document.rb +46 -0
  43. data/lib/solr/request/optimize.rb +19 -0
  44. data/lib/solr/request/ping.rb +36 -0
  45. data/lib/solr/request/select.rb +54 -0
  46. data/lib/solr/request/spellcheck.rb +30 -0
  47. data/lib/solr/request/standard.rb +402 -0
  48. data/lib/solr/request/update.rb +23 -0
  49. data/lib/solr/request.rb +26 -0
  50. data/lib/solr/response/add_document.rb +17 -0
  51. data/lib/solr/response/base.rb +42 -0
  52. data/lib/solr/response/commit.rb +15 -0
  53. data/lib/solr/response/delete.rb +13 -0
  54. data/lib/solr/response/dismax.rb +8 -0
  55. data/lib/solr/response/index_info.rb +26 -0
  56. data/lib/solr/response/modify_document.rb +17 -0
  57. data/lib/solr/response/optimize.rb +14 -0
  58. data/lib/solr/response/ping.rb +26 -0
  59. data/lib/solr/response/ruby.rb +42 -0
  60. data/lib/solr/response/select.rb +17 -0
  61. data/lib/solr/response/spellcheck.rb +20 -0
  62. data/lib/solr/response/standard.rb +60 -0
  63. data/lib/solr/response/xml.rb +39 -0
  64. data/lib/solr/response.rb +27 -0
  65. data/lib/solr/solrtasks.rb +27 -0
  66. data/lib/solr/util.rb +32 -0
  67. data/lib/solr/xml.rb +44 -0
  68. data/lib/solr.rb +26 -0
  69. data/solr/CHANGES.txt +1207 -0
  70. data/solr/LICENSE.txt +712 -0
  71. data/solr/NOTICE.txt +90 -0
  72. data/solr/etc/jetty.xml +205 -0
  73. data/solr/etc/webdefault.xml +379 -0
  74. data/solr/lib/easymock.jar +0 -0
  75. data/solr/lib/jetty-6.1.3.jar +0 -0
  76. data/solr/lib/jetty-util-6.1.3.jar +0 -0
  77. data/solr/lib/jsp-2.1/ant-1.6.5.jar +0 -0
  78. data/solr/lib/jsp-2.1/core-3.1.1.jar +0 -0
  79. data/solr/lib/jsp-2.1/jsp-2.1.jar +0 -0
  80. data/solr/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
  81. data/solr/lib/servlet-api-2.4.jar +0 -0
  82. data/solr/lib/servlet-api-2.5-6.1.3.jar +0 -0
  83. data/solr/lib/xpp3-1.1.3.4.O.jar +0 -0
  84. data/solr/solr/README.txt +52 -0
  85. data/solr/solr/bin/abc +176 -0
  86. data/solr/solr/bin/abo +176 -0
  87. data/solr/solr/bin/backup +108 -0
  88. data/solr/solr/bin/backupcleaner +142 -0
  89. data/solr/solr/bin/commit +128 -0
  90. data/solr/solr/bin/optimize +129 -0
  91. data/solr/solr/bin/readercycle +129 -0
  92. data/solr/solr/bin/rsyncd-disable +77 -0
  93. data/solr/solr/bin/rsyncd-enable +76 -0
  94. data/solr/solr/bin/rsyncd-start +145 -0
  95. data/solr/solr/bin/rsyncd-stop +105 -0
  96. data/solr/solr/bin/scripts-util +83 -0
  97. data/solr/solr/bin/snapcleaner +148 -0
  98. data/solr/solr/bin/snapinstaller +168 -0
  99. data/solr/solr/bin/snappuller +248 -0
  100. data/solr/solr/bin/snappuller-disable +77 -0
  101. data/solr/solr/bin/snappuller-enable +77 -0
  102. data/solr/solr/bin/snapshooter +109 -0
  103. data/solr/solr/conf/admin-extra.html +31 -0
  104. data/solr/solr/conf/protwords.txt +21 -0
  105. data/solr/solr/conf/schema.xml +126 -0
  106. data/solr/solr/conf/scripts.conf +24 -0
  107. data/solr/solr/conf/solrconfig.xml +458 -0
  108. data/solr/solr/conf/stopwords.txt +57 -0
  109. data/solr/solr/conf/synonyms.txt +31 -0
  110. data/solr/solr/conf/xslt/example.xsl +132 -0
  111. data/solr/solr/conf/xslt/example_atom.xsl +63 -0
  112. data/solr/solr/conf/xslt/example_rss.xsl +62 -0
  113. data/solr/start.jar +0 -0
  114. data/solr/webapps/solr.war +0 -0
  115. data/test/config/solr.yml +2 -0
  116. data/test/db/connections/mysql/connection.rb +10 -0
  117. data/test/db/connections/sqlite/connection.rb +8 -0
  118. data/test/db/migrate/001_create_books.rb +15 -0
  119. data/test/db/migrate/002_create_movies.rb +12 -0
  120. data/test/db/migrate/003_create_categories.rb +11 -0
  121. data/test/db/migrate/004_create_electronics.rb +16 -0
  122. data/test/db/migrate/005_create_authors.rb +12 -0
  123. data/test/db/migrate/006_create_postings.rb +9 -0
  124. data/test/db/migrate/007_create_posts.rb +13 -0
  125. data/test/db/migrate/008_create_gadgets.rb +11 -0
  126. data/test/fixtures/authors.yml +9 -0
  127. data/test/fixtures/books.yml +13 -0
  128. data/test/fixtures/categories.yml +7 -0
  129. data/test/fixtures/db_definitions/mysql.sql +41 -0
  130. data/test/fixtures/electronics.yml +49 -0
  131. data/test/fixtures/movies.yml +9 -0
  132. data/test/fixtures/postings.yml +10 -0
  133. data/test/functional/acts_as_solr_test.rb +413 -0
  134. data/test/functional/association_indexing_test.rb +37 -0
  135. data/test/functional/faceted_search_test.rb +163 -0
  136. data/test/functional/multi_solr_search_test.rb +57 -0
  137. data/test/models/author.rb +10 -0
  138. data/test/models/book.rb +10 -0
  139. data/test/models/category.rb +8 -0
  140. data/test/models/electronic.rb +25 -0
  141. data/test/models/gadget.rb +9 -0
  142. data/test/models/movie.rb +17 -0
  143. data/test/models/novel.rb +2 -0
  144. data/test/models/post.rb +3 -0
  145. data/test/models/posting.rb +11 -0
  146. data/test/test_helper.rb +54 -0
  147. data/test/unit/acts_methods_shoulda.rb +68 -0
  148. data/test/unit/class_methods_shoulda.rb +85 -0
  149. data/test/unit/common_methods_shoulda.rb +111 -0
  150. data/test/unit/instance_methods_shoulda.rb +318 -0
  151. data/test/unit/lazy_document_shoulda.rb +34 -0
  152. data/test/unit/parser_instance.rb +19 -0
  153. data/test/unit/parser_methods_shoulda.rb +268 -0
  154. data/test/unit/solr_instance.rb +49 -0
  155. data/test/unit/test_helper.rb +24 -0
  156. metadata +241 -0
data/solr/CHANGES.txt ADDED
@@ -0,0 +1,1207 @@
1
+ Apache Solr Version 1.3.0
2
+ Release Notes
3
+
4
+ Introduction
5
+ ------------
6
+ Apache Solr is an open source enterprise search server based on the Lucene Java
7
+ search library, with XML/HTTP and JSON APIs, hit highlighting, faceted search,
8
+ caching, replication, and a web administration interface. It runs in a Java
9
+ servlet container such as Tomcat.
10
+
11
+ See http://lucene.apache.org/solr for more information.
12
+
13
+
14
+ Getting Started
15
+ ---------------
16
+ You need a Java 1.5 VM or later installed.
17
+ In this release, there is an example Solr server including a bundled
18
+ servlet container in the directory named "example".
19
+ See the tutorial at http://lucene.apache.org/solr/tutorial.html
20
+
21
+
22
+ $Id: CHANGES.txt 694377 2008-09-11 17:40:11Z klaas $
23
+
24
+ ================== Release 1.3.0 ==================
25
+
26
+
27
+ Upgrading from Solr 1.2
28
+ -----------------------
29
+ IMPORTANT UPGRADE NOTE: In a master/slave configuration, all searchers/slaves
30
+ should be upgraded before the master! If the master were to be updated
31
+ first, the older searchers would not be able to read the new index format.
32
+
33
+ The Porter snowball based stemmers in Lucene were updated (LUCENE-1142),
34
+ and are not guaranteed to be backward compatible at the index level
35
+ (the stem of certain words may have changed). Re-indexing is recommended.
36
+
37
+ Older Apache Solr installations can be upgraded by replacing
38
+ the relevant war file with the new version. No changes to configuration
39
+ files should be needed.
40
+
41
+ This version of Solr contains a new version of Lucene implementing
42
+ an updated index format. This version of Solr/Lucene can still read
43
+ and update indexes in the older formats, and will convert them to the new
44
+ format on the first index change. Be sure to backup your index before
45
+ upgrading in case you need to downgrade.
46
+
47
+ Solr now recognizes HTTP Request headers related to HTTP Caching (see
48
+ RFC 2616 sec13) and will by default respond with "304 Not Modified"
49
+ when appropriate. This should only affect users who access Solr via
50
+ an HTTP Cache, or via a Web-browser that has an internal cache, but if
51
+ you wish to suppress this behavior an '<httpCaching never304="true"/>'
52
+ option can be added to your solrconfig.xml. See the wiki (or the
53
+ example solrconfig.xml) for more details...
54
+ http://wiki.apache.org/solr/SolrConfigXml#HTTPCaching
55
+
56
+ In Solr 1.2, DateField did not enforce the canonical representation of
57
+ the ISO 8601 format when parsing incoming data, and did not generation
58
+ the canonical format when generating dates from "Date Math" strings
59
+ (particularly as it pertains to milliseconds ending in trailing zeros)
60
+ -- As a result equivalent dates could not always be compared properly.
61
+ This problem is corrected in Solr 1.3, but DateField users that might
62
+ have been affected by indexing inconsistent formats of equivilent
63
+ dates (ie: 1995-12-31T23:59:59Z vs 1995-12-31T23:59:59.000Z) may want
64
+ to consider reindexing to correct these inconsistencies. Users who
65
+ depend on some of the the "broken" behavior of DateField in Solr 1.2
66
+ (specificly: accepting any input that ends in a 'Z') should consider
67
+ using the LegacyDateField class as a possible alternative. Users that
68
+ desire 100% backwards compatibility should consider using the Solr 1.2
69
+ version of DateField.
70
+
71
+ Due to some changes in the lifecycle of TokenFilterFactories, users of
72
+ Solr 1.2 who have written Java code which constructs new instances of
73
+ StopFilterFactory, SynonymFilterFactory, or EnglishProterFilterFactory
74
+ will need to modify their code by adding a line like the following
75
+ prior to using the factory object...
76
+ factory.inform(SolrCore.getSolrCore().getSolrConfig().getResourceLoader());
77
+ These lifecycle changes do not affect people who use Solr "out of the
78
+ box" or who have developed their own TokenFilterFactory plugins. More
79
+ info can be found in SOLR-594.
80
+
81
+ The python client that used to ship with Solr is no longer included in
82
+ the distribution (see client/python/README.txt).
83
+
84
+ Detailed Change List
85
+ --------------------
86
+
87
+ New Features
88
+ 1. SOLR-69: Adding MoreLikeThisHandler to search for similar documents using
89
+ lucene contrib/queries MoreLikeThis. MoreLikeThis is also available from
90
+ the StandardRequestHandler using ?mlt=true. (bdelacretaz, ryan)
91
+
92
+ 2. SOLR-253: Adding KeepWordFilter and KeepWordFilterFactory. A TokenFilter
93
+ that keeps tokens with text in the registered keeplist. This behaves like
94
+ the inverse of StopFilter. (ryan)
95
+
96
+ 3. SOLR-257: WordDelimiterFilter has a new parameter splitOnCaseChange,
97
+ which can be set to 0 to disable splitting "PowerShot" => "Power" "Shot".
98
+ (klaas)
99
+
100
+ 4. SOLR-193: Adding SolrDocument and SolrInputDocument to represent documents
101
+ outside of the lucene Document infrastructure. This class will be used
102
+ by clients and for processing documents. (ryan)
103
+
104
+ 5. SOLR-244: Added ModifiableSolrParams - a SolrParams implementation that
105
+ help you change values after initialization. (ryan)
106
+
107
+ 6. SOLR-20: Added a java client interface with two implementations. One
108
+ implementation uses commons httpclient to connect to solr via HTTP. The
109
+ other connects to solr directly. Check client/java/solrj. This addition
110
+ also includes tests that start jetty and test a connection using the full
111
+ HTTP request cycle. (Darren Erik Vengroff, Will Johnson, ryan)
112
+
113
+ 7. SOLR-133: Added StaxUpdateRequestHandler that uses StAX for XML parsing.
114
+ This implementation has much better error checking and lets you configure
115
+ a custom UpdateRequestProcessor that can selectively process update
116
+ requests depending on the request attributes. This class will likely
117
+ replace XmlUpdateRequestHandler. (Thorsten Scherler, ryan)
118
+
119
+ 8. SOLR-264: Added RandomSortField, a utility field with a random sort order.
120
+ The seed is based on a hash of the field name, so a dynamic field
121
+ of this type is useful for generating different random sequences.
122
+ This field type should only be used for sorting or as a value source
123
+ in a FunctionQuery (ryan, hossman, yonik)
124
+
125
+ 9. SOLR-266: Adding show=schema to LukeRequestHandler to show the parsed
126
+ schema fields and field types. (ryan)
127
+
128
+ 10. SOLR-133: The UpdateRequestHandler now accepts multiple delete options
129
+ within a single request. For example, sending:
130
+ <delete><id>1</id><id>2</id></delete> will delete both 1 and 2. (ryan)
131
+
132
+ 11. SOLR-269: Added UpdateRequestProcessor plugin framework. This provides
133
+ a reasonable place to process documents after they are parsed and
134
+ before they are committed to the index. This is a good place for custom
135
+ document manipulation or document based authorization. (yonik, ryan)
136
+
137
+ 12. SOLR-260: Converting to a standard PluginLoader framework. This reworks
138
+ RequestHandlers, FieldTypes, and QueryResponseWriters to share the same
139
+ base code for loading and initializing plugins. This adds a new
140
+ configuration option to define the default RequestHandler and
141
+ QueryResponseWriter in XML using default="true". (ryan)
142
+
143
+ 13. SOLR-225: Enable pluggable highlighting classes. Allow configurable
144
+ highlighting formatters and Fragmenters. (ryan)
145
+
146
+ 14. SOLR-273/376/452/516: Added hl.maxAnalyzedChars highlighting parameter, defaulting
147
+ to 50k, hl.alternateField, which allows the specification of a backup
148
+ field to use as summary if no keywords are matched, and hl.mergeContiguous,
149
+ which combines fragments if they are adjacent in the source document.
150
+ (klaas, Grant Ingersoll, Koji Sekiguchi via klaas)
151
+
152
+ 15. SOLR-291: Control maximum number of documents to cache for any entry
153
+ in the queryResultCache via queryResultMaxDocsCached solrconfig.xml
154
+ entry. (Koji Sekiguchi via yonik)
155
+
156
+ 16. SOLR-240: New <lockType> configuration setting in <mainIndex> and
157
+ <indexDefaults> blocks supports all Lucene builtin LockFactories.
158
+ 'single' is recommended setting, but 'simple' is default for total
159
+ backwards compatibility.
160
+ (Will Johnson via hossman)
161
+
162
+ 17. SOLR-248: Added CapitalizationFilterFactory that creates tokens with
163
+ normalized capitalization. This filter is useful for facet display,
164
+ but will not work with a prefix query. (ryan)
165
+ SOLR-468: Change to the semantics to keep the original token, not the token in the Map. Also switched to
166
+ use Lucene's new reusable token capabilities. (gsingers)
167
+
168
+ 18. SOLR-307: Added NGramFilterFactory and EdgeNGramFilterFactory.
169
+ (Thomas Peuss via Otis Gospodnetic)
170
+
171
+ 19. SOLR-305: analysis.jsp can be given a fieldtype instead of a field
172
+ name. (hossman)
173
+
174
+ 20. SOLR-102: Added RegexFragmenter, which splits text for highlighting
175
+ based on a given pattern. (klaas)
176
+
177
+ 21. SOLR-258: Date Faceting added to SimpleFacets. Facet counts
178
+ computed for ranges of size facet.date.gap (a DateMath expression)
179
+ between facet.date.start and facet.date.end. (hossman)
180
+
181
+ 22. SOLR-196: A PHP serialized "phps" response writer that returns a
182
+ serialized array that can be used with the PHP function unserialize,
183
+ and a PHP response writer "php" that may be used by eval.
184
+ (Nick Jenkin, Paul Borgermans, Pieter Berkel via yonik)
185
+
186
+ 23. SOLR-308: A new UUIDField class which accepts UUID string values,
187
+ as well as the special value of "NEW" which triggers generation of
188
+ a new random UUID.
189
+ (Thomas Peuss via hossman)
190
+
191
+ 24. SOLR-349: New FunctionQuery functions: sum, product, div, pow, log,
192
+ sqrt, abs, scale, map. Constants may now be used as a value source.
193
+ (yonik)
194
+
195
+ 25. SOLR-359: Add field type className to Luke response, and enabled access
196
+ to the detailed field information from the solrj client API.
197
+ (Grant Ingersoll via ehatcher)
198
+
199
+ 26. SOLR-334: Pluggable query parsers. Allows specification of query
200
+ type and arguments as a prefix on a query string. (yonik)
201
+
202
+ 27. SOLR-351: External Value Source. An external file may be used
203
+ to specify the values of a field, currently usable as
204
+ a ValueSource in a FunctionQuery. (yonik)
205
+
206
+ 28. SOLR-395: Many new features for the spell checker implementation, including
207
+ an extended response mode with much richer output, multi-word spell checking,
208
+ and a bevy of new and renamed options (see the wiki).
209
+ (Mike Krimerman, Scott Taber via klaas).
210
+
211
+ 29. SOLR-408: Added PingRequestHandler and deprecated SolrCore.getPingQueryRequest().
212
+ Ping requests should be configured using standard RequestHandler syntax in
213
+ solrconfig.xml rather then using the <pingQuery></pingQuery> syntax.
214
+ (Karsten Sperling via ryan)
215
+
216
+ 30. SOLR-281: Added a 'Search Component' interface and converted StandardRequestHandler
217
+ and DisMaxRequestHandler to use this framework.
218
+ (Sharad Agarwal, Henri Biestro, yonik, ryan)
219
+
220
+ 31. SOLR-176: Add detailed timing data to query response output. The SearchHandler
221
+ interface now returns how long each section takes. (klaas)
222
+
223
+ 32. SOLR-414: Plugin initialization now supports SolrCore and ResourceLoader "Aware"
224
+ plugins. Plugins that implement SolrCoreAware or ResourceLoaderAware are
225
+ informed about the SolrCore/ResourceLoader. (Henri Biestro, ryan)
226
+
227
+ 33. SOLR-350: Support multiple SolrCores running in the same solr instance and allows
228
+ runtime runtime management for any running SolrCore. If a solr.xml file exists
229
+ in solr.home, this file is used to instanciate multiple cores and enables runtime
230
+ core manipulation. For more informaion see: http://wiki.apache.org/solr/CoreAdmin
231
+ (Henri Biestro, ryan)
232
+
233
+ 34. SOLR-447: Added an single request handler that will automatically register all
234
+ standard admin request handlers. This replaces the need to register (and maintain)
235
+ the set of admin request handlers. Assuming solrconfig.xml includes:
236
+ <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
237
+ This will register: Luke/SystemInfo/PluginInfo/ThreadDump/PropertiesRequestHandler.
238
+ (ryan)
239
+
240
+ 35. SOLR-142: Added RawResponseWriter and ShowFileRequestHandler. This returns config
241
+ files directly. If AdminHandlers are configured, this will be added automatically.
242
+ The jsp files /admin/get-file.jsp and /admin/raw-schema.jsp have been deprecated.
243
+ The deprecated <admin><gettableFiles> will be automatically registered with
244
+ a ShowFileRequestHandler instance for backwards compatibility. (ryan)
245
+
246
+ 36. SOLR-446: TextResponseWriter can write SolrDocuments and SolrDocumentLists the
247
+ same way it writes Document and DocList. (yonik, ryan)
248
+
249
+ 37. SOLR-418: Adding a query elevation component. This is an optional component to
250
+ elevate some documents to the top positions (or exclude them) for a given query.
251
+ (ryan)
252
+
253
+ 38. SOLR-478: Added ability to get back unique key information from the LukeRequestHandler. (gsingers)
254
+
255
+ 39. SOLR-127: HTTP Caching awareness. Solr now recognizes HTTP Request
256
+ headers related to HTTP Caching (see RFC 2616 sec13) and will respond
257
+ with "304 Not Modified" when appropriate. New options have been added
258
+ to solrconfig.xml to influence this behavior.
259
+ (Thomas Peuss via hossman)
260
+
261
+ 40. SOLR-303: Distributed Search over HTTP. Specification of shards
262
+ argument causes Solr to query those shards and merge the results
263
+ into a single response. Querying, field faceting (sorted only),
264
+ query faceting, highlighting, and debug information are supported
265
+ in distributed mode.
266
+ (Sharad Agarwal, Patrick O'Leary, Sabyasachi Dalal, Stu Hood,
267
+ Jayson Minard, Lars Kotthoff, ryan, yonik)
268
+
269
+ 41. SOLR-356: Pluggable functions (value sources) that allow
270
+ registration of new functions via solrconfig.xml
271
+ (Doug Daniels via yonik)
272
+
273
+ 42. SOLR-494: Added cool admin Ajaxed schema explorer.
274
+ (Greg Ludington via ehatcher)
275
+
276
+ 43. SOLR-497: Added date faceting to the QueryResponse in SolrJ
277
+ and QueryResponseTest (Shalin Shekhar Mangar via gsingers)
278
+
279
+ 44. SOLR-486: Binary response format, faster and smaller
280
+ than XML and JSON response formats (use wt=javabin).
281
+ BinaryResponseParser for utilizing the binary format via SolrJ
282
+ and is now the default.
283
+ (Noble Paul, yonik)
284
+
285
+ 45. SOLR-521: StopFilterFactory support for "enablePositionIncrements"
286
+ (Walter Ferrara via hossman)
287
+
288
+ 46. SOLR-557: Added SolrCore.getSearchComponents() to return an unmodifiable Map. (gsingers)
289
+
290
+ 47. SOLR-516: Added hl.maxAlternateFieldLength parameter, to set max length for hl.alternateField
291
+ (Koji Sekiguchi via klaas)
292
+
293
+ 48. SOLR-319: Changed SynonymFilterFactory to "tokenize" synonyms file.
294
+ To use a tokenizer, specify "tokenizerFactory" attribute in <filter>.
295
+ For example:
296
+ <tokenizer class="solr.CJKTokenizerFactory"/>
297
+ <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" expand="true"
298
+ ignoreCase="true" tokenizerFactory="solr.CJKTokenizerFactory"/>
299
+ (koji)
300
+
301
+ 49. SOLR-515: Added SimilarityFactory capability to schema.xml,
302
+ making config file parameters usable in the construction of
303
+ the global Lucene Similarity implementation.
304
+ (ehatcher)
305
+
306
+ 50. SOLR-536: Add a DocumentObjectBinder to solrj that converts Objects to and
307
+ from SolrDocuments. (Noble Paul via ryan)
308
+
309
+ 51. SOLR-595: Add support for Field level boosting in the MoreLikeThis Handler. (Tom Morton, gsingers)
310
+
311
+ 52. SOLR-572: Added SpellCheckComponent and org.apache.solr.spelling package to support more spell checking functionality.
312
+ Also includes ability to add your own SolrSpellChecker implementation that plugs in.
313
+ See http://wiki.apache.org/solr/SpellCheckComponent for more details
314
+ (Shalin Shekhar Mangar, Bojan Smid, gsingers)
315
+ 53. SOLR-679: Added accessor methods to Lucene based spell checkers (gsingers)
316
+
317
+ 54. SOLR-423: Added Request Handler close hook notification so that RequestHandlers can be notified when a core is closing. (gsingers, ryan)
318
+
319
+ 55. SOLR-603: Added ability to partially optimize. (gsingers)
320
+
321
+ 56. SOLR-483: Add byte/short sorting support (gsingers)
322
+
323
+ 57. SOLR-14: Add preserveOriginal flag to WordDelimiterFilter
324
+ (Geoffrey Young, Trey Hyde, Ankur Madnani, yonik)
325
+
326
+ 58. SOLR-502: Add search timeout support. (Sean Timm via yonik)
327
+
328
+ 59. SOLR-605: Add the ability to register callbacks programatically (ryan, Noble Paul)
329
+
330
+ 60. SOLR-610: hl.maxAnalyzedChars can be -1 to highlight everything (Lars Kotthoff via klaas)
331
+
332
+ 61. SOLR-522: Make analysis.jsp show payloads. (Tricia Williams via yonik)
333
+
334
+ 62. SOLR-611: Expose sort_values returned by QueryComponent in SolrJ's QueryResponse (Dan Rosher via shalin)
335
+
336
+ 63. SOLR-256: Support exposing Solr statistics through JMX (Sharad Agrawal, shalin)
337
+
338
+ 64. SOLR-666: Expose warmup time in statistics for SolrIndexSearcher and LRUCache (shalin)
339
+
340
+ 65. SOLR-663: Allow multiple files for stopwords, keepwords, protwords and synonyms (Otis Gospodnetic, shalin)
341
+
342
+ 66. SOLR-469: Added DataImportHandler as a contrib project which makes indexing data from Databases, XML files and HTTP
343
+ data sources into Solr quick and easy. Includes API and implementations for supporting multiple
344
+ data sources, processors and transformers for importing data. Supports full data imports as well as
345
+ incremental (delta) indexing. See http://wiki.apache.org/solr/DataImportHandler for more details.
346
+ (Noble Paul, shalin)
347
+
348
+ 67. SOLR-622: SpellCheckComponent supports auto-loading indices on startup and optionally, (re)builds indices
349
+ on newSearcher event, if configured in solrconfig.xml
350
+ (shalin)
351
+
352
+ 68. SOLR-554: Hierarchical JDK log level selector for SOLR Admin replaces logging.jsp (Sean Timm via shalin)
353
+
354
+ 69. SOLR-506: Emitting HTTP Cache headers can be enabled or disabled through configuration
355
+ on a per-handler basis (shalin)
356
+
357
+ 70. SOLR-716: Added support for properties in configuration files. Properties can be specified in solr.xml
358
+ and can be used in solrconfig.xml and schema.xml
359
+ (Henri Biestro, hossman, ryan, shalin)
360
+
361
+ Changes in runtime behavior
362
+ 1. SOLR-559: use Lucene updateDocument, deleteDocuments methods. This
363
+ removes the maxBufferedDeletes parameter added by SOLR-310 as Lucene
364
+ now manages the deletes. This provides slightly better indexing
365
+ performance and makes overwrites atomic, eliminating the possibility of
366
+ a crash causing duplicates. (yonik)
367
+
368
+ 2. SOLR-689 / SOLR-695: If you have used "MultiCore" functionality in an unreleased
369
+ version of 1.3-dev, many classes and configs have been renamed for the official
370
+ 1.3 release. Speciffically, solr.xml has replaced multicore.xml, and uses a slightly
371
+ different syntax. The solrj classes: MultiCore{Request/Response/Params} have been
372
+ renamed: CoreAdmin{Request/Response/Params} (hossman, ryan, Henri Biestro)
373
+
374
+ 3. SOLR-647: reference count the SolrCore uses to prevent a premature
375
+ close while a core is still in use. (Henri Biestro, Noble Paul, yonik)
376
+
377
+ 4. SOLR-737: SolrQueryParser now uses a ConstantScoreQuery for wildcard
378
+ queries that prevent an exception from being thrown when the number
379
+ of matching terms exceeds the BooleanQuery clause limit. (yonik)
380
+
381
+ Optimizations
382
+ 1. SOLR-276: improve JSON writer speed. (yonik)
383
+
384
+ 2. SOLR-310: bound and reduce memory usage by providing <maxBufferedDeletes> parameter,
385
+ which flushes deleted without forcing the user to use <commit/> for this purpose.
386
+ (klaas)
387
+
388
+ 3. SOLR-348: short-circuit faceting if less than mincount docs match. (yonik)
389
+
390
+ 4. SOLR-354: Optimize removing all documents. Now when a delete by query
391
+ of *:* is issued, the current index is removed. (yonik)
392
+
393
+ 5. SOLR-377: Speed up response writers. (yonik)
394
+
395
+ 6. SOLR-342: Added support into the SolrIndexWriter for using several new
396
+ features of the new LuceneIndexWriter, including: setRAMBufferSizeMB(), setMergePolicy(), setMergeScheduler. Also, added support
397
+ to specify Lucene's autoCommit functionality (not to be confused with Solr's similarily named autoCommit functionality) via
398
+ the <luceneAutoCommit> config. item. See the test and example solrconfig.xml <indexDefaults> section for usage. Performance during
399
+ indexing should be significantly increased by moving up to 2.3 due to Lucene's new indexing capabilities. Furthermore,
400
+ the setRAMBufferSizeMB makes it more logical to decide on tuning factors related to indexing. For best performance, leave the
401
+ mergePolicy and mergeScheduler as the defaults and set ramBufferSizeMB instead of maxBufferedDocs. The best value for this
402
+ depends on the types of documents in use. 32 should be a good starting point, but reports have shown up to 48 MB provides
403
+ good results. Note, it is acceptable to set both ramBufferSizeMB and maxBufferedDocs, and Lucene will flush based on whichever
404
+ limit is reached first. (gsingers)
405
+
406
+ 7. SOLR-330: Converted TokenStreams to use Lucene's new char array based
407
+ capabilities. (gsingers)
408
+
409
+ 8. SOLR-624: Only take snapshots if there are differences to the index (Richard Trey Hyde via gsingers)
410
+
411
+ 9. SOLR-587: Delete by Query performance greatly improved by using
412
+ new underlying Lucene IndexWriter implementation. (yonik)
413
+
414
+ 10. SOLR-730: Use read-only IndexReaders that don't synchronize
415
+ isDeleted(). This will speed up function queries and *:* queries
416
+ as well as improve their scalability on multi-CPU systems.
417
+ (Mark Miller via yonik)
418
+
419
+ Bug Fixes
420
+ 1. Make TextField respect sortMissingFirst and sortMissingLast fields.
421
+ (J.J. Larrea via yonik)
422
+
423
+ 2. autoCommit/maxDocs was not working properly when large autoCommit/maxTime
424
+ was specified (klaas)
425
+
426
+ 3. SOLR-283: autoCommit was not working after delete. (ryan)
427
+
428
+ 4. SOLR-286: ContentStreamBase was not using default encoding for getBytes()
429
+ (Toru Matsuzawa via ryan)
430
+
431
+ 5. SOLR-292: Fix MoreLikeThis facet counting. (Pieter Berkel via ryan)
432
+
433
+ 6. SOLR-297: Fix bug in RequiredSolrParams where requiring a field
434
+ specific param would fail if a general default value had been supplied.
435
+ (hossman)
436
+
437
+ 7. SOLR-331: Fix WordDelimiterFilter handling of offsets for synonyms or
438
+ other injected tokens that can break highlighting. (yonik)
439
+
440
+ 8. SOLR-282: Snapshooter does not work on Solaris and OS X since the cp command
441
+ there does not have the -l option. Also updated commit/optimize related
442
+ scripts to handle both old and new response format. (bill)
443
+
444
+ 9. SOLR-294: Logging of elapsed time broken on Solaris because the date command
445
+ there does not support the %s output format. (bill)
446
+
447
+ 10. SOLR-136: Snappuller - "date -d" and locales don't mix. (Jürgen Hermann via bill)
448
+
449
+ 11. SOLR-333: Changed distributiondump.jsp to use Solr HOME instead of CWD to set path.
450
+
451
+ 12. SOLR-393: Removed duplicate contentType from raw-schema.jsp. (bill)
452
+
453
+ 13. SOLR-413: Requesting a large numbers of documents to be returned (limit)
454
+ can result in an out-of-memory exception, even for a small index. (yonik)
455
+
456
+ 14. The CSV loader incorrectly threw an exception when given
457
+ header=true (the default). (ryan, yonik)
458
+
459
+ 15. SOLR-449: the python and ruby response writers are now able to correctly
460
+ output NaN and Infinity in their respective languages. (klaas)
461
+
462
+ 16. SOLR-42: HTMLStripReader tokenizers now preserve correct source
463
+ offsets for highlighting. (Grant Ingersoll via yonik)
464
+
465
+ 17. SOLR-481: Handle UnknownHostException in _info.jsp (gsingers)
466
+
467
+ 18. SOLR-324: Add proper support for Long and Doubles in sorting, etc. (gsingers)
468
+
469
+ 19. SOLR-496: Cache-Control max-age changed to Long so Expires
470
+ calculation won't cause overflow. (Thomas Peuss via hossman)
471
+
472
+ 20. SOLR-535: Fixed typo (Tokenzied -> Tokenized) in schema.jsp (Thomas Peuss via billa)
473
+
474
+ 21. SOLR-529: Better error messages from SolrQueryParser when field isn't
475
+ specified and there is no defaultSearchField in schema.xml
476
+ (Lars Kotthoff via hossman)
477
+
478
+ 22. SOLR-530: Better error messages/warnings when parsing schema.xml:
479
+ field using bogus fieldtype and multiple copyFields to a non-multiValue
480
+ field. (Shalin Shekhar Mangar via hossman)
481
+
482
+ 23. SOLR-528: Better error message when defaultSearchField is bogus or not
483
+ indexed. (Lars Kotthoff via hossman)
484
+
485
+ 24. SOLR-533: Fixed tests so they don't use hardcoded port numbers.
486
+ (hossman)
487
+
488
+ 25. SOLR-400: SolrExceptionTest should now handle using OpenDNS as a DNS provider (gsingers)
489
+
490
+ 26. SOLR-541: Legacy XML update support (provided by SolrUpdateServlet
491
+ when no RequestHandler is mapped to "/update") now logs error correctly.
492
+ (hossman)
493
+
494
+ 27. SOLR-267: Changed logging to report number of hits, and also provide a mechanism to add log messages to be output by the SolrCore via a NamedList toLog
495
+ member variable. (Will Johnson, yseeley, gsingers)
496
+ SOLR-267: Removed adding values to the HTTP headers in SolrDispatchFilter (gsingers)
497
+
498
+ 28. SOLR-509: Moved firstSearcher event notification to the end of the SolrCore constructor (Koji Sekiguchi via gsingers)
499
+
500
+ 29. SOLR-470, SOLR-552, SOLR-544, SOLR-701: Multiple fixes to DateField
501
+ regarding lenient parsing of optional milliseconds, and correct
502
+ formating using the canonical representation. LegacyDateField has
503
+ been added for people who have come to depend on the existing
504
+ broken behavior. (hossman, Stefan Oestreicher)
505
+
506
+ 30. SOLR-539: Fix for non-atomic long counters and a cast fix to avoid divide
507
+ by zero. (Sean Timm via Otis Gospodnetic)
508
+
509
+ 31. SOLR-514: Added explicit media-type with UTF* charset to *.xsl files that
510
+ don't already have one. (hossman)
511
+
512
+ 32. SOLR-505: Give RequestHandlers the possiblity to suppress the generation
513
+ of HTTP caching headers. (Thomas Peuss via Otis Gospodnetic)
514
+
515
+ 33. SOLR-553: Handle highlighting of phrase terms better when
516
+ hl.usePhraseHighligher=true URL param is used.
517
+ (Bojan Smid via Otis Gospodnetic)
518
+
519
+ 34. SOLR-590: Limitation in pgrep on Linux platform breaks script-utils fixUser. (Hannes Schmidt via billa)
520
+
521
+ 35. SOLR-597: SolrServlet no longer "caches" SolrCore. This was causing
522
+ problems in Resin, and could potentially cause problems for customized
523
+ usages of SolrServlet.
524
+
525
+ 36. SOLR-585: Now sets the QParser on the ResponseBuilder (gsingers)
526
+
527
+ 37. SOLR-604: If the spellchecking path is relative, make it relative to the Solr Data Directory. (Shalin Shekhar Mangar via gsingers)
528
+
529
+ 38. SOLR-584: Make stats.jsp and stats.xsl more robust.
530
+ (Yousef Ourabi and hossman)
531
+
532
+ 39. SOLR-443: SolrJ: Declare UTF-8 charset on POSTed parameters
533
+ to avoid problems with servlet containers that default to latin-1
534
+ and allow switching of the exact POST mechanism for parameters
535
+ via useMultiPartPost in CommonsHttpSolrServer.
536
+ (Lars Kotthoff, Andrew Schurman, ryan, yonik)
537
+
538
+ 40. SOLR-556: multi-valued fields always highlighted in disparate snippets (Lars Kotthoff via klaas)
539
+
540
+ 41. SOLR-501: Fix admin/analysis.jsp UTF-8 input for some other servlet
541
+ containers such as Tomcat. (Hiroaki Kawai, Lars Kotthoff via yonik)
542
+
543
+ 42. SOLR-616: SpellChecker accuracy configuration is not applied for FileBasedSpellChecker.
544
+ Apply it for FileBasedSpellChecker and IndexBasedSpellChecker both.
545
+ (shalin)
546
+
547
+ 43. SOLR-648: SpellCheckComponent throws NullPointerException on using spellcheck.q request
548
+ parameter after restarting Solr, if reload is called but build is not called.
549
+ (Jonathan Lee, shalin)
550
+
551
+ 44. SOLR-598: DebugComponent now always occurs last in the SearchHandler list unless the components are explicitly declared. (gsingers)
552
+
553
+ 45. SOLR-676: DataImportHandler should use UpdateRequestProcessor API instead of directly using UpdateHandler. (shalin)
554
+
555
+ 46. SOLR-696: Fixed bug in NamedListCodec in regards to serializing Iterable objects. (gsingers)
556
+
557
+ 47. SOLR-669: snappuler fix for FreeBSD/Darwin (Richard "Trey" Hyde via Otis Gospodnetic)
558
+
559
+ 48. SOLR-606: Fixed spell check collation offset issue. (Stefan Oestreicher , Geoffrey Young, gsingers)
560
+
561
+ 49. SOLR-589: Improved handling of badly formated query strings (Sean Timm via Otis Gospodnetic)
562
+
563
+ 50. SOLR-749: Allow QParser and ValueSourceParsers to be extended with same name (hossman, gsingers)
564
+
565
+ Other Changes
566
+ 1. SOLR-135: Moved common classes to org.apache.solr.common and altered the
567
+ build scripts to make two jars: apache-solr-1.3.jar and
568
+ apache-solr-1.3-common.jar. This common.jar can be used in client code;
569
+ It does not have lucene or junit dependencies. The original classes
570
+ have been replaced with a @Deprecated extended class and are scheduled
571
+ to be removed in a later release. While this change does not affect API
572
+ compatibility, it is recommended to update references to these
573
+ deprecated classes. (ryan)
574
+
575
+ 2. SOLR-268: Tweaks to post.jar so it prints the error message from Solr.
576
+ (Brian Whitman via hossman)
577
+
578
+ 3. Upgraded to Lucene 2.2.0; June 18, 2007.
579
+
580
+ 4. SOLR-215: Static access to SolrCore.getSolrCore() and SolrConfig.config
581
+ have been deprecated in order to support multiple loaded cores.
582
+ (Henri Biestro via ryan)
583
+
584
+ 5. SOLR-367: The create method in all TokenFilter and Tokenizer Factories
585
+ provided by Solr now declare their specific return types instead of just
586
+ using "TokenStream" (hossman)
587
+
588
+ 6. SOLR-396: Hooks add to build system for automatic generation of (stub)
589
+ Tokenizer and TokenFilter Factories.
590
+ Also: new Factories for all Tokenizers and TokenFilters provided by the
591
+ lucene-analyzers-2.2.0.jar -- includes support for German, Chinese,
592
+ Russan, Dutch, Greek, Brazilian, Thai, and French. (hossman)
593
+
594
+ 7. Upgraded to commons-CSV r609327, which fixes escaping bugs and
595
+ introduces new escaping and whitespace handling options to
596
+ increase compatibility with different formats. (yonik)
597
+
598
+ 8. Upgraded to Lucene 2.3.0; Jan 23, 2008.
599
+
600
+ 9. SOLR-451: Changed analysis.jsp to use POST instead of GET, also made the input area a bit bigger (gsingers)
601
+
602
+ 10. Upgrade to Lucene 2.3.1
603
+
604
+ 11. SOLR-531: Different exit code for rsyncd-start and snappuller if disabled (Thomas Peuss via billa)
605
+
606
+ 12. SOLR-550: Clarified DocumentBuilder addField javadocs (gsingers)
607
+
608
+ 13. Upgrade to Lucene 2.3.2
609
+
610
+ 14. SOLR-518: Changed luke.xsl to use divs w/css for generating histograms
611
+ instead of SVG (Thomas Peuss via hossman)
612
+
613
+ 15. SOLR-592: Added ShardParams interface and changed several string literals
614
+ to references to constants in CommonParams.
615
+ (Lars Kotthoff via Otis Gospodnetic)
616
+
617
+ 16. SOLR-520: Deprecated unused LengthFilter since already core in
618
+ Lucene-Java (hossman)
619
+
620
+ 17. SOLR-645: Refactored SimpleFacetsTest (Lars Kotthoff via hossman)
621
+
622
+ 18. SOLR-591: Changed Solrj default value for facet.sort to true (Lars Kotthoff via Shalin)
623
+
624
+ 19. Upgraded to Lucene 2.4-dev (r669476) to support SOLR-572 (gsingers)
625
+
626
+ 20. SOLR-636: Improve/simplify example configs; and make index.jsp
627
+ links more resilient to configs loaded via an InputStream
628
+ (Lars Kotthoff, hossman)
629
+
630
+ 21. SOLR-682: Scripts now support FreeBSD (Richard Trey Hyde via gsingers)
631
+
632
+ 22. SOLR-489: Added in deprecation comments. (Sean Timm, Lars Kothoff via gsingers)
633
+
634
+ 23. SOLR-692: Migrated to stable released builds of StAX API 1.0.1 and StAX 1.2.0 (shalin)
635
+ 24. Upgraded to Lucene 2.4-dev (r686801) (yonik)
636
+ 25. Upgraded to Lucene 2.4-dev (r688745) 27-Aug-2008 (yonik)
637
+ 26. Upgraded to Lucene 2.4-dev (r691741) 03-Sep-2008 (yonik)
638
+ 27. Replaced the StAX reference implementation with the geronimo
639
+ StAX API jar, and the Woodstox StAX implementation. (yonik)
640
+
641
+ Build
642
+ 1. SOLR-411. Changed the names of the Solr JARs to use the defacto standard JAR names based on
643
+ project-name-version.jar. This yields, for example:
644
+ apache-solr-common-1.3-dev.jar
645
+ apache-solr-solrj-1.3-dev.jar
646
+ apache-solr-1.3-dev.jar
647
+
648
+ 2. SOLR-479: Added clover code coverage targets for committers and the nightly build. Requires the Clover library, as licensed to Apache and only available privately. To run:
649
+ ant -Drun.clover=true clean clover test generate-clover-reports
650
+
651
+ 3. SOLR-510: Nightly release includes client sources. (koji)
652
+
653
+ 4. SOLR-563: Modified the build process to build contrib projects
654
+ (Shalin Shekhar Mangar via Otis Gospodnetic)
655
+
656
+ 5. SOLR-673: Modify build file to create javadocs for core, solrj, contrib and "all inclusive" (shalin)
657
+
658
+ 6. SOLR-672: Nightly release includes contrib sources. (Jeremy Hinegardner, shalin)
659
+
660
+ 7. SOLR-586: Added ant target and POM files for building maven artifacts of the Solr core, common,
661
+ client and contrib. The target can publish artifacts with source and javadocs.
662
+ (Spencer Crissman, Craig McClanahan, shalin)
663
+
664
+ ================== Release 1.2, 20070602 ==================
665
+
666
+ Upgrading from Solr 1.1
667
+ -------------------------------------
668
+ IMPORTANT UPGRADE NOTE: In a master/slave configuration, all searchers/slaves
669
+ should be upgraded before the master! If the master were to be updated
670
+ first, the older searchers would not be able to read the new index format.
671
+
672
+ Older Apache Solr installations can be upgraded by replacing
673
+ the relevant war file with the new version. No changes to configuration
674
+ files should be needed.
675
+
676
+ This version of Solr contains a new version of Lucene implementing
677
+ an updated index format. This version of Solr/Lucene can still read
678
+ and update indexes in the older formats, and will convert them to the new
679
+ format on the first index change. One change in the new index format
680
+ is that all "norms" are kept in a single file, greatly reducing the number
681
+ of files per segment. Users of compound file indexes will want to consider
682
+ converting to the non-compound format for faster indexing and slightly better
683
+ search concurrency.
684
+
685
+ The JSON response format for facets has changed to make it easier for
686
+ clients to retain sorted order. Use json.nl=map explicitly in clients
687
+ to get the old behavior, or add it as a default to the request handler
688
+ in solrconfig.xml
689
+
690
+ The Lucene based Solr query syntax is slightly more strict.
691
+ A ':' in a field value must be escaped or the whole value must be quoted.
692
+
693
+ The Solr "Request Handler" framework has been updated in two key ways:
694
+ First, if a Request Handler is registered in solrconfig.xml with a name
695
+ starting with "/" then it can be accessed using path-based URL, instead of
696
+ using the legacy "/select?qt=name" URL structure. Second, the Request
697
+ Handler framework has been extended making it possible to write Request
698
+ Handlers that process streams of data for doing updates, and there is a
699
+ new-style Request Handler for XML updates given the name of "/update" in
700
+ the example solrconfig.xml. Existing installations without this "/update"
701
+ handler will continue to use the old update servlet and should see no
702
+ changes in behavior. For new-style update handlers, errors are now
703
+ reflected in the HTTP status code, Content-type checking is more strict,
704
+ and the response format has changed and is controllable via the wt
705
+ parameter.
706
+
707
+
708
+
709
+ Detailed Change List
710
+ --------------------
711
+
712
+ New Features
713
+ 1. SOLR-82: Default field values can be specified in the schema.xml.
714
+ (Ryan McKinley via hossman)
715
+
716
+ 2. SOLR-89: Two new TokenFilters with corresponding Factories...
717
+ * TrimFilter - Trims leading and trailing whitespace from Tokens
718
+ * PatternReplaceFilter - applies a Pattern to each token in the
719
+ stream, replacing match occurances with a specified replacement.
720
+ (hossman)
721
+
722
+ 3. SOLR-91: allow configuration of a limit of the number of searchers
723
+ that can be warming in the background. This can be used to avoid
724
+ out-of-memory errors, or contention caused by more and more searchers
725
+ warming in the background. An error is thrown if the limit specified
726
+ by maxWarmingSearchers in solrconfig.xml is exceeded. (yonik)
727
+
728
+ 4. SOLR-106: New faceting parameters that allow specification of a
729
+ minimum count for returned facets (facet.mincount), paging through facets
730
+ (facet.offset, facet.limit), and explicit sorting (facet.sort).
731
+ facet.zeros is now deprecated. (yonik)
732
+
733
+ 5. SOLR-80: Negative queries are now allowed everywhere. Negative queries
734
+ are generated and cached as their positive counterpart, speeding
735
+ generation and generally resulting in smaller sets to cache.
736
+ Set intersections in SolrIndexSearcher are more efficient,
737
+ starting with the smallest positive set, subtracting all negative
738
+ sets, then intersecting with all other positive sets. (yonik)
739
+
740
+ 6. SOLR-117: Limit a field faceting to constraints with a prefix specified
741
+ by facet.prefix or f.<field>.facet.prefix. (yonik)
742
+
743
+ 7. SOLR-107: JAVA API: Change NamedList to use Java5 generics
744
+ and implement Iterable<Map.Entry> (Ryan McKinley via yonik)
745
+
746
+ 8. SOLR-104: Support for "Update Plugins" -- RequestHandlers that want
747
+ access to streams of data for doing updates. ContentStreams can come
748
+ from the raw POST body, multi-part form data, or remote URLs.
749
+ Included in this change is a new SolrDispatchFilter that allows
750
+ RequestHandlers registered with names that begin with a "/" to be
751
+ accessed using a URL structure based on that name.
752
+ (Ryan McKinley via hossman)
753
+
754
+ 9. SOLR-126: DirectUpdateHandler2 supports autocommitting after a specified time
755
+ (in ms), using <autoCommit><maxTime>10000</maxTime></autoCommit>.
756
+ (Ryan McKinley via klaas).
757
+
758
+ 10. SOLR-116: IndexInfoRequestHandler added. (Erik Hatcher)
759
+
760
+ 11. SOLR-79: Add system property ${<sys.prop>[:<default>]} substitution for
761
+ configuration files loaded, including schema.xml and solrconfig.xml.
762
+ (Erik Hatcher with inspiration from Andrew Saar)
763
+
764
+ 12. SOLR-149: Changes to make Solr more easily embeddable, in addition
765
+ to logging which request handler handled each request.
766
+ (Ryan McKinley via yonik)
767
+
768
+ 13. SOLR-86: Added standalone Java-based command-line updater.
769
+ (Erik Hatcher via Bertrand Delecretaz)
770
+
771
+ 14. SOLR-152: DisMaxRequestHandler now supports configurable alternate
772
+ behavior when q is not specified. A "q.alt" param can be specified
773
+ using SolrQueryParser syntax as a mechanism for specifying what query
774
+ the dismax handler should execute if the main user query (q) is blank.
775
+ (Ryan McKinley via hossman)
776
+
777
+ 15. SOLR-158: new "qs" (Query Slop) param for DisMaxRequestHandler
778
+ allows for specifying the amount of default slop to use when parsing
779
+ explicit phrase queries from the user.
780
+ (Adam Hiatt via hossman)
781
+
782
+ 16. SOLR-81: SpellCheckerRequestHandler that uses the SpellChecker from
783
+ the Lucene contrib.
784
+ (Otis Gospodnetic and Adam Hiatt)
785
+
786
+ 17. SOLR-182: allow lazy loading of request handlers on first request.
787
+ (Ryan McKinley via yonik)
788
+
789
+ 18. SOLR-81: More SpellCheckerRequestHandler enhancements, inlcluding
790
+ support for relative or absolute directory path configurations, as
791
+ well as RAM based directory. (hossman)
792
+
793
+ 19. SOLR-197: New parameters for input: stream.contentType for specifying
794
+ or overriding the content type of input, and stream.file for reading
795
+ local files. (Ryan McKinley via yonik)
796
+
797
+ 20. SOLR-66: CSV data format for document additions and updates. (yonik)
798
+
799
+ 21. SOLR-184: add echoHandler=true to responseHeader, support echoParams=all
800
+ (Ryan McKinley via ehatcher)
801
+
802
+ 22. SOLR-211: Added a regex PatternTokenizerFactory. This extracts tokens
803
+ from the input string using a regex Pattern. (Ryan McKinley)
804
+
805
+ 23. SOLR-162: Added a "Luke" request handler and other admin helpers.
806
+ This exposes the system status through the standard requestHandler
807
+ framework. (ryan)
808
+
809
+ 24. SOLR-212: Added a DirectSolrConnection class. This lets you access
810
+ solr using the standard request/response formats, but does not require
811
+ an HTTP connection. It is designed for embedded applications. (ryan)
812
+
813
+ 25. SOLR-204: The request dispatcher (added in SOLR-104) can handle
814
+ calls to /select. This offers uniform error handling for /update and
815
+ /select. To enable this behavior, you must add:
816
+ <requestDispatcher handleSelect="true" > to your solrconfig.xml
817
+ See the example solrconfig.xml for details. (ryan)
818
+
819
+ 26. SOLR-170: StandardRequestHandler now supports a "sort" parameter.
820
+ Using the ';' syntax is still supported, but it is recommended to
821
+ transition to the new syntax. (ryan)
822
+
823
+ 27. SOLR-181: The index schema now supports "required" fields. Attempts
824
+ to add a document without a required field will fail, returning a
825
+ descriptive error message. By default, the uniqueKey field is
826
+ a required field. This can be disabled by setting required=false
827
+ in schema.xml. (Greg Ludington via ryan)
828
+
829
+ 28. SOLR-217: Fields configured in the schema to be neither indexed or
830
+ stored will now be quietly ignored by Solr when Documents are added.
831
+ The example schema has a comment explaining how this can be used to
832
+ ignore any "unknown" fields.
833
+ (Will Johnson via hossman)
834
+
835
+ 29. SOLR-227: If schema.xml defines multiple fieldTypes, fields, or
836
+ dynamicFields with the same name, a severe error will be logged rather
837
+ then quietly continuing. Depending on the <abortOnConfigurationError>
838
+ settings, this may halt the server. Likewise, if solrconfig.xml
839
+ defines multiple RequestHandlers with the same name it will also add
840
+ an error. (ryan)
841
+
842
+ 30. SOLR-226: Added support for dynamic field as the destination of a
843
+ copyField using glob (*) replacement. (ryan)
844
+
845
+ 31. SOLR-224: Adding a PhoneticFilterFactory that uses apache commons codec
846
+ language encoders to build phonetically similar tokens. This currently
847
+ supports: DoubleMetaphone, Metaphone, Soundex, and RefinedSoundex (ryan)
848
+
849
+ 32. SOLR-199: new n-gram tokenizers available via NGramTokenizerFactory
850
+ and EdgeNGramTokenizerFactory. (Adam Hiatt via yonik)
851
+
852
+ 33. SOLR-234: TrimFilter can update the Token's startOffset and endOffset
853
+ if updateOffsets="true". By default the Token offsets are unchanged.
854
+ (ryan)
855
+
856
+ 34. SOLR-208: new example_rss.xsl and example_atom.xsl to provide more
857
+ examples for people about the Solr XML response format and how they
858
+ can transform it to suit different needs.
859
+ (Brian Whitman via hossman)
860
+
861
+ 35. SOLR-249: Deprecated SolrException( int, ... ) constructors in favor
862
+ of constructors that takes an ErrorCode enum. This will ensure that
863
+ all SolrExceptions use a valid HTTP status code. (ryan)
864
+
865
+ 36. SOLR-386: Abstracted SolrHighlighter and moved existing implementation
866
+ to DefaultSolrHighlighter. Adjusted SolrCore and solrconfig.xml so
867
+ that highlighter is configurable via a class attribute. Allows users
868
+ to use their own highlighter implementation. (Tricia Williams via klaas)
869
+
870
+ Changes in runtime behavior
871
+ 1. Highlighting using DisMax will only pick up terms from the main
872
+ user query, not boost or filter queries (klaas).
873
+
874
+ 2. SOLR-125: Change default of json.nl to flat, change so that
875
+ json.nl only affects items where order matters (facet constraint
876
+ listings). Fix JSON output bug for null values. Internal JAVA API:
877
+ change most uses of NamedList to SimpleOrderedMap. (yonik)
878
+
879
+ 3. A new method "getSolrQueryParser" has been added to the IndexSchema
880
+ class for retrieving a new SolrQueryParser instance with all options
881
+ specified in the schema.xml's <solrQueryParser> block set. The
882
+ documentation for the SolrQueryParser constructor and it's use of
883
+ IndexSchema have also been clarified.
884
+ (Erik Hatcher and hossman)
885
+
886
+ 4. DisMaxRequestHandler's bq, bf, qf, and pf parameters can now accept
887
+ multiple values (klaas).
888
+
889
+ 5. Query are re-written before highlighting is performed. This enables
890
+ proper highlighting of prefix and wildcard queries (klaas).
891
+
892
+ 6. A meaningful exception is raised when attempting to add a doc missing
893
+ a unique id if it is declared in the schema and allowDups=false.
894
+ (ryan via klaas)
895
+
896
+ 7. SOLR-183: Exceptions with error code 400 are raised when
897
+ numeric argument parsing fails. RequiredSolrParams class added
898
+ to facilitate checking for parameters that must be present.
899
+ (Ryan McKinley, J.J. Larrea via yonik)
900
+
901
+ 8. SOLR-179: By default, solr will abort after any severe initalization
902
+ errors. This behavior can be disabled by setting:
903
+ <abortOnConfigurationError>false</abortOnConfigurationError>
904
+ in solrconfig.xml (ryan)
905
+
906
+ 9. The example solrconfig.xml maps /update to XmlUpdateRequestHandler using
907
+ the new request dispatcher (SOLR-104). This requires posted content to
908
+ have a valid contentType: curl -H 'Content-type:text/xml; charset=utf-8'
909
+ The response format matches that of /select and returns standard error
910
+ codes. To enable solr1.1 style /update, do not map "/update" to any
911
+ handler in solrconfig.xml (ryan)
912
+
913
+ 10. SOLR-231: If a charset is not specified in the contentType,
914
+ ContentStream.getReader() will use UTF-8 encoding. (ryan)
915
+
916
+ 11. SOLR-230: More options for post.jar to support stdin, xml on the
917
+ commandline, and defering commits. Tutorial modified to take
918
+ advantage of these options so there is no need for curl.
919
+ (hossman)
920
+
921
+ 12. SOLR-128: Upgraded Jetty to the latest stable release 6.1.3 (ryan)
922
+
923
+ Optimizations
924
+ 1. SOLR-114: HashDocSet specific implementations of union() and andNot()
925
+ for a 20x performance improvement for those set operations, and a new
926
+ hash algorithm speeds up exists() by 10% and intersectionSize() by 8%.
927
+ (yonik)
928
+
929
+ 2. SOLR-115: Solr now uses BooleanQuery.clauses() instead of
930
+ BooleanQuery.getClauses() in any situation where there is no risk of
931
+ modifying the original query.
932
+ (hossman)
933
+
934
+ 3. SOLR-221: Speed up sorted faceting on multivalued fields by ~60%
935
+ when the base set consists of a relatively large portion of the
936
+ index. (yonik)
937
+
938
+ 4. SOLR-221: Added a facet.enum.cache.minDf parameter which avoids
939
+ using the filterCache for terms that match few documents, trading
940
+ decreased memory usage for increased query time. (yonik)
941
+
942
+ Bug Fixes
943
+ 1. SOLR-87: Parsing of synonym files did not correctly handle escaped
944
+ whitespace such as \r\n\t\b\f. (yonik)
945
+
946
+ 2. SOLR-92: DOMUtils.getText (used when parsing config files) did not
947
+ work properly with many DOM implementations when dealing with
948
+ "Attributes". (Ryan McKinley via hossman)
949
+
950
+ 3. SOLR-9,SOLR-99: Tighten up sort specification error checking, throw
951
+ exceptions for missing sort specifications or a sort on a non-indexed
952
+ field. (Ryan McKinley via yonik)
953
+
954
+ 4. SOLR-145: Fix for bug introduced in SOLR-104 where some Exceptions
955
+ were being ignored by all "out of the box" RequestHandlers. (hossman)
956
+
957
+ 5. SOLR-166: JNDI solr.home code refactoring. SOLR-104 moved
958
+ some JNDI related code to the init method of a Servlet Filter -
959
+ according to the Servlet Spec, all Filter's should be initialized
960
+ prior to initializing any Servlets, but this is not the case in at
961
+ least one Servlet Container (Resin). This "bug fix" refactors
962
+ this JNDI code so that it should be executed the first time any
963
+ attempt is made to use the solr.home dir.
964
+ (Ryan McKinley via hossman)
965
+
966
+ 6. SOLR-173: Bug fix to SolrDispatchFilter to reduce "too many open
967
+ files" problem was that SolrDispatchFilter was not closing requests
968
+ when finished. Also modified ResponseWriters to only fetch a Searcher
969
+ reference if necessary for writing out DocLists.
970
+ (Ryan McKinley via hossman)
971
+
972
+ 7. SOLR-168: Fix display positioning of multiple tokens at the same
973
+ position in analysis.jsp (yonik)
974
+
975
+ 8. SOLR-167: The SynonymFilter sometimes generated incorrect offsets when
976
+ multi token synonyms were mached in the source text. (yonik)
977
+
978
+ 9. SOLR-188: bin scripts do not support non-default webapp names. Added "-U"
979
+ option to specify a full path to the update url, overriding the
980
+ "-h" (hostname), "-p" (port) and "-w" (webapp name) parameters.
981
+ (Jeff Rodenburg via billa)
982
+
983
+ 10. SOLR-198: RunExecutableListener always waited for the process to
984
+ finish, even when wait="false" was set. (Koji Sekiguchi via yonik)
985
+
986
+ 11. SOLR-207: Changed distribution scripts to remove recursive find
987
+ and avoid use of "find -maxdepth" on platforms where it is not
988
+ supported. (yonik)
989
+
990
+ 12. SOLR-222: Changing writeLockTimeout in solrconfig.xml did not
991
+ change the effective timeout. (Koji Sekiguchi via yonik)
992
+
993
+ 13. Changed the SOLR-104 RequestDispatcher so that /select?qt=xxx can not
994
+ access handlers that start with "/". This makes path based authentication
995
+ possible for path based request handlers. (ryan)
996
+
997
+ 14. SOLR-214: Some servlet containers (including Tomcat and Resin) do not
998
+ obey the specified charset. Rather then letting the the container handle
999
+ it solr now uses the charset from the header contentType to decode posted
1000
+ content. Using the contentType: "text/xml; charset=utf-8" will force
1001
+ utf-8 encoding. If you do not specify a contentType, it will use the
1002
+ platform default. (Koji Sekiguchi via ryan)
1003
+
1004
+ 15. SOLR-241: Undefined system properties used in configuration files now
1005
+ cause a clear message to be logged rather than an obscure exception thrown.
1006
+ (Koji Sekiguchi via ehatcher)
1007
+
1008
+ Other Changes
1009
+ 1. Updated to Lucene 2.1
1010
+
1011
+ 2. Updated to Lucene 2007-05-20_00-04-53
1012
+
1013
+ ================== Release 1.1.0, 20061222 ==================
1014
+
1015
+ Status
1016
+ ------
1017
+ This is the first release since Solr joined the Incubator, and brings many
1018
+ new features and performance optimizations including highlighting,
1019
+ faceted browsing, and JSON/Python/Ruby response formats.
1020
+
1021
+
1022
+ Upgrading from previous Solr versions
1023
+ -------------------------------------
1024
+ Older Apache Solr installations can be upgraded by replacing
1025
+ the relevant war file with the new version. No changes to configuration
1026
+ files are needed and the index format has not changed.
1027
+
1028
+ The default version of the Solr XML response syntax has been changed to 2.2.
1029
+ Behavior can be preserved for those clients not explicitly specifying a
1030
+ version by adding a default to the request handler in solrconfig.xml
1031
+
1032
+ By default, Solr will no longer use a searcher that has not fully warmed,
1033
+ and requests will block in the meantime. To change back to the previous
1034
+ behavior of using a cold searcher in the event there is no other
1035
+ warm searcher, see the useColdSearcher config item in solrconfig.xml
1036
+
1037
+ The XML response format when adding multiple documents to the collection
1038
+ in a single <add> command has changed to return a single <result>.
1039
+
1040
+
1041
+ Detailed Change List
1042
+ --------------------
1043
+
1044
+ New Features
1045
+ 1. added support for setting Lucene's positionIncrementGap
1046
+ 2. Admin: new statistics for SolrIndexSearcher
1047
+ 3. Admin: caches now show config params on stats page
1048
+ 3. max() function added to FunctionQuery suite
1049
+ 4. postOptimize hook, mirroring the functionallity of the postCommit hook,
1050
+ but only called on an index optimize.
1051
+ 5. Ability to HTTP POST query requests to /select in addition to HTTP-GET
1052
+ 6. The default search field may now be overridden by requests to the
1053
+ standard request handler using the df query parameter. (Erik Hatcher)
1054
+ 7. Added DisMaxRequestHandler and SolrPluginUtils. (Chris Hostetter)
1055
+ 8. Support for customizing the QueryResponseWriter per request
1056
+ (Mike Baranczak / SOLR-16 / hossman)
1057
+ 9. Added KeywordTokenizerFactory (hossman)
1058
+ 10. copyField accepts dynamicfield-like names as the source.
1059
+ (Darren Erik Vengroff via yonik, SOLR-21)
1060
+ 11. new DocSet.andNot(), DocSet.andNotSize() (yonik)
1061
+ 12. Ability to store term vectors for fields. (Mike Klaas via yonik, SOLR-23)
1062
+ 13. New abstract BufferedTokenStream for people who want to write
1063
+ Tokenizers or TokenFilters that require arbitrary buffering of the
1064
+ stream. (SOLR-11 / yonik, hossman)
1065
+ 14. New RemoveDuplicatesToken - useful in situations where
1066
+ synonyms, stemming, or word-deliminater-ing produce identical tokens at
1067
+ the same position. (SOLR-11 / yonik, hossman)
1068
+ 15. Added highlighting to SolrPluginUtils and implemented in StandardRequestHandler
1069
+ and DisMaxRequestHandler (SOLR-24 / Mike Klaas via hossman,yonik)
1070
+ 16. SnowballPorterFilterFactory language is configurable via the "language"
1071
+ attribute, with the default being "English". (Bertrand Delacretaz via yonik, SOLR-27)
1072
+ 17. ISOLatin1AccentFilterFactory, instantiates ISOLatin1AccentFilter to remove accents.
1073
+ (Bertrand Delacretaz via yonik, SOLR-28)
1074
+ 18. JSON, Python, Ruby QueryResponseWriters: use wt="json", "python" or "ruby"
1075
+ (yonik, SOLR-31)
1076
+ 19. Make web admin pages return UTF-8, change Content-type declaration to include a
1077
+ space between the mime-type and charset (Philip Jacob, SOLR-35)
1078
+ 20. Made query parser default operator configurable via schema.xml:
1079
+ <solrQueryParser defaultOperator="AND|OR"/>
1080
+ The default operator remains "OR".
1081
+ 21. JAVA API: new version of SolrIndexSearcher.getDocListAndSet() which takes
1082
+ flags (Greg Ludington via yonik, SOLR-39)
1083
+ 22. A HyphenatedWordsFilter, a text analysis filter used during indexing to rejoin
1084
+ words that were hyphenated and split by a newline. (Boris Vitez via yonik, SOLR-41)
1085
+ 23. Added a CompressableField base class which allows fields of derived types to
1086
+ be compressed using the compress=true setting. The field type also gains the
1087
+ ability to specify a size threshold at which field data is compressed.
1088
+ (klaas, SOLR-45)
1089
+ 24. Simple faceted search support for fields (enumerating terms)
1090
+ and arbitrary queries added to both StandardRequestHandler and
1091
+ DisMaxRequestHandler. (hossman, SOLR-44)
1092
+ 25. In addition to specifying default RequestHandler params in the
1093
+ solrconfig.xml, support has been added for configuring values to be
1094
+ appended to the multi-val request params, as well as for configuring
1095
+ invariant params that can not overridden in the query. (hossman, SOLR-46)
1096
+ 26. Default operator for query parsing can now be specified with q.op=AND|OR
1097
+ from the client request, overriding the schema value. (ehatcher)
1098
+ 27. New XSLTResponseWriter does server side XSLT processing of XML Response.
1099
+ In the process, an init(NamedList) method was added to QueryResponseWriter
1100
+ which works the same way as SolrRequestHandler.
1101
+ (Bertrand Delacretaz / SOLR-49 / hossman)
1102
+ 28. json.wrf parameter adds a wrapper-function around the JSON response,
1103
+ useful in AJAX with dynamic script tags for specifying a JavaScript
1104
+ callback function. (Bertrand Delacretaz via yonik, SOLR-56)
1105
+ 29. autoCommit can be specified every so many documents added (klaas, SOLR-65)
1106
+ 30. ${solr.home}/lib directory can now be used for specifying "plugin" jars
1107
+ (hossman, SOLR-68)
1108
+ 31. Support for "Date Math" relative "NOW" when specifying values of a
1109
+ DateField in a query -- or when adding a document.
1110
+ (hossman, SOLR-71)
1111
+ 32. useColdSearcher control in solrconfig.xml prevents the first searcher
1112
+ from being used before it's done warming. This can help prevent
1113
+ thrashing on startup when multiple requests hit a cold searcher.
1114
+ The default is "false", preventing use before warm. (yonik, SOLR-77)
1115
+
1116
+ Changes in runtime behavior
1117
+ 1. classes reorganized into different packages, package names changed to Apache
1118
+ 2. force read of document stored fields in QuerySenderListener
1119
+ 3. Solr now looks in ./solr/conf for config, ./solr/data for data
1120
+ configurable via solr.solr.home system property
1121
+ 4. Highlighter params changed to be prefixed with "hl."; allow fragmentsize
1122
+ customization and per-field overrides on many options
1123
+ (Andrew May via klaas, SOLR-37)
1124
+ 5. Default param values for DisMaxRequestHandler should now be specified
1125
+ using a '<lst name="defaults">...</lst>' init param, for backwards
1126
+ compatability all init prams will be used as defaults if an init param
1127
+ with that name does not exist. (hossman, SOLR-43)
1128
+ 6. The DisMaxRequestHandler now supports multiple occurances of the "fq"
1129
+ param. (hossman, SOLR-44)
1130
+ 7. FunctionQuery.explain now uses ComplexExplanation to provide more
1131
+ accurate score explanations when composed in a BooleanQuery.
1132
+ (hossman, SOLR-25)
1133
+ 8. Document update handling locking is much sparser, allowing performance gains
1134
+ through multiple threads. Large commits also might be faster (klaas, SOLR-65)
1135
+ 9. Lazy field loading can be enabled via a solrconfig directive. This will be faster when
1136
+ not all stored fields are needed from a document (klaas, SOLR-52)
1137
+ 10. Made admin JSPs return XML and transform them with new XSL stylesheets
1138
+ (Otis Gospodnetic, SOLR-58)
1139
+ 11. If the "echoParams=explicit" request parameter is set, request parameters are copied
1140
+ to the output. In an XML output, they appear in new <lst name="params"> list inside
1141
+ the new <lst name="responseHeader"> element, which replaces the old <responseHeader>.
1142
+ Adding a version=2.1 parameter to the request produces the old format, for backwards
1143
+ compatibility (bdelacretaz and yonik, SOLR-59).
1144
+
1145
+ Optimizations
1146
+ 1. getDocListAndSet can now generate both a DocList and a DocSet from a
1147
+ single lucene query.
1148
+ 2. BitDocSet.intersectionSize(HashDocSet) no longer generates an intermediate
1149
+ set
1150
+ 3. OpenBitSet completed, replaces BitSet as the implementation for BitDocSet.
1151
+ Iteration is faster, and BitDocSet.intersectionSize(BitDocSet) and unionSize
1152
+ is between 3 and 4 times faster. (yonik, SOLR-15)
1153
+ 4. much faster unionSize when one of the sets is a HashDocSet: O(smaller_set_size)
1154
+ 5. Optimized getDocSet() for term queries resulting in a 36% speedup of facet.field
1155
+ queries where DocSets aren't cached (for example, if the number of terms in the field
1156
+ is larger than the filter cache.) (yonik)
1157
+ 6. Optimized facet.field faceting by as much as 500 times when the field has
1158
+ a single token per document (not multiValued & not tokenized) by using the
1159
+ Lucene FieldCache entry for that field to tally term counts. The first request
1160
+ utilizing the FieldCache will take longer than subsequent ones.
1161
+
1162
+ Bug Fixes
1163
+ 1. Fixed delete-by-id for field types who's indexed form is different
1164
+ from the printable form (mainly sortable numeric types).
1165
+ 2. Added escaping of attribute values in the XML response (Erik Hatcher)
1166
+ 3. Added empty extractTerms() to FunctionQuery to enable use in
1167
+ a MultiSearcher (Yonik)
1168
+ 4. WordDelimiterFilter sometimes lost token positionIncrement information
1169
+ 5. Fix reverse sorting for fields were sortMissingFirst=true
1170
+ (Rob Staveley, yonik)
1171
+ 6. Worked around a Jetty bug that caused invalid XML responses for fields
1172
+ containing non ASCII chars. (Bertrand Delacretaz via yonik, SOLR-32)
1173
+ 7. WordDelimiterFilter can throw exceptions if configured with both
1174
+ generate and catenate off. (Mike Klaas via yonik, SOLR-34)
1175
+ 8. Escape '>' in XML output (because ]]> is illegal in CharData)
1176
+ 9. field boosts weren't being applied and doc boosts were being applied to fields (klaas)
1177
+ 10. Multiple-doc update generates well-formed xml (klaas, SOLR-65)
1178
+ 11. Better parsing of pingQuery from solrconfig.xml (hossman, SOLR-70)
1179
+ 12. Fixed bug with "Distribution" page introduced when Versions were
1180
+ added to "Info" page (hossman)
1181
+ 13. Fixed HTML escaping issues with user input to analysis.jsp and action.jsp
1182
+ (hossman, SOLR-74)
1183
+
1184
+ Other Changes
1185
+ 1. Upgrade to Lucene 2.0 nightly build 2006-06-22, lucene SVN revision 416224,
1186
+ http://svn.apache.org/viewvc/lucene/java/trunk/CHANGES.txt?view=markup&pathrev=416224
1187
+ 2. Modified admin styles to improve display in Internet Explorer (Greg Ludington via billa, SOLR-6)
1188
+ 3. Upgrade to Lucene 2.0 nightly build 2006-07-15, lucene SVN revision 422302,
1189
+ 4. Included unique key field name/value (if available) in log message of add (billa, SOLR-18)
1190
+ 5. Updated to Lucene 2.0 nightly build 2006-09-07, SVN revision 462111
1191
+ 6. Added javascript to catch empty query in admin query forms (Tomislav Nakic-Alfirevic via billa, SOLR-48
1192
+ 7. blackslash escape * in ssh command used in snappuller for zsh compatibility, SOLR-63
1193
+ 8. check solr return code in admin scripts, SOLR-62
1194
+ 9. Updated to Lucene 2.0 nightly build 2006-11-15, SVN revision 475069
1195
+ 10. Removed src/apps containing the legacy "SolrTest" app (hossman, SOLR-3)
1196
+ 11. Simplified index.jsp and form.jsp, primarily by removing/hiding XML
1197
+ specific params, and adding an option to pick the output type. (hossman)
1198
+ 12. Added new numeric build property "specversion" to allow clean
1199
+ MANIFEST.MF files (hossman)
1200
+ 13. Added Solr/Lucene versions to "Info" page (hossman)
1201
+ 14. Explicitly set mime-type of .xsl files in web.xml to
1202
+ application/xslt+xml (hossman)
1203
+ 15. Config parsing should now work useing DOM Level 2 parsers -- Solr
1204
+ previously relied on getTextContent which is a DOM Level 3 addition
1205
+ (Alexander Saar via hossman, SOLR-78)
1206
+
1207
+ 2006/01/17 Solr open sourced, moves to Apache Incubator