honkster-acts_as_solr 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGE_LOG +233 -0
- data/LICENSE +19 -0
- data/README.markdown +118 -0
- data/README.rdoc +107 -0
- data/Rakefile +68 -0
- data/TESTING_THE_PLUGIN +25 -0
- data/VERSION +1 -0
- data/lib/acts_as_solr/acts_methods.rb +279 -0
- data/lib/acts_as_solr/class_methods.rb +236 -0
- data/lib/acts_as_solr/common_methods.rb +89 -0
- data/lib/acts_as_solr/deprecation.rb +61 -0
- data/lib/acts_as_solr/instance_methods.rb +166 -0
- data/lib/acts_as_solr/lazy_document.rb +18 -0
- data/lib/acts_as_solr/parser_methods.rb +201 -0
- data/lib/acts_as_solr/search_results.rb +68 -0
- data/lib/acts_as_solr/solr_fixtures.rb +13 -0
- data/lib/acts_as_solr/tasks/database.rake +16 -0
- data/lib/acts_as_solr/tasks/solr.rake +132 -0
- data/lib/acts_as_solr/tasks/test.rake +5 -0
- data/lib/acts_as_solr/tasks.rb +10 -0
- data/lib/acts_as_solr.rb +64 -0
- data/lib/solr/connection.rb +177 -0
- data/lib/solr/document.rb +75 -0
- data/lib/solr/exception.rb +13 -0
- data/lib/solr/field.rb +36 -0
- data/lib/solr/importer/array_mapper.rb +26 -0
- data/lib/solr/importer/delimited_file_source.rb +38 -0
- data/lib/solr/importer/hpricot_mapper.rb +27 -0
- data/lib/solr/importer/mapper.rb +51 -0
- data/lib/solr/importer/solr_source.rb +41 -0
- data/lib/solr/importer/xpath_mapper.rb +35 -0
- data/lib/solr/importer.rb +19 -0
- data/lib/solr/indexer.rb +52 -0
- data/lib/solr/request/add_document.rb +58 -0
- data/lib/solr/request/base.rb +36 -0
- data/lib/solr/request/commit.rb +29 -0
- data/lib/solr/request/delete.rb +48 -0
- data/lib/solr/request/dismax.rb +46 -0
- data/lib/solr/request/index_info.rb +22 -0
- data/lib/solr/request/modify_document.rb +46 -0
- data/lib/solr/request/optimize.rb +19 -0
- data/lib/solr/request/ping.rb +36 -0
- data/lib/solr/request/select.rb +54 -0
- data/lib/solr/request/spellcheck.rb +30 -0
- data/lib/solr/request/standard.rb +402 -0
- data/lib/solr/request/update.rb +23 -0
- data/lib/solr/request.rb +26 -0
- data/lib/solr/response/add_document.rb +17 -0
- data/lib/solr/response/base.rb +42 -0
- data/lib/solr/response/commit.rb +15 -0
- data/lib/solr/response/delete.rb +13 -0
- data/lib/solr/response/dismax.rb +8 -0
- data/lib/solr/response/index_info.rb +26 -0
- data/lib/solr/response/modify_document.rb +17 -0
- data/lib/solr/response/optimize.rb +14 -0
- data/lib/solr/response/ping.rb +26 -0
- data/lib/solr/response/ruby.rb +42 -0
- data/lib/solr/response/select.rb +17 -0
- data/lib/solr/response/spellcheck.rb +20 -0
- data/lib/solr/response/standard.rb +60 -0
- data/lib/solr/response/xml.rb +39 -0
- data/lib/solr/response.rb +27 -0
- data/lib/solr/solrtasks.rb +27 -0
- data/lib/solr/util.rb +32 -0
- data/lib/solr/xml.rb +44 -0
- data/lib/solr.rb +26 -0
- data/solr/CHANGES.txt +1207 -0
- data/solr/LICENSE.txt +712 -0
- data/solr/NOTICE.txt +90 -0
- data/solr/etc/jetty.xml +205 -0
- data/solr/etc/webdefault.xml +379 -0
- data/solr/lib/easymock.jar +0 -0
- data/solr/lib/jetty-6.1.3.jar +0 -0
- data/solr/lib/jetty-util-6.1.3.jar +0 -0
- data/solr/lib/jsp-2.1/ant-1.6.5.jar +0 -0
- data/solr/lib/jsp-2.1/core-3.1.1.jar +0 -0
- data/solr/lib/jsp-2.1/jsp-2.1.jar +0 -0
- data/solr/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
- data/solr/lib/servlet-api-2.4.jar +0 -0
- data/solr/lib/servlet-api-2.5-6.1.3.jar +0 -0
- data/solr/lib/xpp3-1.1.3.4.O.jar +0 -0
- data/solr/solr/README.txt +52 -0
- data/solr/solr/bin/abc +176 -0
- data/solr/solr/bin/abo +176 -0
- data/solr/solr/bin/backup +108 -0
- data/solr/solr/bin/backupcleaner +142 -0
- data/solr/solr/bin/commit +128 -0
- data/solr/solr/bin/optimize +129 -0
- data/solr/solr/bin/readercycle +129 -0
- data/solr/solr/bin/rsyncd-disable +77 -0
- data/solr/solr/bin/rsyncd-enable +76 -0
- data/solr/solr/bin/rsyncd-start +145 -0
- data/solr/solr/bin/rsyncd-stop +105 -0
- data/solr/solr/bin/scripts-util +83 -0
- data/solr/solr/bin/snapcleaner +148 -0
- data/solr/solr/bin/snapinstaller +168 -0
- data/solr/solr/bin/snappuller +248 -0
- data/solr/solr/bin/snappuller-disable +77 -0
- data/solr/solr/bin/snappuller-enable +77 -0
- data/solr/solr/bin/snapshooter +109 -0
- data/solr/solr/conf/admin-extra.html +31 -0
- data/solr/solr/conf/protwords.txt +21 -0
- data/solr/solr/conf/schema.xml +126 -0
- data/solr/solr/conf/scripts.conf +24 -0
- data/solr/solr/conf/solrconfig.xml +458 -0
- data/solr/solr/conf/stopwords.txt +57 -0
- data/solr/solr/conf/synonyms.txt +31 -0
- data/solr/solr/conf/xslt/example.xsl +132 -0
- data/solr/solr/conf/xslt/example_atom.xsl +63 -0
- data/solr/solr/conf/xslt/example_rss.xsl +62 -0
- data/solr/start.jar +0 -0
- data/solr/webapps/solr.war +0 -0
- data/test/config/solr.yml +2 -0
- data/test/db/connections/mysql/connection.rb +10 -0
- data/test/db/connections/sqlite/connection.rb +8 -0
- data/test/db/migrate/001_create_books.rb +15 -0
- data/test/db/migrate/002_create_movies.rb +12 -0
- data/test/db/migrate/003_create_categories.rb +11 -0
- data/test/db/migrate/004_create_electronics.rb +16 -0
- data/test/db/migrate/005_create_authors.rb +12 -0
- data/test/db/migrate/006_create_postings.rb +9 -0
- data/test/db/migrate/007_create_posts.rb +13 -0
- data/test/db/migrate/008_create_gadgets.rb +11 -0
- data/test/fixtures/authors.yml +9 -0
- data/test/fixtures/books.yml +13 -0
- data/test/fixtures/categories.yml +7 -0
- data/test/fixtures/db_definitions/mysql.sql +41 -0
- data/test/fixtures/electronics.yml +49 -0
- data/test/fixtures/movies.yml +9 -0
- data/test/fixtures/postings.yml +10 -0
- data/test/functional/acts_as_solr_test.rb +413 -0
- data/test/functional/association_indexing_test.rb +37 -0
- data/test/functional/faceted_search_test.rb +163 -0
- data/test/functional/multi_solr_search_test.rb +51 -0
- data/test/models/author.rb +10 -0
- data/test/models/book.rb +10 -0
- data/test/models/category.rb +8 -0
- data/test/models/electronic.rb +21 -0
- data/test/models/gadget.rb +9 -0
- data/test/models/movie.rb +17 -0
- data/test/models/novel.rb +2 -0
- data/test/models/post.rb +3 -0
- data/test/models/posting.rb +11 -0
- data/test/test_helper.rb +51 -0
- data/test/unit/acts_methods_shoulda.rb +68 -0
- data/test/unit/class_methods_shoulda.rb +85 -0
- data/test/unit/common_methods_shoulda.rb +111 -0
- data/test/unit/instance_methods_shoulda.rb +318 -0
- data/test/unit/lazy_document_shoulda.rb +34 -0
- data/test/unit/parser_instance.rb +19 -0
- data/test/unit/parser_methods_shoulda.rb +268 -0
- data/test/unit/solr_instance.rb +44 -0
- data/test/unit/test_helper.rb +22 -0
- metadata +239 -0
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# The ASF licenses this file to You under the Apache License, Version 2.0
|
3
|
+
# (the "License"); you may not use this file except in compliance with
|
4
|
+
# the License. You may obtain a copy of the License at
|
5
|
+
#
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
#
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
11
|
+
# See the License for the specific language governing permissions and
|
12
|
+
# limitations under the License.
|
13
|
+
|
14
|
+
# TODO: fill out Solr tasks: start, stop, ping, optimize, etc.
|
15
|
+
|
16
|
+
require 'rake'
|
17
|
+
require 'rake/tasklib'
|
18
|
+
|
19
|
+
module Solr
|
20
|
+
namespace :solr do
|
21
|
+
desc "Start Solr"
|
22
|
+
task :start do
|
23
|
+
# TODO: actually start it up!
|
24
|
+
puts "Starting..."
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/solr/util.rb
ADDED
@@ -0,0 +1,32 @@
|
|
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
|
+
class Solr::Util
|
14
|
+
# paired_array_each([key1,value1,key2,value2]) yields twice:
|
15
|
+
# |key1,value1| and |key2,value2|
|
16
|
+
def self.paired_array_each(a, &block)
|
17
|
+
0.upto(a.size / 2 - 1) do |i|
|
18
|
+
n = i * 2
|
19
|
+
yield(a[n], a[n+1])
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# paired_array_to_hash([key1,value1,key2,value2]) => {key1 => value1, key2, value2}
|
24
|
+
def self.paired_array_to_hash(a)
|
25
|
+
Hash[*a]
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.query_parser_escape(string)
|
29
|
+
# backslash prefix everything that isn't a word character
|
30
|
+
string.gsub(/(\W)/,'\\\\\1')
|
31
|
+
end
|
32
|
+
end
|
data/lib/solr/xml.rb
ADDED
@@ -0,0 +1,44 @@
|
|
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
|
+
module Solr::XML
|
14
|
+
end
|
15
|
+
|
16
|
+
begin
|
17
|
+
|
18
|
+
# If we can load rubygems and libxml-ruby...
|
19
|
+
require 'rubygems'
|
20
|
+
require 'xml/libxml'
|
21
|
+
raise "acts_as_solr requires libxml-ruby 0.7 or greater" unless XML::Node.public_instance_methods.include?("attributes")
|
22
|
+
|
23
|
+
# then make a few modifications to XML::Node so it can stand in for REXML::Element
|
24
|
+
class XML::Node
|
25
|
+
# element.add_element(another_element) should work
|
26
|
+
alias_method :add_element, :<<
|
27
|
+
|
28
|
+
|
29
|
+
# element.text = "blah" should work
|
30
|
+
def text=(x)
|
31
|
+
self << x.to_s
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# And use XML::Node for our XML generation
|
36
|
+
Solr::XML::Element = XML::Node
|
37
|
+
|
38
|
+
rescue LoadError => e # If we can't load either rubygems or libxml-ruby
|
39
|
+
puts "Requiring REXML"
|
40
|
+
# Just use REXML.
|
41
|
+
require 'rexml/document'
|
42
|
+
Solr::XML::Element = REXML::Element
|
43
|
+
|
44
|
+
end
|
data/lib/solr.rb
ADDED
@@ -0,0 +1,26 @@
|
|
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
|
+
module Solr; end
|
14
|
+
require File.expand_path("#{File.dirname(__FILE__)}/solr/exception")
|
15
|
+
require File.expand_path("#{File.dirname(__FILE__)}/solr/request")
|
16
|
+
require File.expand_path("#{File.dirname(__FILE__)}/solr/connection")
|
17
|
+
require File.expand_path("#{File.dirname(__FILE__)}/solr/response")
|
18
|
+
require File.expand_path("#{File.dirname(__FILE__)}/solr/util")
|
19
|
+
require File.expand_path("#{File.dirname(__FILE__)}/solr/xml")
|
20
|
+
require File.expand_path("#{File.dirname(__FILE__)}/solr/importer")
|
21
|
+
require File.expand_path("#{File.dirname(__FILE__)}/solr/indexer")
|
22
|
+
require File.expand_path("#{File.dirname(__FILE__)}/solr/xml")
|
23
|
+
require File.expand_path("#{File.dirname(__FILE__)}/solr/field")
|
24
|
+
require File.expand_path("#{File.dirname(__FILE__)}/solr/request/base")
|
25
|
+
require File.expand_path("#{File.dirname(__FILE__)}/solr/document")
|
26
|
+
require File.expand_path("#{File.dirname(__FILE__)}/solr/request/update")
|
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
|