| Index: common-build.xml |
| =================================================================== |
| --- common-build.xml (revision 615010) |
| +++ common-build.xml (working copy) |
| @@ -144,7 +144,7 @@ |
| </echo> |
| </target> |
| |
| - <target name="init" depends="javacc-uptodate-check, javacc-notice, jflex-uptodate-check, jflex-notice"> |
| + <target name="init" depends="javacc-uptodate-check, javacc-notice, jflex-uptodate-check, jflex-notice, changes-uptodate-check"> |
| </target> |
| |
| <target name="jflex-uptodate-check"> |
| @@ -211,7 +211,7 @@ |
| </fail> |
| </target> |
| |
| - <target name="compile-core" depends="init, clover" |
| + <target name="compile-core" depends="init, clover, changes-to-html" |
| description="Compiles core classes"> |
| <compile |
| srcdir="src/java" |
| @@ -526,17 +526,16 @@ |
| </sequential> |
| </macrodef> |
| |
| + <target name="changes-uptodate-check"> |
| + <uptodate property="changes.file.uptodate" targetfile="Changes.html"> |
| + <srcfiles dir= "." includes="CHANGES.txt,*.css,*.pl"/> |
| + </uptodate> |
| + </target> |
| |
| -</project> |
| + <target name="changes-to-html" unless="changes.file.uptodate" depends="init"> |
| + <exec executable="perl" input="CHANGES.txt" output="Changes.html" failonerror="true"> |
| + <arg value="${common.dir}/changes2html.pl"/> |
| + </exec> |
| + </target> |
| |
| - |
| - |
| - |
| - |
| - |
| - |
| - |
| - |
| - |
| - |
| - |
| +</project> |
| Index: src/site/src/documentation/content/xdocs/site.xml |
| =================================================================== |
| --- src/site/src/documentation/content/xdocs/site.xml (revision 615010) |
| +++ src/site/src/documentation/content/xdocs/site.xml (working copy) |
| @@ -43,6 +43,7 @@ |
| <!-- keep in submenu items alpha order --> |
| <docs label="Documentation"> |
| <overview label="Overview" href="index.html"/> |
| + <changes label="Changes" href="http://svn.apache.org/viewvc/lucene/java/trunk/Changes.html?view=co" description="History of Changes"/> |
| <javadoc label="Javadocs"> |
| <javadoc-all label="All" href="ext:javadocs-all"/> |
| <javadoc-core label="Core" href="ext:javadocs-core"/> |
| Index: changes2html.pl |
| =================================================================== |
| --- changes2html.pl (revision 0) |
| +++ changes2html.pl (revision 0) |
| @@ -0,0 +1,440 @@ |
| +#!/usr/bin/perl |
| +# |
| +# Transforms Lucene Java's CHANGES.txt into Changes.html |
| +# |
| +# Input is on STDIN, output is to STDOUT |
| +# |
| +# |
| +# Licensed to the Apache Software Foundation (ASF) under one or more |
| +# contributor license agreements. See the NOTICE file distributed with |
| +# this work for additional information regarding copyright ownership. |
| +# The ASF licenses this file to You under the Apache License, Version 2.0 |
| +# (the "License"); you may not use this file except in compliance with |
| +# the License. You may obtain a copy of the License at |
| +# |
| +# http://www.apache.org/licenses/LICENSE-2.0 |
| +# |
| +# Unless required by applicable law or agreed to in writing, software |
| +# distributed under the License is distributed on an "AS IS" BASIS, |
| +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| +# See the License for the specific language governing permissions and |
| +# limitations under the License. |
| +# |
| + |
| +use strict; |
| +use warnings; |
| + |
| +my $jira_url_prefix = 'http://issues.apache.org/jira/browse/'; |
| +my $bugzilla_url_prefix = 'http://issues.apache.org/bugzilla/show_bug.cgi?id='; |
| + |
| +my %release_dates = ( '0.01' => '2000-03-30', '0.04' => '2000-04-19', |
| + '1.0' => '2000-10-04', '1.01b' => '2001-06-02', |
| + '1.2 RC1' => '2001-10-02', '1.2 RC2' => '2001-10-19', |
| + '1.2 RC3' => '2002-01-27', '1.2 RC4' => '2002-02-14', |
| + '1.2 RC5' => '2002-05-14', '1.2 final' => '2002-06-13', |
| + '1.3 RC1' => '2003-03-24', '1.3 RC2' => '2003-10-22', |
| + '1.3 RC3' => '2003-11-25', '1.3 final' => '2003-12-26', |
| + '1.4 RC1' => '2004-03-29', '1.4 RC2' => '2004-03-30', |
| + '1.4 RC3' => '2004-05-11', '1.4 final' => '2004-07-01', |
| + '1.4.1' => '2004-08-02', '1.4.2' => '2004-10-01', |
| + '1.4.3' => '2004-12-07', '1.9 RC1' => '2006-02-21', |
| + '1.9 final' => '2006-02-27', '1.9.1' => '2006-03-02', |
| + '2.0.0' => '2006-05-26', '2.1.0' => '2007-02-14', |
| + '2.2.0' => '2007-06-19', '2.3.0' => '2008-01-23' ); |
| +my $month_regex = '(?i:Jan(?:|\.|uary)|Feb(?:|\.|ruary)|Mar(?:|\.|ch)' |
| + . '|Apr(?:|\.|il)|May|Jun(?:|\.|e)|Jul(?:|\.|y)|Aug(?:|\.|ust)' |
| + . '|Sep(?:|\.|t(?:|\.|ember))|Oct(?:|\.|ober)|Nov(?:|\.|ember)' |
| + . '|Dec(?:|\.|ember))'; |
| +my %month_nums = ( 'Jan' => '01', 'Jan.' => '01', 'January' => '01', |
| + 'Feb' => '02', 'Feb.' => '02', 'February' => '02', |
| + 'Mar' => '03', 'Mar.' => '03', 'March' => '03', |
| + 'Apr' => '04', 'Apr.' => '04', 'April' => '04', |
| + 'May' => '05', |
| + 'Jun' => '06', 'Jun.' => '06', 'June' => '06', |
| + 'Jul' => '07', 'Jul.' => '07', 'July' => '07', |
| + 'Aug' => '08', 'Aug.' => '08', 'August' => '08', |
| + 'Sep' => '09', 'Sep.' => '09', |
| + 'Sept' => '09', 'Sept.' => '09', 'September' => '09', |
| + 'Oct' => '10', 'Oct.' => '10', 'October' => '10', |
| + 'Nov' => '11', 'Nov.' => '11', 'November' => '11', |
| + 'Dec' => '12', 'Dec.' => '12', 'December' => '12' ); |
| + |
| + |
| +my $title = undef; |
| +my $release = undef; |
| +my $reldate = undef; |
| +my $relinfo = undef; |
| +my $sections = undef; |
| +my $items = undef; |
| +my @releases = (); |
| + |
| +my @lines = <>; # Get all input at once |
| + |
| +# |
| +# Parse input and build hierarchical release structure in @releases |
| +# |
| +for (my $line_num = 0 ; $line_num <= $#lines ; ++$line_num) |
| +{ |
| + $_ = $lines[$line_num]; |
| + |
| + next unless (/\S/); # Skip blank lines |
| + |
| + next if (/^\s*\$Id(?::.*)?\$/); # Skip $Id$ lines |
| + |
| + unless ($title) |
| + { |
| + if (/\S/) |
| + { |
| + s/^\s+//; # Trim leading whitespace |
| + s/\s+$//; # Trim trailing whitespace |
| + } |
| + $title = $_; |
| + next; |
| + } |
| + |
| + if (/\s*===+\s*(.*?)\s*===+\s*/) # New-style release headings |
| + { |
| + $release = $1; |
| + $release =~ s/^release\s*//i; # Trim "Release " prefix |
| + ($release, $relinfo) = ($release =~ /^(\d+(?:\.\d+)*|Trunk)\s*(.*)/i); |
| + $relinfo =~ s/\s*:\s*$//; # Trim trailing colon |
| + $relinfo =~ s/^\s*,\s*//; # Trim leading comma |
| + ($reldate, $relinfo) = get_release_date($release, $relinfo); |
| + $sections = []; |
| + push @releases, [ $release, $reldate, $relinfo, $sections ]; |
| + $items = undef; |
| + next; |
| + } |
| + |
| + if (/^\s*([01](?:\.[0-9]{1,2}){1,2}[a-z]?(?:\s*(?:RC\d+|final))?)\s* |
| + ((?:200[0-7]-.*|.*,.*200[0-7].*)?)$/x) # Old-style release heading |
| + { |
| + $release = $1; |
| + $relinfo = $2; |
| + $relinfo =~ s/\s*:\s*$//; # Trim trailing colon |
| + $relinfo =~ s/^\s*,\s*//; # Trim leading comma |
| + ($reldate, $relinfo) = get_release_date($release, $relinfo); |
| + $sections = []; |
| + push @releases, [ $release, $reldate, $relinfo, $sections ]; |
| + $items = undef; |
| + next; |
| + } |
| + |
| + # Section heading: no leading whitespace, initial word capitalized, |
| + # five words or less, and no trailing punctuation |
| + if (/^([A-Z]\S*(?:\s+\S+){0,4})(?<![-.:;!()])\s*$/) |
| + { |
| + my $heading = $1; |
| + $items = []; |
| + push @$sections, [ $heading, $items ]; |
| + next; |
| + } |
| + |
| + # Handle earlier releases without sections - create a headless section |
| + unless ($items) |
| + { |
| + $items = []; |
| + push @$sections, [ undef, $items ]; |
| + } |
| + |
| + my $type; |
| + if (@$items) # A list item has been encountered in this section before |
| + { |
| + $type = $items->[0]; # 0th position of items array is list type |
| + } |
| + else |
| + { |
| + $type = get_list_type($_); |
| + push @$items, $type; |
| + } |
| + |
| + if ($type eq 'numbered') # The modern items list style |
| + { # List item boundary is another numbered item or an unindented line |
| + my $line; |
| + my $item = $_; |
| + $item =~ s/^(\s{0,2}\d+\.\s*)//; # Trim the leading item number |
| + my $leading_ws_width = length($1); |
| + $item =~ s/\s+$//; # Trim trailing whitespace |
| + $item .= "\n"; |
| + |
| + while ($line_num < $#lines |
| + && ($line = $lines[++$line_num]) !~ /^(?:\s{0,2}\d+\.\s*\S|\S)/) |
| + { |
| + $line =~ s/^\s{$leading_ws_width}//; # Trim leading whitespace |
| + $line =~ s/\s+$//; # Trim trailing whitespace |
| + $item .= "$line\n"; |
| + } |
| + $item =~ s/\n+\Z/\n/; # Trim trailing blank lines |
| + push @$items, $item; |
| + --$line_num unless ($line_num == $#lines); |
| + } |
| + elsif ($type eq 'paragraph') |
| + { # List item boundary is a blank line |
| + my $line; |
| + my $item = $_; |
| + $item =~ s/^(\s+)//; |
| + my $leading_ws_width = defined($1) ? length($1) : 0; |
| + $item =~ s/\s+$//; # Trim trailing whitespace |
| + $item .= "\n"; |
| + |
| + while ($line_num < $#lines |
| + and ($line = $lines[++$line_num]) =~ /\S/) |
| + { |
| + $line =~ s/^\s{$leading_ws_width}//; # Trim leading whitespace |
| + $line =~ s/\s+$//; # Trim trailing whitespace |
| + $item .= "$line\n"; |
| + } |
| + push @$items, $item; |
| + --$line_num unless ($line_num == $#lines); |
| + } |
| + else # $type is one of the bulleted types |
| + { # List item boundary is another bullet or a blank line |
| + my $line; |
| + my $item = $_; |
| + $item =~ s/^(\s*$type\s*)//; # Trim the leading bullet |
| + my $leading_ws_width = length($1); |
| + $item =~ s/\s+$//; # Trim trailing whitespace |
| + $item .= "\n"; |
| + |
| + while ($line_num < $#lines |
| + and ($line = $lines[++$line_num]) !~ /^\s*(?:$type|\Z)/) |
| + { |
| + $line =~ s/^\s{$leading_ws_width}//; # Trim leading whitespace |
| + $line =~ s/\s+$//; # Trim trailing whitespace |
| + $item .= "$line\n"; |
| + } |
| + push @$items, $item; |
| + --$line_num unless ($line_num == $#lines); |
| + } |
| +} |
| + |
| +# |
| +# Print HTML-ified version to STDOUT |
| +# |
| +print<<"__HTML_HEADER__"; |
| +<!-- |
| +********************************************************** |
| +** WARNING: This file is generated from CHANGES.txt by the |
| +** Perl script 'changes2html.pl. |
| +** Do *not* edit this file! |
| +********************************************************** |
| + |
| +**************************************************************************** |
| +* Licensed to the Apache Software Foundation (ASF) under one or more |
| +* contributor license agreements. See the NOTICE file distributed with |
| +* this work for additional information regarding copyright ownership. |
| +* The ASF licenses this file to You under the Apache License, Version 2.0 |
| +* (the "License"); you may not use this file except in compliance with |
| +* the License. You may obtain a copy of the License at |
| +* |
| +* http://www.apache.org/licenses/LICENSE-2.0 |
| +* |
| +* Unless required by applicable law or agreed to in writing, software |
| +* distributed under the License is distributed on an "AS IS" BASIS, |
| +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| +* See the License for the specific language governing permissions and |
| +* limitations under the License. |
| +**************************************************************************** |
| +--> |
| +<html> |
| +<head> |
| + <title>$title</title> |
| + <link rel="stylesheet" href="ChangesFancyStyle.css" title="Fancy"> |
| + <link rel="alternate stylesheet" href="ChangesSimpleStyle.css" title="Simple"> |
| + <META http-equiv="Content-Type" content="text/html; charset=UTF-8"/> |
| + <!-- ----------- toggleList javascript ------------ --> |
| + <SCRIPT> |
| + function toggleList(e){ |
| + element = document.getElementById(e).style; |
| + element.display == 'none' ? element.display = 'block' : element.display='none'; |
| + } |
| + </SCRIPT> |
| +</head> |
| +<body> |
| + |
| +<h1>$title</h1> |
| + |
| +__HTML_HEADER__ |
| + |
| +my $heading; |
| +my $display = 'block'; |
| +my $relcnt = 0; |
| +my $header = '<h2>'; |
| +for my $rel (@releases) |
| +{ |
| + $relcnt = $relcnt + 1; |
| + $display = 'none' |
| + if ($relcnt > 2); |
| + $header = '<h3>' |
| + if ($relcnt > 2); |
| + |
| + if ($relcnt == 3) { |
| + print "<h2><a href=\"javascript:toggleList('older')\">"; |
| + print "Older Releases"; |
| + print "</a></h3>\n"; |
| + print "<ul id=\"older\" style=\"display:none\">\n" |
| + } |
| + |
| + ($release, $reldate, $relinfo, $sections) = @$rel; |
| + |
| + # The first section heading is undefined for the older sectionless releases |
| + my $has_release_sections = $sections->[0][0]; |
| + |
| + (my $relid = lc($release)) =~ s/\s+/_/g; |
| + print "$header<a href=\"javascript:toggleList('$relid')\">"; |
| + print "Release " unless ($release =~ /^trunk$/i); |
| + print "$release $relinfo"; |
| + print " [$reldate]" unless ($reldate eq 'unknown'); |
| + print "</a></h3>\n"; |
| + print "<ul id=\"$relid\" style=\"display:$display\">\n" |
| + if ($has_release_sections); |
| + |
| + for my $section (@$sections) |
| + { |
| + ($heading, $items) = @$section; |
| + (my $sectid = lc($heading)) =~ s/\s+/_/g; |
| + my $numItemsStr = $#{$items}>0 ? "($#{$items})" : "(none)"; |
| + |
| + print " <li><a href=\"javascript:toggleList('$relid.$sectid')\">", |
| + ($heading || ''), "</a>\n", " $numItemsStr" |
| + if ($has_release_sections); |
| + my $list = ($items->[0] || '') eq 'numbered' ? 'ol' : 'ul'; |
| + my $listid = $sectid ? "$relid.$sectid" : $relid; |
| + print " <$list id=\"$listid\" style=\"display:none\">\n"; |
| + |
| + for my $itemnum (1..$#{$items}) |
| + { |
| + my $item = $items->[$itemnum]; |
| + $item =~ s:\s*(\([^)"]+?\))\s*$:<br />$1:; # Separate attribution |
| + $item =~ s:\n{2,}:\n<p/>\n:g; # Preserve paragraph breaks |
| + $item =~ s{(?:${jira_url_prefix})?(LUCENE-\d+)} # Link to JIRA |
| + {<a href="${jira_url_prefix}$1">$1</a>}g; |
| + $item =~ s{((?i:bug|patch)\s*#?\s*(\d+))} # Link to Bugzilla |
| + {<a href="${bugzilla_url_prefix}$2">$1</a>}g; |
| + print " <li>$item </li>\n"; |
| + } |
| + print " </$list>\n"; |
| + print " </li>\n" if ($has_release_sections); |
| + } |
| + print "</ul>\n" if ($has_release_sections); |
| +} |
| + |
| +print "</ul>\n" if ($relcnt > 3); |
| + |
| +print "</body>\n</html>\n"; |
| + |
| +# |
| +# Subroutine: get_list_type |
| +# |
| +# Takes one parameter: |
| +# |
| +# - The first line of a sub-section/point |
| +# |
| +# Returns one scalar: |
| +# |
| +# - The list type: 'numbered'; or one of the bulleted types '-', or '.' or |
| +# 'paragraph'. |
| +# |
| +sub get_list_type |
| +{ |
| + my $first_list_item_line = shift; |
| + my $type = 'paragraph'; # Default to paragraph type |
| + |
| + if ($first_list_item_line =~ /^\s{0,2}\d+\.\s+\S+/) |
| + { |
| + $type = 'numbered'; |
| + } |
| + elsif ($first_list_item_line =~ /^\s*([-.])\s+\S+/) |
| + { |
| + $type = $1; |
| + } |
| + return $type; |
| +} |
| + |
| + |
| +# |
| +# Subroutine: get_release_date |
| +# |
| +# Takes two parameters: |
| +# |
| +# - Release name |
| +# - Release info, potentially including a release date |
| +# |
| +# Returns two scalars: |
| +# |
| +# - The release date, in format YYYY-MM-DD |
| +# - The remainder of the release info (if any), with release date stripped |
| +# |
| +sub get_release_date |
| +{ |
| + my $release = shift; |
| + my $relinfo = shift; |
| + |
| + my ($year, $month, $dom, $reldate); |
| + |
| + if ($relinfo) |
| + { |
| + # YYYY-MM-DD or YYYY-M-D or YYYY-MM-D or YYYY-M-DD |
| + if ($relinfo =~ s:\s*(2\d\d\d)([-./]) |
| + (1[012]|0?[1-9])\2 |
| + ([12][0-9]|30|31|0?[1-9])\s*: :x) |
| + { |
| + $year = $1; |
| + $month = $3; |
| + $dom = $4; |
| + $dom = "0$dom" if (length($dom) == 1); |
| + $reldate = "$year-$month-$dom"; |
| + } |
| + # MM-DD-YYYY or M-D-YYYY or MM-D-YYYY or M-DD-YYYY |
| + elsif ($relinfo =~ s:\s*(1[012]|0?[1-9])([-./]) |
| + ([12][0-9]|30|31|0?[1-9])\2 |
| + (2\d\d\d)\s*: :x) |
| + { |
| + $month = $1; |
| + $dom = $3; |
| + $dom = "0$dom" if (length($dom) == 1); |
| + $year = $4; |
| + $reldate = "$year-$month-$dom"; |
| + } |
| + # MMMMM DD, YYYY or MMMMM DDth, YYYY |
| + elsif ($relinfo =~ s:($month_regex)\s* |
| + ([12][0-9]|30|31|0?[1-9])((st|rd|th)\.?)?,?\s* |
| + (2\d\d\d)\s*: :x) |
| + { |
| + $month = $month_nums{$1}; |
| + $dom = $2; |
| + $dom = "0$dom" if (length($dom) == 1); |
| + $year = $5; |
| + $reldate = "$year-$month-$dom"; |
| + } |
| + # DD MMMMM YYYY |
| + elsif ($relinfo =~ s:([12][0-9]|30|31|0?[1-9])(\s+|[-/.]) |
| + ($month_regex)\2 |
| + (2\d\d\d)\s*: :x) |
| + { |
| + $dom = $1; |
| + $dom = "0$dom" if (length($dom) == 1); |
| + $month = $month_nums{$3}; |
| + $year = $4; |
| + $reldate = "$year-$month-$dom"; |
| + } |
| + } |
| + unless ($reldate) |
| + { # No date found in $relinfo |
| + # Handle '1.2 RC6', which should be '1.2 final' |
| + $release = '1.2 final' if ($release eq '1.2 RC6'); |
| + |
| + if (exists($release_dates{$release})) |
| + { |
| + $reldate = $release_dates{$release}; |
| + } |
| + else |
| + { |
| + $reldate = 'unknown'; |
| + } |
| + } |
| + $relinfo =~ s/,?\s*$//; # Trim trailing comma and whitespace |
| + return ($reldate, $relinfo); |
| +} |
| + |
| +1; |
| |
| Property changes on: changes2html.pl |
| ___________________________________________________________________ |
| Name: svn:executable |
| + * |
| Name: svn:eol-style |
| + native |
| |
| Index: ChangesSimpleStyle.css |
| =================================================================== |
| --- ChangesSimpleStyle.css (revision 0) |
| +++ ChangesSimpleStyle.css (revision 0) |
| @@ -0,0 +1,32 @@ |
| +body {
|
| + font-family: Courier New, monospace;
|
| + font-size: 10pt;
|
| +}
|
| +
|
| +h1 {
|
| + font-family: Courier New, monospace;
|
| + font-size: 10pt;
|
| +}
|
| +
|
| +h2 {
|
| + font-family: Courier New, monospace;
|
| + font-size: 10pt;
|
| +}
|
| +
|
| +h3 {
|
| + font-family: Courier New, monospace;
|
| + font-size: 10pt;
|
| +}
|
| +
|
| +a:link {
|
| + color: blue;
|
| +}
|
| +
|
| +a:visited {
|
| + color: purple;
|
| +}
|
| +
|
| +li {
|
| + margin-top: 1em;
|
| + margin-bottom: 1em;
|
| +} |
| \ No newline at end of file |
| Index: ChangesFancyStyle.css |
| =================================================================== |
| --- ChangesFancyStyle.css (revision 0) |
| +++ ChangesFancyStyle.css (revision 0) |
| @@ -0,0 +1,30 @@ |
| +body {
|
| + font-family: Georgia, "Times New Roman", Times, serif;
|
| + color: black;
|
| + background-color: light-grey
|
| +}
|
| +
|
| +h1 {
|
| + font-family: Helvetica, Geneva, Arial, SunSans-Regular, sans-serif
|
| + color: yellow;
|
| + background-color: lightblue
|
| +}
|
| +
|
| +h2 {
|
| + font-family: Helvetica, Geneva, Arial, SunSans-Regular, sans-serif
|
| + color: yellow;
|
| + background-color: lightblue
|
| +}
|
| +
|
| +a:link {
|
| + color: blue
|
| +}
|
| +
|
| +a:visited {
|
| + color: purple
|
| +}
|
| +
|
| +li {
|
| + margin-top: 1em;
|
| + margin-bottom: 1em;
|
| +} |
| \ No newline at end of file |
| Index: Changes.html |
| =================================================================== |
| --- Changes.html (revision 0) |
| +++ Changes.html (revision 0) |
| @@ -0,0 +1,1890 @@ |
| +<!-- |
| +********************************************************** |
| +** WARNING: This file is generated from CHANGES.txt by the |
| +** Perl script 'changes2html.pl. |
| +** Do *not* edit this file! |
| +********************************************************** |
| + |
| +**************************************************************************** |
| +* Licensed to the Apache Software Foundation (ASF) under one or more |
| +* contributor license agreements. See the NOTICE file distributed with |
| +* this work for additional information regarding copyright ownership. |
| +* The ASF licenses this file to You under the Apache License, Version 2.0 |
| +* (the "License"); you may not use this file except in compliance with |
| +* the License. You may obtain a copy of the License at |
| +* |
| +* http://www.apache.org/licenses/LICENSE-2.0 |
| +* |
| +* Unless required by applicable law or agreed to in writing, software |
| +* distributed under the License is distributed on an "AS IS" BASIS, |
| +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| +* See the License for the specific language governing permissions and |
| +* limitations under the License. |
| +**************************************************************************** |
| +--> |
| +<html> |
| +<head> |
| + <title>Lucene Change Log</title> |
| + <link rel="stylesheet" href="ChangesFancyStyle.css" title="Fancy"> |
| + <link rel="alternate stylesheet" href="ChangesSimpleStyle.css" title="Simple"> |
| + <META http-equiv="Content-Type" content="text/html; charset=UTF-8"/> |
| + <!-- ----------- toggleList javascript ------------ --> |
| + <SCRIPT> |
| + function toggleList(e){ |
| + element = document.getElementById(e).style; |
| + element.display == 'none' ? element.display = 'block' : element.display='none'; |
| + } |
| + </SCRIPT> |
| +</head> |
| +<body> |
| + |
| +<h1>Lucene Change Log</h1> |
| + |
| +<h2><a href="javascript:toggleList('trunk')">Trunk (not yet released)</a></h3> |
| +<ul id="trunk" style="display:block"> |
| + <li><a href="javascript:toggleList('trunk.changes_in_runtime_behavior')">Changes in runtime behavior</a> |
| + (none) <ul id="trunk.changes_in_runtime_behavior" style="display:none"> |
| + </ul> |
| + </li> |
| + <li><a href="javascript:toggleList('trunk.api_changes')">API Changes</a> |
| + (1) <ol id="trunk.api_changes" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1084">LUCENE-1084</a>: Changed all IndexWriter constructors to take an |
| +explicit parameter for maximum field size. Deprecated all the |
| +pre-existing constructors; these will be removed in release 3.0.<br />(Steven Rowe via Mike McCandless) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('trunk.bug_fixes')">Bug fixes</a> |
| + (none) <ul id="trunk.bug_fixes" style="display:none"> |
| + </ul> |
| + </li> |
| + <li><a href="javascript:toggleList('trunk.new_features')">New features</a> |
| + (2) <ol id="trunk.new_features" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1137">LUCENE-1137</a>: Added Token.set/getFlags() accessors for passing more information about a Token through the analysis |
| + process. The flag is not indexed/stored and is thus only used by analysis. |
| + </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1147">LUCENE-1147</a>: Add -segment option to CheckIndex tool so you can |
| +check only a specific segment or segments in your index.<br />(Mike |
| +McCandless) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('trunk.optimizations')">Optimizations</a> |
| + (2) <ol id="trunk.optimizations" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-705">LUCENE-705</a>: When building a compound file, use |
| +RandomAccessFile.setLength() to tell the OS/filesystem to |
| +pre-allocate space for the file. This may improve fragmentation |
| +in how the CFS file is stored, and allows us to detect an upcoming |
| +disk full situation before actually filling up the disk.<br />(Mike |
| +McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1120">LUCENE-1120</a>: Speed up merging of term vectors by bulk-copying the |
| +raw bytes for each contiguous range of non-deleted documents.<br />(Mike McCandless) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('trunk.documentation')">Documentation</a> |
| + (none) <ul id="trunk.documentation" style="display:none"> |
| + </ul> |
| + </li> |
| + <li><a href="javascript:toggleList('trunk.build')">Build</a> |
| + (1) <ol id="trunk.build" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1153">LUCENE-1153</a>: Added JUnit JAR to new lib directory. Updated build to rely on local JUnit instead of ANT/lib. |
| + </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('trunk.test_cases')">Test Cases</a> |
| + (none) <ul id="trunk.test_cases" style="display:none"> |
| + </ul> |
| + </li> |
| +</ul> |
| +<h2><a href="javascript:toggleList('2.3.0')">Release 2.3.0 [2008-01-21]</a></h3> |
| +<ul id="2.3.0" style="display:block"> |
| + <li><a href="javascript:toggleList('2.3.0.changes_in_runtime_behavior')">Changes in runtime behavior</a> |
| + (2) <ol id="2.3.0.changes_in_runtime_behavior" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-994">LUCENE-994</a>: Defaults for IndexWriter have been changed to maximize |
| +out-of-the-box indexing speed. First, IndexWriter now flushes by |
| +RAM usage (16 MB by default) instead of a fixed doc count (call |
| +IndexWriter.setMaxBufferedDocs to get backwards compatible |
| +behavior). Second, ConcurrentMergeScheduler is used to run merges |
| +using background threads (call IndexWriter.setMergeScheduler(new |
| +SerialMergeScheduler()) to get backwards compatible behavior). |
| +Third, merges are chosen based on size in bytes of each segment |
| +rather than document count of each segment (call |
| +IndexWriter.setMergePolicy(new LogDocMergePolicy()) to get |
| +backwards compatible behavior). |
| +<p/> |
| +NOTE: users of ParallelReader must change back all of these |
| +defaults in order to ensure the docIDs "align" across all parallel |
| +indices.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1045">LUCENE-1045</a>: SortField.AUTO didn't work with long. When detecting |
| +the field type for sorting automatically, numbers used to be |
| +interpreted as int, then as float, if parsing the number as an int |
| +failed. Now the detection checks for int, then for long, |
| +then for float.<br />(Daniel Naber) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.3.0.api_changes')">API Changes</a> |
| + (14) <ol id="2.3.0.api_changes" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-843">LUCENE-843</a>: Added IndexWriter.setRAMBufferSizeMB(...) to have |
| +IndexWriter flush whenever the buffered documents are using more |
| +than the specified amount of RAM. Also added new APIs to Token |
| +that allow one to set a char[] plus offset and length to specify a |
| +token (to avoid creating a new String() for each Token).<br />(Mike |
| +McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-963">LUCENE-963</a>: Add setters to Field to allow for re-using a single |
| +Field instance during indexing. This is a sizable performance |
| +gain, especially for small documents.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-969">LUCENE-969</a>: Add new APIs to Token, TokenStream and Analyzer to |
| +permit re-using of Token and TokenStream instances during |
| +indexing. Changed Token to use a char[] as the store for the |
| +termText instead of String. This gives faster tokenization |
| +performance (~10-15%).<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-847">LUCENE-847</a>: Factored MergePolicy, which determines which merges |
| +should take place and when, as well as MergeScheduler, which |
| +determines when the selected merges should actually run, out of |
| +IndexWriter. The default merge policy is now |
| +LogByteSizeMergePolicy (see <a href="http://issues.apache.org/jira/browse/LUCENE-845">LUCENE-845</a>) and the default merge |
| +scheduler is now ConcurrentMergeScheduler (see |
| +<a href="http://issues.apache.org/jira/browse/LUCENE-870">LUCENE-870</a>).<br />(Steven Parkes via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1052">LUCENE-1052</a>: Add IndexReader.setTermInfosIndexDivisor(int) method |
| +that allows you to reduce memory usage of the termInfos by further |
| +sub-sampling (over the termIndexInterval that was used during |
| +indexing) which terms are loaded into memory.<br />(Chuck Williams, |
| +Doug Cutting via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-743">LUCENE-743</a>: Add IndexReader.reopen() method that re-opens an |
| +existing IndexReader (see New features -> 8.)<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1062">LUCENE-1062</a>: Add setData(byte[] data), |
| +setData(byte[] data, int offset, int length), getData(), getOffset() |
| +and clone() methods to o.a.l.index.Payload. Also add the field name |
| +as arg to Similarity.scorePayload().<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-982">LUCENE-982</a>: Add IndexWriter.optimize(int maxNumSegments) method to |
| +"partially optimize" an index down to maxNumSegments segments.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1080">LUCENE-1080</a>: Changed Token.DEFAULT_TYPE to be public. |
| + </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1064">LUCENE-1064</a>: Changed TopDocs constructor to be public.<br />(Shai Erera via Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1079">LUCENE-1079</a>: DocValues cleanup: constructor now has no params, |
| +and getInnerArray() now throws UnsupportedOperationException<br />(Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1089">LUCENE-1089</a>: Added PriorityQueue.insertWithOverflow, which returns |
| +the Object (if any) that was bumped from the queue to allow |
| +re-use.<br />(Shai Erera via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1101">LUCENE-1101</a>: Token reuse 'contract' (defined <a href="http://issues.apache.org/jira/browse/LUCENE-969">LUCENE-969</a>) |
| +modified so it is token producer's responsibility |
| +to call Token.clear().<br />(Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1118">LUCENE-1118</a>: Changed StandardAnalyzer to skip too-long (default > |
| +255 characters) tokens. You can increase this limit by calling |
| +StandardAnalyzer.setMaxTokenLength(...).<br />(Michael McCandless) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.3.0.bug_fixes')">Bug fixes</a> |
| + (28) <ol id="2.3.0.bug_fixes" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-933">LUCENE-933</a>: QueryParser fixed to not produce empty sub |
| +BooleanQueries "()" even if the Analyzer produced no |
| +tokens for input.<br />(Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-955">LUCENE-955</a>: Fixed SegmentTermPositions to work correctly with the |
| +first term in the dictionary.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-951">LUCENE-951</a>: Fixed NullPointerException in MultiLevelSkipListReader |
| +that was thrown after a call of TermPositions.seek().<br />(Rich Johnson via Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-938">LUCENE-938</a>: Fixed cases where an unhandled exception in |
| +IndexWriter's methods could cause deletes to be lost.<br />(Steven Parkes via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-962">LUCENE-962</a>: Fixed case where an unhandled exception in |
| +IndexWriter.addDocument or IndexWriter.updateDocument could cause |
| +unreferenced files in the index to not be deleted<br />(Steven Parkes via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-957">LUCENE-957</a>: RAMDirectory fixed to properly handle directories |
| +larger than Integer.MAX_VALUE.<br />(Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-781">LUCENE-781</a>: MultiReader fixed to not throw NPE if isCurrent(), |
| +isOptimized() or getVersion() is called. Separated MultiReader |
| +into two classes: MultiSegmentReader extends IndexReader, is |
| +package-protected and is created automatically by IndexReader.open() |
| +in case the index has multiple segments. The public MultiReader |
| +now extends MultiSegmentReader and is intended to be used by users |
| +who want to add their own subreaders.<br />(Daniel Naber, Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-970">LUCENE-970</a>: FilterIndexReader now implements isOptimized(). Before |
| +a call of isOptimized() would throw a NPE.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-832">LUCENE-832</a>: ParallelReader fixed to not throw NPE if isCurrent(), |
| +isOptimized() or getVersion() is called.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-948">LUCENE-948</a>: Fix FNFE exception caused by stale NFS client |
| +directory listing caches when writers on different machines are |
| +sharing an index over NFS and using a custom deletion policy<br />(Mike |
| +McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-978">LUCENE-978</a>: Ensure TermInfosReader, FieldsReader, and FieldsReader |
| +close any streams they had opened if an exception is hit in the |
| +constructor.<br />(Ning Li via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-985">LUCENE-985</a>: If an extremely long term is in a doc (> 16383 chars), |
| +we now throw an IllegalArgumentException saying the term is too |
| +long, instead of cryptic ArrayIndexOutOfBoundsException.<br />(Karl |
| +Wettin via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-991">LUCENE-991</a>: The explain() method of BoostingTermQuery had errors |
| +when no payloads were present on a document.<br />(Peter Keegan via |
| +Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-992">LUCENE-992</a>: Fixed IndexWriter.updateDocument to be atomic again |
| +(this was broken by <a href="http://issues.apache.org/jira/browse/LUCENE-843">LUCENE-843</a>).<br />(Ning Li via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1008">LUCENE-1008</a>: Fixed corruption case when document with no term |
| +vector fields is added after documents with term vector fields. |
| +This bug was introduced with <a href="http://issues.apache.org/jira/browse/LUCENE-843">LUCENE-843</a>.<br />(Grant Ingersoll via |
| +Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1006">LUCENE-1006</a>: Fixed QueryParser to accept a "" field value (zero |
| +length quoted string.)<br />(yonik) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1010">LUCENE-1010</a>: Fixed corruption case when document with no term |
| +vector fields is added after documents with term vector fields. |
| +This case is hit during merge and would cause an EOFException. |
| +This bug was introduced with <a href="http://issues.apache.org/jira/browse/LUCENE-984">LUCENE-984</a>.<br />(Andi Vajda via Mike |
| +McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1009">LUCENE-1009</a>: Fix merge slowdown with LogByteSizeMergePolicy when |
| +autoCommit=false and documents are using stored fields and/or term |
| +vectors.<br />(Mark Miller via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1011">LUCENE-1011</a>: Fixed corruption case when two or more machines, |
| +sharing an index over NFS, can be writers in quick succession.<br />(Patrick Kimber via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1028">LUCENE-1028</a>: Fixed Weight serialization for few queries: |
| +DisjunctionMaxQuery, ValueSourceQuery, CustomScoreQuery. |
| +Serialization check added for all queries.<br />(Kyle Maxwell via Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1048">LUCENE-1048</a>: Fixed incorrect behavior in Lock.obtain(...) when the |
| +timeout argument is very large (eg Long.MAX_VALUE). Also added |
| +Lock.LOCK_OBTAIN_WAIT_FOREVER constant to never timeout.<br />(Nikolay |
| +Diakov via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1050">LUCENE-1050</a>: Throw LockReleaseFailedException in |
| +Simple/NativeFSLockFactory if we fail to delete the lock file when |
| +releasing the lock.<br />(Nikolay Diakov via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1071">LUCENE-1071</a>: Fixed SegmentMerger to correctly set payload bit in |
| +the merged segment.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1042">LUCENE-1042</a>: Remove throwing of IOException in getTermFreqVector(int, String, TermVectorMapper) to be consistent |
| +with other getTermFreqVector calls. Also removed the throwing of the other IOException in that method to be consistent.<br />(Karl Wettin via Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1096">LUCENE-1096</a>: Fixed Hits behavior when hits' docs are deleted |
| +along with iterating the hits. Deleting docs already retrieved |
| +now works seamlessly. If docs not yet retrieved are deleted |
| +(e.g. from another thread), and then, relying on the initial |
| +Hits.length(), an application attempts to retrieve more hits |
| +than actually exist , a ConcurrentMidificationException |
| +is thrown.<br />(Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1068">LUCENE-1068</a>: Changed StandardTokenizer to fix an issue with it marking |
| + the type of some tokens incorrectly. This is done by adding a new flag named |
| + replaceInvalidAcronym which defaults to false, the current, incorrect behavior. Setting |
| + this flag to true fixes the problem. This flag is a temporary fix and is already |
| + marked as being deprecated. 3.x will implement the correct approach. (Shai Erera via Grant Ingersoll) |
| + <a href="http://issues.apache.org/jira/browse/LUCENE-1140">LUCENE-1140</a>: Fixed NPE caused by 1068<br />(Alexei Dets via Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-749">LUCENE-749</a>: ChainedFilter behavior fixed when logic of |
| +first filter is ANDNOT.<br />(Antonio Bruno via Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-508">LUCENE-508</a>: Make sure SegmentTermEnum.prev() is accurate (= last |
| +term) after next() returns false.<br />(Steven Tamm via Mike |
| +McCandless) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.3.0.new_features')">New features</a> |
| + (13) <ol id="2.3.0.new_features" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-906">LUCENE-906</a>: Elision filter for French.<br />(Mathieu Lecarme via Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-960">LUCENE-960</a>: Added a SpanQueryFilter and related classes to allow for |
| +not only filtering, but knowing where in a Document a Filter matches<br />(Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-868">LUCENE-868</a>: Added new Term Vector access features. New callback |
| +mechanism allows application to define how and where to read Term |
| +Vectors from disk. This implementation contains several extensions |
| +of the new abstract TermVectorMapper class. The new API should be |
| +back-compatible. No changes in the actual storage of Term Vectors |
| +has taken place. |
| + </li> |
| + <li>1 <a href="http://issues.apache.org/jira/browse/LUCENE-1038">LUCENE-1038</a>: Added setDocumentNumber() method to TermVectorMapper |
| + to provide information about what document is being accessed.<br />(Karl Wettin via Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-975">LUCENE-975</a>: Added PositionBasedTermVectorMapper that allows for |
| +position based lookup of term vector information. |
| +See item #3 above (<a href="http://issues.apache.org/jira/browse/LUCENE-868">LUCENE-868</a>). |
| + </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1011">LUCENE-1011</a>: Added simple tools (all in org.apache.lucene.store) |
| +to verify that locking is working properly. LockVerifyServer runs |
| +a separate server to verify locks. LockStressTest runs a simple |
| +tool that rapidly obtains and releases locks. |
| +VerifyingLockFactory is a LockFactory that wraps any other |
| +LockFactory and consults the LockVerifyServer whenever a lock is |
| +obtained or released, throwing an exception if an illegal lock |
| +obtain occurred.<br />(Patrick Kimber via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1015">LUCENE-1015</a>: Added FieldCache extension (ExtendedFieldCache) to |
| +support doubles and longs. Added support into SortField for sorting |
| +on doubles and longs as well.<br />(Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1020">LUCENE-1020</a>: Created basic index checking & repair tool |
| +(o.a.l.index.CheckIndex). When run without -fix it does a |
| +detailed test of all segments in the index and reports summary |
| +information and any errors it hit. With -fix it will remove |
| +segments that had errors.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-743">LUCENE-743</a>: Add IndexReader.reopen() method that re-opens an |
| +existing IndexReader by only loading those portions of an index |
| +that have changed since the reader was (re)opened. reopen() can |
| +be significantly faster than open(), depending on the amount of |
| +index changes. SegmentReader, MultiSegmentReader, MultiReader, |
| +and ParallelReader implement reopen().<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1040">LUCENE-1040</a>: CharArraySet useful for efficiently checking |
| +set membership of text specified by char[].<br />(yonik) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1073">LUCENE-1073</a>: Created SnapshotDeletionPolicy to facilitate taking a |
| +live backup of an index without pausing indexing.<br />(Mike |
| +McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1019">LUCENE-1019</a>: CustomScoreQuery enhanced to support multiple |
| +ValueSource queries.<br />(Kyle Maxwell via Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1095">LUCENE-1095</a>: Added an option to StopFilter to increase |
| +positionIncrement of the token succeeding a stopped token. |
| +Disabled by default. Similar option added to QueryParser |
| +to consider token positions when creating PhraseQuery |
| +and MultiPhraseQuery. Disabled by default (so by default |
| +the query parser ignores position increments).<br />(Doron Cohen) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.3.0.optimizations')">Optimizations</a> |
| + (14) <ol id="2.3.0.optimizations" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-937">LUCENE-937</a>: CachingTokenFilter now uses an iterator to access the |
| +Tokens that are cached in the LinkedList. This increases performance |
| +significantly, especially when the number of Tokens is large.<br />(Mark Miller via Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-843">LUCENE-843</a>: Substantial optimizations to improve how IndexWriter |
| +uses RAM for buffering documents and to speed up indexing (2X-8X |
| +faster). A single shared hash table now records the in-memory |
| +postings per unique term and is directly flushed into a single |
| +segment.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-892">LUCENE-892</a>: Fixed extra "buffer to buffer copy" that sometimes |
| +takes place when using compound files.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-959">LUCENE-959</a>: Remove synchronization in Document<br />(yonik) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-963">LUCENE-963</a>: Add setters to Field to allow for re-using a single |
| +Field instance during indexing. This is a sizable performance |
| +gain, especially for small documents.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-939">LUCENE-939</a>: Check explicitly for boundary conditions in FieldInfos |
| +and don't rely on exceptions.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-966">LUCENE-966</a>: Very substantial speedups (~6X faster) for |
| +StandardTokenizer (StandardAnalyzer) by using JFlex instead of |
| +JavaCC to generate the tokenizer.<br />(Stanislaw Osinski via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-969">LUCENE-969</a>: Changed core tokenizers & filters to re-use Token and |
| +TokenStream instances when possible to improve tokenization |
| +performance (~10-15%).<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-871">LUCENE-871</a>: Speedup ISOLatin1AccentFilter<br />(Ian Boston via Mike |
| +McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-986">LUCENE-986</a>: Refactored SegmentInfos from IndexReader into the new |
| +subclass DirectoryIndexReader. SegmentReader and MultiSegmentReader |
| +now extend DirectoryIndexReader and are the only IndexReader |
| +implementations that use SegmentInfos to access an index and |
| +acquire a write lock for index modifications.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1007">LUCENE-1007</a>: Allow flushing in IndexWriter to be triggered by |
| +either RAM usage or document count or both (whichever comes |
| +first), by adding symbolic constant DISABLE_AUTO_FLUSH to disable |
| +one of the flush triggers.<br />(Ning Li via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1043">LUCENE-1043</a>: Speed up merging of stored fields by bulk-copying the |
| +raw bytes for each contiguous range of non-deleted documents.<br />(Robert Engels via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-693">LUCENE-693</a>: Speed up nested conjunctions (~2x) that match many |
| +documents, and a slight performance increase for top level |
| +conjunctions.<br />(yonik) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1098">LUCENE-1098</a>: Make inner class StandardAnalyzer.SavedStreams static |
| +and final.<br />(Nathan Beyer via Michael Busch) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.3.0.documentation')">Documentation</a> |
| + (2) <ol id="2.3.0.documentation" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1051">LUCENE-1051</a>: Generate separate javadocs for core, demo and contrib |
| +classes, as well as an unified view. Also add an appropriate menu |
| +structure to the website.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-746">LUCENE-746</a>: Fix error message in AnalyzingQueryParser.getPrefixQuery.<br />(Ronnie Kolehmainen via Michael Busch) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.3.0.build')">Build</a> |
| + (8) <ol id="2.3.0.build" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-908">LUCENE-908</a>: Improvements and simplifications for how the MANIFEST |
| +file and the META-INF dir are created.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-935">LUCENE-935</a>: Various improvements for the maven artifacts. Now the |
| +artifacts also include the sources as .jar files.<br />(Michael Busch) </li> |
| + <li>Added apply-patch target to top-level build. Defaults to looking for |
| +a patch in ${basedir}/../patches with name specified by -Dpatch.name. |
| +Can also specify any location by -Dpatch.file property on the command |
| +line. This should be helpful for easy application of patches, but it |
| +is also a step towards integrating automatic patch application with |
| +JIRA and Hudson, and is thus subject to change.<br />(Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-935">LUCENE-935</a>: Defined property "m2.repository.url" to allow setting |
| +the url to a maven remote repository to deploy to.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1051">LUCENE-1051</a>: Include javadocs in the maven artifacts.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1055">LUCENE-1055</a>: Remove gdata-server from build files and its sources |
| +from trunk.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-935">LUCENE-935</a>: Allow to deploy maven artifacts to a remote m2 repository |
| +via scp and ssh authentication.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1123">LUCENE-1123</a>: Allow overriding the specification version for |
| +MANIFEST.MF<br />(Michael Busch) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.3.0.test_cases')">Test Cases</a> |
| + (1) <ol id="2.3.0.test_cases" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-766">LUCENE-766</a>: Test adding two fields with the same name but different |
| +term vector setting.<br />(Nicolas Lalevée via Doron Cohen) </li> |
| + </ol> |
| + </li> |
| +</ul> |
| +<h2><a href="javascript:toggleList('older')">Older Releases</a></h3> |
| +<ul id="older" style="display:none"> |
| +<h3><a href="javascript:toggleList('2.2.0')">Release 2.2.0 [2007-06-19]</a></h3> |
| +<ul id="2.2.0" style="display:none"> |
| + <li><a href="javascript:toggleList('2.2.0.changes_in_runtime_behavior')">Changes in runtime behavior</a> |
| + (none) <ul id="2.2.0.changes_in_runtime_behavior" style="display:none"> |
| + </ul> |
| + </li> |
| + <li><a href="javascript:toggleList('2.2.0.api_changes')">API Changes</a> |
| + (13) <ol id="2.2.0.api_changes" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-793">LUCENE-793</a>: created new exceptions and added them to throws clause |
| +for many methods (all subclasses of IOException for backwards |
| +compatibility): index.StaleReaderException, |
| +index.CorruptIndexException, store.LockObtainFailedException. |
| +This was done to better call out the possible root causes of an |
| +IOException from these methods.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-811">LUCENE-811</a>: make SegmentInfos class, plus a few methods from related |
| +classes, package-private again (they were unnecessarily made public |
| +as part of <a href="http://issues.apache.org/jira/browse/LUCENE-701">LUCENE-701</a>).<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-710">LUCENE-710</a>: added optional autoCommit boolean to IndexWriter |
| +constructors. When this is false, index changes are not committed |
| +until the writer is closed. This gives explicit control over when |
| +a reader will see the changes. Also added optional custom |
| +deletion policy to explicitly control when prior commits are |
| +removed from the index. This is intended to allow applications to |
| +share an index over NFS by customizing when prior commits are |
| +deleted.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-818">LUCENE-818</a>: changed most public methods of IndexWriter, |
| +IndexReader (and its subclasses), FieldsReader and RAMDirectory to |
| +throw AlreadyClosedException if they are accessed after being |
| +closed.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-834">LUCENE-834</a>: Changed some access levels for certain Span classes to allow them |
| +to be overridden. They have been marked expert only and not for public |
| +consumption.<br />(Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-796">LUCENE-796</a>: Removed calls to super.* from various get*Query methods in |
| +MultiFieldQueryParser, in order to allow sub-classes to override them.<br />(Steven Parkes via Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-857">LUCENE-857</a>: Removed caching from QueryFilter and deprecated QueryFilter |
| +in favour of QueryWrapperFilter or QueryWrapperFilter + CachingWrapperFilter |
| +combination when caching is desired.<br />(Chris Hostetter, Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-869">LUCENE-869</a>: Changed FSIndexInput and FSIndexOutput to inner classes of FSDirectory |
| +to enable extensibility of these classes.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-580">LUCENE-580</a>: Added the public method reset() to TokenStream. This method does |
| +nothing by default, but may be overwritten by subclasses to support consuming |
| +the TokenStream more than once.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-580">LUCENE-580</a>: Added a new constructor to Field that takes a TokenStream as |
| +argument, available as tokenStreamValue(). This is useful to avoid the need of |
| +"dummy analyzers" for pre-analyzed fields.<br />(Karl Wettin, Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-730">LUCENE-730</a>: Added the new methods to BooleanQuery setAllowDocsOutOfOrder() and |
| +getAllowDocsOutOfOrder(). Deprecated the methods setUseScorer14() and |
| +getUseScorer14(). The optimization patch <a href="http://issues.apache.org/jira/browse/LUCENE-730">LUCENE-730</a> (see Optimizations->3.) |
| +improves performance for certain queries but results in scoring out of docid |
| +order. This patch reverse this change, so now by default hit docs are scored |
| +in docid order if not setAllowDocsOutOfOrder(true) is explicitly called. |
| +This patch also enables the tests in QueryUtils again that check for docid |
| +order.<br />(Paul Elschot, Doron Cohen, Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-888">LUCENE-888</a>: Added Directory.openInput(File path, int bufferSize) |
| +to optionally specify the size of the read buffer. Also added |
| +BufferedIndexInput.setBufferSize(int) to change the buffer size.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-923">LUCENE-923</a>: Make SegmentTermPositionVector package-private. It does not need |
| +to be public because it implements the public interface TermPositionVector.<br />(Michael Busch) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.2.0.bug_fixes')">Bug fixes</a> |
| + (24) <ol id="2.2.0.bug_fixes" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-804">LUCENE-804</a>: Fixed build.xml to pack a fully compilable src dist.<br />(Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-813">LUCENE-813</a>: Leading wildcard fixed to work with trailing wildcard. |
| +Query parser modified to create a prefix query only for the case |
| +that there is a single trailing wildcard (and no additional wildcard |
| +or '?' in the query text).<br />(Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-812">LUCENE-812</a>: Add no-argument constructors to NativeFSLockFactory |
| +and SimpleFSLockFactory. This enables all 4 builtin LockFactory |
| +implementations to be specified via the System property |
| +org.apache.lucene.store.FSDirectoryLockFactoryClass.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-821">LUCENE-821</a>: The new single-norm-file introduced by <a href="http://issues.apache.org/jira/browse/LUCENE-756">LUCENE-756</a> |
| +failed to reduce the number of open descriptors since it was still |
| +opened once per field with norms.<br />(yonik) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-823">LUCENE-823</a>: Make sure internal file handles are closed when |
| +hitting an exception (eg disk full) while flushing deletes in |
| +IndexWriter's mergeSegments, and also during |
| +IndexWriter.addIndexes.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-825">LUCENE-825</a>: If directory is removed after |
| +FSDirectory.getDirectory() but before IndexReader.open you now get |
| +a FileNotFoundException like Lucene pre-2.1 (before this fix you |
| +got an NPE).<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-800">LUCENE-800</a>: Removed backslash from the TERM_CHAR list in the queryparser, |
| +because the backslash is the escape character. Also changed the ESCAPED_CHAR |
| +list to contain all possible characters, because every character that |
| +follows a backslash should be considered as escaped.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-372">LUCENE-372</a>: QueryParser.parse() now ensures that the entire input string |
| +is consumed. Now a ParseException is thrown if a query contains too many |
| +closing parentheses.<br />(Andreas Neumann via Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-814">LUCENE-814</a>: javacc build targets now fix line-end-style of generated files. |
| +Now also deleting all javacc generated files before calling javacc.<br />(Steven Parkes, Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-829">LUCENE-829</a>: close readers in contrib/benchmark.<br />(Karl Wettin, Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-828">LUCENE-828</a>: Minor fix for Term's equal().<br />(Paul Cowan via Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-846">LUCENE-846</a>: Fixed: if IndexWriter is opened with autoCommit=false, |
| +and you call addIndexes, and hit an exception (eg disk full) then |
| +when IndexWriter rolls back its internal state this could corrupt |
| +the instance of IndexWriter (but, not the index itself) by |
| +referencing already deleted segments. This bug was only present |
| +in 2.2 (trunk), ie was never released.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-736">LUCENE-736</a>: Sloppy phrase query with repeating terms matches wrong docs. |
| +For example query "B C B"~2 matches the doc "A B C D E".<br />(Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-789">LUCENE-789</a>: Fixed: custom similarity is ignored when using MultiSearcher (problem reported |
| +by Alexey Lef). Now the similarity applied by MultiSearcer.setSimilarity(sim) is being used. |
| +Note that as before this fix, creating a multiSearcher from Searchers for whom custom similarity |
| +was set has no effect - it is masked by the similarity of the MultiSearcher. This is as |
| +designed, because MultiSearcher operates on Searchables (not Searchers).<br />(Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-880">LUCENE-880</a>: Fixed DocumentWriter to close the TokenStreams after it |
| +has written the postings. Then the resources associated with the |
| +TokenStreams can safely be released.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-883">LUCENE-883</a>: consecutive calls to Spellchecker.indexDictionary() |
| +won't insert terms twice anymore.<br />(Daniel Naber) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-881">LUCENE-881</a>: QueryParser.escape() now also escapes the characters |
| +'|' and '&' which are part of the queryparser syntax.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-886">LUCENE-886</a>: Spellchecker clean up: exceptions aren't printed to STDERR |
| +anymore and ignored, but re-thrown. Some javadoc improvements.<br />(Daniel Naber) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-698">LUCENE-698</a>: FilteredQuery now takes the query boost into account for |
| +scoring.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-763">LUCENE-763</a>: Spellchecker: LuceneDictionary used to skip first word in |
| +enumeration.<br />(Christian Mallwitz via Daniel Naber) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-903">LUCENE-903</a>: FilteredQuery explanation inaccuracy with boost. |
| +Explanation tests now "deep" check the explanation details.<br />(Chris Hostetter, Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-912">LUCENE-912</a>: DisjunctionMaxScorer first skipTo(target) call ignores the |
| +skip target param and ends up at the first match.<br />(Sudaakeran B. via Chris Hostetter & Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-913">LUCENE-913</a>: Two consecutive score() calls return different |
| +scores for Boolean Queries.<br />(Michael Busch, Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1013">LUCENE-1013</a>: Fix IndexWriter.setMaxMergeDocs to work "out of the |
| +box", again, by moving set/getMaxMergeDocs up from |
| +LogDocMergePolicy into LogMergePolicy. This fixes the API |
| +breakage (non backwards compatible change) caused by <a href="http://issues.apache.org/jira/browse/LUCENE-994">LUCENE-994</a>.<br />(Yonik Seeley via Mike McCandless) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.2.0.new_features')">New features</a> |
| + (9) <ol id="2.2.0.new_features" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-759">LUCENE-759</a>: Added two n-gram-producing TokenFilters.<br />(Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-822">LUCENE-822</a>: Added FieldSelector capabilities to Searchable for use with |
| +RemoteSearcher, and other Searchable implementations.<br />(Mark Miller, Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-755">LUCENE-755</a>: Added the ability to store arbitrary binary metadata in the posting list. |
| +These metadata are called Payloads. For every position of a Token one Payload in the form |
| +of a variable length byte array can be stored in the prox file. |
| +Remark: The APIs introduced with this feature are in experimental state and thus |
| + contain appropriate warnings in the javadocs.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-834">LUCENE-834</a>: Added BoostingTermQuery which can boost scores based on the |
| +values of a payload (see #3 above.)<br />(Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-834">LUCENE-834</a>: Similarity has a new method for scoring payloads called |
| +scorePayloads that can be overridden to take advantage of payload |
| +storage<br />(see #3 above) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-834">LUCENE-834</a>: Added isPayloadAvailable() onto TermPositions interface and |
| +implemented it in the appropriate places<br />(Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-853">LUCENE-853</a>: Added RemoteCachingWrapperFilter to enable caching of Filters |
| +on the remote side of the RMI connection.<br />(Matt Ericson via Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-446">LUCENE-446</a>: Added Solr's search.function for scores based on field |
| +values, plus CustomScoreQuery for simple score (post) customization.<br />(Yonik Seeley, Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-1058">LUCENE-1058</a>: Added new TeeTokenFilter (like the UNIX 'tee' command) and SinkTokenizer which can be used to share tokens between two or more |
| +Fields such that the other Fields do not have to go through the whole Analysis process over again. For instance, if you have two |
| +Fields that share all the same analysis steps except one lowercases tokens and the other does not, you can coordinate the operations |
| +between the two using the TeeTokenFilter and the SinkTokenizer. See TeeSinkTokenTest.java for examples.<br />(Grant Ingersoll, Michael Busch, Yonik Seeley) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.2.0.optimizations')">Optimizations</a> |
| + (7) <ol id="2.2.0.optimizations" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-761">LUCENE-761</a>: The proxStream is now cloned lazily in SegmentTermPositions |
| +when nextPosition() is called for the first time. This allows using instances |
| +of SegmentTermPositions instead of SegmentTermDocs without additional costs.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-431">LUCENE-431</a>: RAMInputStream and RAMOutputStream extend IndexInput and |
| +IndexOutput directly now. This avoids further buffering and thus avoids |
| +unnecessary array copies.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-730">LUCENE-730</a>: Updated BooleanScorer2 to make use of BooleanScorer in some |
| +cases and possibly improve scoring performance. Documents can now be |
| +delivered out-of-order as they are scored (e.g. to HitCollector). |
| +N.B. A bit of code had to be disabled in QueryUtils in order for |
| +TestBoolean2 test to keep passing.<br />(Paul Elschot via Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-882">LUCENE-882</a>: Spellchecker doesn't store the ngrams anymore but only indexes |
| +them to keep the spell index small.<br />(Daniel Naber) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-430">LUCENE-430</a>: Delay allocation of the buffer after a clone of BufferedIndexInput. |
| +Together with <a href="http://issues.apache.org/jira/browse/LUCENE-888">LUCENE-888</a> this will allow to adjust the buffer size |
| +dynamically.<br />(Paul Elschot, Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-888">LUCENE-888</a>: Increase buffer sizes inside CompoundFileWriter and |
| +BufferedIndexOutput. Also increase buffer size in |
| +BufferedIndexInput, but only when used during merging. Together, |
| +these increases yield 10-18% overall performance gain vs the |
| +previous 1K defaults.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-866">LUCENE-866</a>: Adds multi-level skip lists to the posting lists. This speeds |
| +up most queries that use skipTo(), especially on big indexes with large posting |
| +lists. For average AND queries the speedup is about 20%, for queries that |
| +contain very frequent and very unique terms the speedup can be over 80%.<br />(Michael Busch) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.2.0.documentation')">Documentation</a> |
| + (6) <ol id="2.2.0.documentation" style="display:none"> |
| + <li>LUCENE 791 && INFRA-1173: Infrastructure moved the Wiki to |
| +http://wiki.apache.org/lucene-java/ Updated the links in the docs and |
| +wherever else I found references.<br />(Grant Ingersoll, Joe Schaefer) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-807">LUCENE-807</a>: Fixed the javadoc for ScoreDocComparator.compare() to be |
| +consistent with java.util.Comparator.compare(): Any integer is allowed to |
| +be returned instead of only -1/0/1.<br />(Paul Cowan via Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-875">LUCENE-875</a>: Solved javadoc warnings & errors under jdk1.4. |
| +Solved javadoc errors under jdk5 (jars in path for gdata). |
| +Made "javadocs" target depend on "build-contrib" for first downloading |
| +contrib jars configured for dynamic downloaded. (Note: when running |
| +behind firewall, a firewall prompt might pop up)<br />(Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-740">LUCENE-740</a>: Added SNOWBALL-LICENSE.txt to the snowball package and a |
| +remark about the license to NOTICE.TXT.<br />(Steven Parkes via Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-925">LUCENE-925</a>: Added analysis package javadocs.<br />(Grant Ingersoll and Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-926">LUCENE-926</a>: Added document package javadocs.<br />(Grant Ingersoll) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.2.0.build')">Build</a> |
| + (10) <ol id="2.2.0.build" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-802">LUCENE-802</a>: Added LICENSE.TXT and NOTICE.TXT to Lucene jars.<br />(Steven Parkes via Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-885">LUCENE-885</a>: "ant test" now includes all contrib tests. The new |
| +"ant test-core" target can be used to run only the Core (non |
| +contrib) tests.<br />(Chris Hostetter) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-900">LUCENE-900</a>: "ant test" now enables Java assertions (in Lucene packages).<br />(Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-894">LUCENE-894</a>: Add custom build file for binary distributions that includes |
| +targets to build the demos.<br />(Chris Hostetter, Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-904">LUCENE-904</a>: The "package" targets in build.xml now also generate .md5 |
| +checksum files.<br />(Chris Hostetter, Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-907">LUCENE-907</a>: Include LICENSE.TXT and NOTICE.TXT in the META-INF dirs of |
| +demo war, demo jar, and the contrib jars.<br />(Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-909">LUCENE-909</a>: Demo targets for running the demo.<br />(Doron Cohen) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-908">LUCENE-908</a>: Improves content of MANIFEST file and makes it customizable |
| +for the contribs. Adds SNOWBALL-LICENSE.txt to META-INF of the snowball |
| +jar and makes sure that the lucli jar contains LICENSE.txt and NOTICE.txt.<br />(Chris Hostetter, Michael Busch) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-930">LUCENE-930</a>: Various contrib building improvements to ensure contrib |
| +dependencies are met, and test compilation errors fail the build.<br />(Steven Parkes, Chris Hostetter) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-622">LUCENE-622</a>: Add ant target and pom.xml files for building maven artifacts |
| +of the Lucene core and the contrib modules.<br />(Sami Siren, Karl Wettin, Michael Busch) </li> |
| + </ol> |
| + </li> |
| +</ul> |
| +<h3><a href="javascript:toggleList('2.1.0')">Release 2.1.0 [2007-02-14]</a></h3> |
| +<ul id="2.1.0" style="display:none"> |
| + <li><a href="javascript:toggleList('2.1.0.changes_in_runtime_behavior')">Changes in runtime behavior</a> |
| + (9) <ol id="2.1.0.changes_in_runtime_behavior" style="display:none"> |
| + <li>'s' and 't' have been removed from the list of default stopwords |
| +in StopAnalyzer (also used in by StandardAnalyzer). Having e.g. 's' |
| +as a stopword meant that 's-class' led to the same results as 'class'. |
| +Note that this problem still exists for 'a', e.g. in 'a-class' as |
| +'a' continues to be a stopword.<br />(Daniel Naber) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-478">LUCENE-478</a>: Updated the list of Unicode code point ranges for CJK |
| +(now split into CJ and K) in StandardAnalyzer.<br />(John Wang and |
| +Steven Rowe via Otis Gospodnetic) </li> |
| + <li>Modified some CJK Unicode code point ranges in StandardTokenizer.jj, |
| +and added a few more of them to increase CJK character coverage. |
| +Also documented some of the ranges.<br />(Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-489">LUCENE-489</a>: Add support for leading wildcard characters (*, ?) to |
| +QueryParser. Default is to disallow them, as before.<br />(Steven Parkes via Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-703">LUCENE-703</a>: QueryParser changed to default to use of ConstantScoreRangeQuery |
| +for range queries. Added useOldRangeQuery property to QueryParser to allow |
| +selection of old RangeQuery class if required.<br />(Mark Harwood) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-543">LUCENE-543</a>: WildcardQuery now performs a TermQuery if the provided term |
| +does not contain a wildcard character (? or *), when previously a |
| +StringIndexOutOfBoundsException was thrown.<br />(Michael Busch via Erik Hatcher) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-726">LUCENE-726</a>: Removed the use of deprecated doc.fields() method and |
| +Enumeration.<br />(Michael Busch via Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-436">LUCENE-436</a>: Removed finalize() in TermInfosReader and SegmentReader, |
| +and added a call to enumerators.remove() in TermInfosReader.close(). |
| +The finalize() overrides were added to help with a pre-1.4.2 JVM bug |
| +that has since been fixed, plus we no longer support pre-1.4.2 JVMs.<br />(Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-771">LUCENE-771</a>: The default location of the write lock is now the |
| +index directory, and is named simply "write.lock" (without a big |
| +digest prefix). The system properties "org.apache.lucene.lockDir" |
| +nor "java.io.tmpdir" are no longer used as the global directory |
| +for storing lock files, and the LOCK_DIR field of FSDirectory is |
| +now deprecated.<br />(Mike McCandless) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.1.0.new_features')">New features</a> |
| + (15) <ol id="2.1.0.new_features" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-503">LUCENE-503</a>: New ThaiAnalyzer and ThaiWordFilter in contrib/analyzers<br />(Samphan Raruenrom via Chris Hostetter) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-545">LUCENE-545</a>: New FieldSelector API and associated changes to |
| +IndexReader and implementations. New Fieldable interface for use |
| +with the lazy field loading mechanism.<br />(Grant Ingersoll and Chuck |
| +Williams via Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-676">LUCENE-676</a>: Move Solr's PrefixFilter to Lucene core.<br />(Yura |
| +Smolsky, Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-678">LUCENE-678</a>: Added NativeFSLockFactory, which implements locking |
| +using OS native locking (via java.nio.*).<br />(Michael McCandless via |
| +Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-544">LUCENE-544</a>: Added the ability to specify different boosts for |
| +different fields when using MultiFieldQueryParser<br />(Matt Ericson |
| +via Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-528">LUCENE-528</a>: New IndexWriter.addIndexesNoOptimize() that doesn't |
| +optimize the index when adding new segments, only performing |
| +merges as needed.<br />(Ning Li via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-573">LUCENE-573</a>: QueryParser now allows backslash escaping in |
| +quoted terms and phrases.<br />(Michael Busch via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-716">LUCENE-716</a>: QueryParser now allows specification of Unicode |
| +characters in terms via a unicode escape of the form \uXXXX<br />(Michael Busch via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-709">LUCENE-709</a>: Added RAMDirectory.sizeInBytes(), IndexWriter.ramSizeInBytes() |
| +and IndexWriter.flushRamSegments(), allowing applications to |
| +control the amount of memory used to buffer documents.<br />(Chuck Williams via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-723">LUCENE-723</a>: QueryParser now parses *:* as MatchAllDocsQuery<br />(Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-741">LUCENE-741</a>: Command-line utility for modifying or removing norms |
| +on fields in an existing index. This is mostly based on <a href="http://issues.apache.org/jira/browse/LUCENE-496">LUCENE-496</a> |
| +and lives in contrib/miscellaneous.<br />(Chris Hostetter, Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-759">LUCENE-759</a>: Added NGramTokenizer and EdgeNGramTokenizer classes and |
| +their passing unit tests.<br />(Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-565">LUCENE-565</a>: Added methods to IndexWriter to more efficiently |
| +handle updating documents (the "delete then add" use case). This |
| +is intended to be an eventual replacement for the existing |
| +IndexModifier. Added IndexWriter.flush() (renamed from |
| +flushRamSegments()) to flush all pending updates (held in RAM), to |
| +the Directory.<br />(Ning Li via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-762">LUCENE-762</a>: Added in SIZE and SIZE_AND_BREAK FieldSelectorResult options |
| +which allow one to retrieve the size of a field without retrieving the |
| +actual field.<br />(Chuck Williams via Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-799">LUCENE-799</a>: Properly handle lazy, compressed fields.<br />(Mike Klaas via Grant Ingersoll) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.1.0.api_changes')">API Changes</a> |
| + (19) <ol id="2.1.0.api_changes" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-438">LUCENE-438</a>: Remove "final" from Token, implement Cloneable, allow |
| +changing of termText via setTermText().<br />(Yonik Seeley) </li> |
| + <li>org.apache.lucene.analysis.nl.WordlistLoader has been deprecated |
| +and is supposed to be replaced with the WordlistLoader class in |
| +package org.apache.lucene.analysis<br />(Daniel Naber) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-609">LUCENE-609</a>: Revert return type of Document.getField(s) to Field |
| +for backward compatibility, added new Document.getFieldable(s) |
| +for access to new lazy loaded fields.<br />(Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-608">LUCENE-608</a>: Document.fields() has been deprecated and a new method |
| +Document.getFields() has been added that returns a List instead of |
| +an Enumeration<br />(Daniel Naber) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-605">LUCENE-605</a>: New Explanation.isMatch() method and new ComplexExplanation |
| +subclass allows explain methods to produce Explanations which model |
| +"matching" independent of having a positive value.<br />(Chris Hostetter) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-621">LUCENE-621</a>: New static methods IndexWriter.setDefaultWriteLockTimeout |
| +and IndexWriter.setDefaultCommitLockTimeout for overriding default |
| +timeout values for all future instances of IndexWriter (as well |
| +as for any other classes that may reference the static values, |
| +ie: IndexReader).<br />(Michael McCandless via Chris Hostetter) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-638">LUCENE-638</a>: FSDirectory.list() now only returns the directory's |
| +Lucene-related files. Thanks to this change one can now construct |
| +a RAMDirectory from a file system directory that contains files |
| +not related to Lucene.<br />(Simon Willnauer via Daniel Naber) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-635">LUCENE-635</a>: Decoupling locking implementation from Directory |
| +implementation. Added set/getLockFactory to Directory and moved |
| +all locking code into subclasses of abstract class LockFactory. |
| +FSDirectory and RAMDirectory still default to their prior locking |
| +implementations, but now you can mix & match, for example using |
| +SingleInstanceLockFactory (ie, in memory locking) locking with an |
| +FSDirectory. Note that now you must call setDisableLocks before |
| +the instantiation a FSDirectory if you wish to disable locking |
| +for that Directory.<br />(Michael McCandless, Jeff Patterson via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-657">LUCENE-657</a>: Made FuzzyQuery non-final and inner ScoreTerm protected.<br />(Steven Parkes via Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-701">LUCENE-701</a>: Lockless commits: a commit lock is no longer required |
| +when a writer commits and a reader opens the index. This includes |
| +a change to the index file format (see docs/fileformats.html for |
| +details). It also removes all APIs associated with the commit |
| +lock & its timeout. Readers are now truly read-only and do not |
| +block one another on startup. This is the first step to getting |
| +Lucene to work correctly over NFS (second step is |
| +<a href="http://issues.apache.org/jira/browse/LUCENE-710">LUCENE-710</a>).<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-722">LUCENE-722</a>: DEFAULT_MIN_DOC_FREQ was misspelled DEFALT_MIN_DOC_FREQ |
| +in Similarity's MoreLikeThis class. The misspelling has been |
| +replaced by the correct spelling.<br />(Andi Vajda via Daniel Naber) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-738">LUCENE-738</a>: Reduce the size of the file that keeps track of which |
| +documents are deleted when the number of deleted documents is |
| +small. This changes the index file format and cannot be |
| +read by previous versions of Lucene.<br />(Doron Cohen via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-756">LUCENE-756</a>: Maintain all norms in a single .nrm file to reduce the |
| +number of open files and file descriptors for the non-compound index |
| +format. This changes the index file format, but maintains the |
| +ability to read and update older indices. The first segment merge |
| +on an older format index will create a single .nrm file for the new |
| +segment.<br />(Doron Cohen via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-732">LUCENE-732</a>: DateTools support has been added to QueryParser, with |
| +setters for both the default Resolution, and per-field Resolution. |
| +For backwards compatibility, DateField is still used if no Resolutions |
| +are specified.<br />(Michael Busch via Chris Hostetter) </li> |
| + <li>Added isOptimized() method to IndexReader.<br />(Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-773">LUCENE-773</a>: Deprecate the FSDirectory.getDirectory(*) methods that |
| +take a boolean "create" argument. Instead you should use |
| +IndexWriter's "create" argument to create a new index.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-780">LUCENE-780</a>: Add a static Directory.copy() method to copy files |
| +from one Directory to another.<br />(Jiri Kuhn via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-773">LUCENE-773</a>: Added Directory.clearLock(String name) to forcefully |
| +remove an old lock. The default implementation is to ask the |
| +lockFactory (if non null) to clear the lock.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-795">LUCENE-795</a>: Directory.renameFile() has been deprecated as it is |
| +not used anymore inside Lucene.<br />(Daniel Naber) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.1.0.bug_fixes')">Bug fixes</a> |
| + (32) <ol id="2.1.0.bug_fixes" style="display:none"> |
| + <li>Fixed the web application demo (built with "ant war-demo") which |
| +didn't work because it used a QueryParser method that had |
| +been removed<br />(Daniel Naber) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-583">LUCENE-583</a>: ISOLatin1AccentFilter fails to preserve positionIncrement<br />(Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-575">LUCENE-575</a>: SpellChecker min score is incorrectly changed by suggestSimilar<br />(Karl Wettin via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-587">LUCENE-587</a>: Explanation.toHtml was producing malformed HTML<br />(Chris Hostetter) </li> |
| + <li>Fix to allow MatchAllDocsQuery to be used with RemoteSearcher<br />(Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-601">LUCENE-601</a>: RAMDirectory and RAMFile made Serializable<br />(Karl Wettin via Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-557">LUCENE-557</a>: Fixes to BooleanQuery and FilteredQuery so that the score |
| +Explanations match up with the real scores.<br />(Chris Hostetter) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-607">LUCENE-607</a>: ParallelReader's TermEnum fails to advance properly to |
| +new fields<br />(Chuck Williams, Christian Kohlschuetter via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-610">LUCENE-610</a>,<a href="http://issues.apache.org/jira/browse/LUCENE-611">LUCENE-611</a>: Simple syntax changes to allow compilation with ecj: |
| +disambiguate inner class scorer's use of doc() in BooleanScorer2, |
| +other test code changes.<br />(DM Smith via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-451">LUCENE-451</a>: All core query types now use ComplexExplanations so that |
| +boosts of zero don't confuse the BooleanWeight explain method.<br />(Chris Hostetter) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-593">LUCENE-593</a>: Fixed LuceneDictionary's inner Iterator<br />(KÃ¥re Fiedler Christiansen via Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-641">LUCENE-641</a>: fixed an off-by-one bug with IndexWriter.setMaxFieldLength()<br />(Daniel Naber) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-659">LUCENE-659</a>: Make PerFieldAnalyzerWrapper delegate getPositionIncrementGap() |
| +to the correct analyzer for the field.<br />(Chuck Williams via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-650">LUCENE-650</a>: Fixed NPE in Locale specific String Sort when Document |
| +has no value.<br />(Oliver Hutchison via Chris Hostetter) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-683">LUCENE-683</a>: Fixed data corruption when reading lazy loaded fields.<br />(Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-678">LUCENE-678</a>: Fixed bug in NativeFSLockFactory which caused the same |
| +lock to be shared between different directories.<br />(Michael McCandless via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-690">LUCENE-690</a>: Fixed thread unsafe use of IndexInput by lazy loaded fields.<br />(Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-696">LUCENE-696</a>: Fix bug when scorer for DisjunctionMaxQuery has skipTo() |
| +called on it before next().<br />(Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-569">LUCENE-569</a>: Fixed SpanNearQuery bug, for 'inOrder' queries it would fail |
| +to recognize ordered spans if they overlapped with unordered spans.<br />(Paul Elschot via Chris Hostetter) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-706">LUCENE-706</a>: Updated fileformats.xml|html concerning the docdelta value |
| +in the frequency file.<br />(Johan Stuyts, Doron Cohen via Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-715">LUCENE-715</a>: Fixed private constructor in IndexWriter.java to |
| +properly release the acquired write lock if there is an |
| +IOException after acquiring the write lock but before finishing |
| +instantiation.<br />(Matthew Bogosian via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-651">LUCENE-651</a>: Multiple different threads requesting the same |
| +FieldCache entry (often for Sorting by a field) at the same |
| +time caused multiple generations of that entry, which was |
| +detrimental to performance and memory use.<br />(Oliver Hutchison via Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-717">LUCENE-717</a>: Fixed build.xml not to fail when there is no lib dir.<br />(Doron Cohen via Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-728">LUCENE-728</a>: Removed duplicate/old MoreLikeThis and SimilarityQueries |
| +classes from contrib/similarity, as their new home is under |
| +contrib/queries.<br />(Otis Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-669">LUCENE-669</a>: Do not double-close the RandomAccessFile in |
| +FSIndexInput/Output during finalize(). Besides sending an |
| +IOException up to the GC, this may also be the cause intermittent |
| +"The handle is invalid" IOExceptions on Windows when trying to |
| +close readers or writers.<br />(Michael Busch via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-702">LUCENE-702</a>: Fix IndexWriter.addIndexes(*) to not corrupt the index |
| +on any exceptions (eg disk full). The semantics of these methods |
| +is now transactional: either all indices are merged or none are. |
| +Also fixed IndexWriter.mergeSegments (called outside of |
| +addIndexes(*) by addDocument, optimize, flushRamSegments) and |
| +IndexReader.commit() (called by close) to clean up and keep the |
| +instance state consistent to what's actually in the index (Mike |
| +McCandless). |
| + </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-129">LUCENE-129</a>: Change finalizers to do "try {...} finally |
| +{super.finalize();}" to make sure we don't miss finalizers in |
| +classes above us.<br />(Esmond Pitt via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-754">LUCENE-754</a>: Fix a problem introduced by <a href="http://issues.apache.org/jira/browse/LUCENE-651">LUCENE-651</a>, causing |
| +IndexReaders to hang around forever, in addition to not |
| +fixing the original FieldCache performance problem.<br />(Chris Hostetter, Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-140">LUCENE-140</a>: Fix IndexReader.deleteDocument(int docNum) to |
| +correctly raise ArrayIndexOutOfBoundsException when docNum is too |
| +large. Previously, if docNum was only slightly too large (within |
| +the same multiple of 8, ie, up to 7 ints beyond maxDoc), no |
| +exception would be raised and instead the index would become |
| +silently corrupted. The corruption then only appears much later, |
| +in mergeSegments, when the corrupted segment is merged with |
| +segment(s) after it.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-768">LUCENE-768</a>: Fix case where an Exception during deleteDocument, |
| +undeleteAll or setNorm in IndexReader could leave the reader in a |
| +state where close() fails to release the write lock.<br />(Mike McCandless) </li> |
| + <li>Remove "tvp" from known index file extensions because it is |
| +never used.<br />(Nicolas Lalevée via Bernhard Messer) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-767">LUCENE-767</a>: Change how SegmentReader.maxDoc() is computed to not |
| +rely on file length check and instead use the SegmentInfo's |
| +docCount that's already stored explicitly in the index. This is a |
| +defensive bug fix (ie, there is no known problem seen "in real |
| +life" due to this, just a possible future problem).<br />(Chuck |
| +Williams via Mike McCandless) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.1.0.optimizations')">Optimizations</a> |
| + (16) <ol id="2.1.0.optimizations" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-586">LUCENE-586</a>: TermDocs.skipTo() is now more efficient for |
| +multi-segment indexes. This will improve the performance of many |
| +types of queries against a non-optimized index.<br />(Andrew Hudson |
| +via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-623">LUCENE-623</a>: RAMDirectory.close now nulls out its reference to all |
| +internal "files", allowing them to be GCed even if references to the |
| +RAMDirectory itself still exist.<br />(Nadav Har'El via Chris Hostetter) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-629">LUCENE-629</a>: Compressed fields are no longer uncompressed and |
| +recompressed during segment merges (e.g. during indexing or |
| +optimizing), thus improving performance .<br />(Michael Busch via Otis |
| +Gospodnetic) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-388">LUCENE-388</a>: Improve indexing performance when maxBufferedDocs is |
| +large by keeping a count of buffered documents rather than |
| +counting after each document addition.<br />(Doron Cohen, Paul Smith, |
| +Yonik Seeley) </li> |
| + <li>Modified TermScorer.explain to use TermDocs.skipTo() instead of |
| +looping through docs.<br />(Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-672">LUCENE-672</a>: New indexing segment merge policy flushes all |
| +buffered docs to their own segment and delays a merge until |
| +mergeFactor segments of a certain level have been accumulated. |
| +This increases indexing performance in the presence of deleted |
| +docs or partially full segments as well as enabling future |
| +optimizations. |
| +<p/> |
| +NOTE: this also fixes an "under-merging" bug whereby it is |
| +possible to get far too many segments in your index (which will |
| +drastically slow down search, risks exhausting file descriptor |
| +limit, etc.). This can happen when the number of buffered docs |
| +at close, plus the number of docs in the last non-ram segment is |
| +greater than mergeFactor.<br />(Ning Li, Yonik Seeley) </li> |
| + <li>Lazy loaded fields unnecessarily retained an extra copy of loaded |
| +String data.<br />(Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-443">LUCENE-443</a>: ConjunctionScorer performance increase. Speed up |
| +any BooleanQuery with more than one mandatory clause.<br />(Abdul Chaudhry, Paul Elschot via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-365">LUCENE-365</a>: DisjunctionSumScorer performance increase of |
| +~30%. Speeds up queries with optional clauses.<br />(Paul Elschot via |
| +Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-695">LUCENE-695</a>: Optimized BufferedIndexInput.readBytes() for medium |
| +size buffers, which will speed up merging and retrieving binary |
| +and compressed fields.<br />(Nadav Har'El via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-687">LUCENE-687</a>: Lazy skipping on proximity file speeds up most |
| +queries involving term positions, including phrase queries.<br />(Michael Busch via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-714">LUCENE-714</a>: Replaced 2 cases of manual for-loop array copying |
| +with calls to System.arraycopy instead, in DocumentWriter.java.<br />(Nicolas Lalevee via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-729">LUCENE-729</a>: Non-recursive skipTo and next implementation of |
| +TermDocs for a MultiReader. The old implementation could |
| +recurse up to the number of segments in the index.<br />(Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-739">LUCENE-739</a>: Improve segment merging performance by reusing |
| +the norm array across different fields and doing bulk writes |
| +of norms of segments with no deleted docs.<br />(Michael Busch via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-745">LUCENE-745</a>: Add BooleanQuery.clauses(), allowing direct access |
| +to the List of clauses and replaced the internal synchronized Vector |
| +with an unsynchronized List.<br />(Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-750">LUCENE-750</a>: Remove finalizers from FSIndexOutput and move the |
| +FSIndexInput finalizer to the actual file so all clones don't |
| +register a new finalizer.<br />(Yonik Seeley) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.1.0.test_cases')">Test Cases</a> |
| + (3) <ol id="2.1.0.test_cases" style="display:none"> |
| + <li>Added TestTermScorer.java<br />(Grant Ingersoll) </li> |
| + <li>Added TestWindowsMMap.java<br />(Benson Margulies via Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-744">LUCENE-744</a> Append the user.name property onto the temporary directory |
| +that is created so it doesn't interfere with other users.<br />(Grant Ingersoll) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.1.0.documentation')">Documentation</a> |
| + (11) <ol id="2.1.0.documentation" style="display:none"> |
| + <li>Added style sheet to xdocs named lucene.css and included in the |
| +Anakia VSL descriptor.<br />(Grant Ingersoll) </li> |
| + <li>Added scoring.xml document into xdocs. Updated Similarity.java |
| +scoring formula.(Grant Ingersoll and Steve Rowe. Updates from: |
| +Michael McCandless, Doron Cohen, Chris Hostetter, Doug Cutting). |
| +Issue 664. |
| + </li> |
| + <li>Added javadocs for FieldSelectorResult.java.<br />(Grant Ingersoll) </li> |
| + <li>Moved xdocs directory to src/site/src/documentation/content/xdocs per |
| +Issue 707. Site now builds using Forrest, just like the other Lucene |
| +siblings. See http://wiki.apache.org/jakarta-lucene/HowToUpdateTheWebsite |
| +for info on updating the website.<br />(Grant Ingersoll with help from Steve Rowe, |
| +Chris Hostetter, Doug Cutting, Otis Gospodnetic, Yonik Seeley) </li> |
| + <li>Added in Developer and System Requirements sections under Resources<br />(Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-713">LUCENE-713</a> Updated the Term Vector section of File Formats to include |
| +documentation on how Offset and Position info are stored in the TVF file.<br />(Grant Ingersoll, Samir Abdou) </li> |
| + <li>Added in link to Clover Test Code Coverage Reports under the Develop |
| +section in Resources<br />(Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-748">LUCENE-748</a>: Added details for semantics of IndexWriter.close on |
| +hitting an Exception.<br />(Jed Wesley-Smith via Mike McCandless) </li> |
| + <li>Added some text about what is contained in releases.<br />(Eric Haszlakiewicz via Grant Ingersoll) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-758">LUCENE-758</a>: Fix javadoc to clarify that RAMDirectory(Directory) |
| +makes a full copy of the starting Directory.<br />(Mike McCandless) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-764">LUCENE-764</a>: Fix javadocs to detail temporary space requirements |
| +for IndexWriter's optimize(), addIndexes(*) and addDocument(...) |
| +methods.<br />(Mike McCandless) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.1.0.build')">Build</a> |
| + (3) <ol id="2.1.0.build" style="display:none"> |
| + <li>Added in clover test code coverage per <a href="http://issues.apache.org/jira/browse/LUCENE-721">LUCENE-721</a> |
| +To enable clover code coverage, you must have clover.jar in the ANT |
| +classpath and specify -Drun.clover=true on the command line.<br />(Michael Busch and Grant Ingersoll) </li> |
| + <li>Added a sysproperty in common-build.xml per Lucene 752 to map java.io.tmpdir to |
| +${build.dir}/test just like the tempDir sysproperty. |
| + </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-757">LUCENE-757</a> Added new target named init-dist that does setup for |
| +distribution of both binary and source distributions. Called by package |
| +and package-*-src |
| + </li> |
| + </ol> |
| + </li> |
| +</ul> |
| +<h3><a href="javascript:toggleList('2.0.0')">Release 2.0.0 [2006-05-26]</a></h3> |
| +<ul id="2.0.0" style="display:none"> |
| + <li><a href="javascript:toggleList('2.0.0.api_changes')">API Changes</a> |
| + (4) <ol id="2.0.0.api_changes" style="display:none"> |
| + <li>All deprecated methods and fields have been removed, except |
| +DateField, which will still be supported for some time |
| +so Lucene can read its date fields from old indexes<br />(Yonik Seeley & Grant Ingersoll) </li> |
| + <li>DisjunctionSumScorer is no longer public.<br />(Paul Elschot via Otis Gospodnetic) </li> |
| + <li>Creating a Field with both an empty name and an empty value |
| +now throws an IllegalArgumentException<br />(Daniel Naber) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-301">LUCENE-301</a>: Added new IndexWriter({String,File,Directory}, |
| +Analyzer) constructors that do not take a boolean "create" |
| +argument. These new constructors will create a new index if |
| +necessary, else append to the existing one.<br />(Dan Armbrust via |
| +Mike McCandless) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.0.0.new_features')">New features</a> |
| + (2) <ol id="2.0.0.new_features" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-496">LUCENE-496</a>: Command line tool for modifying the field norms of an |
| +existing index; added to contrib/miscellaneous.<br />(Chris Hostetter) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-577">LUCENE-577</a>: SweetSpotSimilarity added to contrib/miscellaneous.<br />(Chris Hostetter) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('2.0.0.bug_fixes')">Bug fixes</a> |
| + (16) <ol id="2.0.0.bug_fixes" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-330">LUCENE-330</a>: Fix issue of FilteredQuery not working properly within |
| +BooleanQuery.<br />(Paul Elschot via Erik Hatcher) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-515">LUCENE-515</a>: Make ConstantScoreRangeQuery and ConstantScoreQuery work |
| +with RemoteSearchable.<br />(Philippe Laflamme via Yonik Seeley) </li> |
| + <li>Added methods to get/set writeLockTimeout and commitLockTimeout in |
| +IndexWriter. These could be set in Lucene 1.4 using a system property. |
| +This feature had been removed without adding the corresponding |
| +getter/setter methods.<br />(Daniel Naber) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-413">LUCENE-413</a>: Fixed ArrayIndexOutOfBoundsException exceptions |
| +when using SpanQueries.<br />(Paul Elschot via Yonik Seeley) </li> |
| + <li>Implemented FilterIndexReader.getVersion() and isCurrent()<br />(Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-540">LUCENE-540</a>: Fixed a bug with IndexWriter.addIndexes(Directory[]) |
| +that sometimes caused the index order of documents to change.<br />(Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-526">LUCENE-526</a>: Fixed a bug in FieldSortedHitQueue that caused |
| +subsequent String sorts with different locales to sort identically.<br />(Paul Cowan via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-541">LUCENE-541</a>: Add missing extractTerms() to DisjunctionMaxQuery<br />(Stefan Will via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-514">LUCENE-514</a>: Added getTermArrays() and extractTerms() to |
| +MultiPhraseQuery<br />(Eric Jain & Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-512">LUCENE-512</a>: Fixed ClassCastException in ParallelReader.getTermFreqVectors<br />(frederic via Yonik) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-352">LUCENE-352</a>: Fixed bug in SpanNotQuery that manifested as |
| +NullPointerException when "exclude" query was not a SpanTermQuery.<br />(Chris Hostetter) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-572">LUCENE-572</a>: Fixed bug in SpanNotQuery hashCode, was ignoring exclude clause<br />(Chris Hostetter) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-561">LUCENE-561</a>: Fixed some ParallelReader bugs. NullPointerException if the reader |
| +didn't know about the field yet, reader didn't keep track if it had deletions, |
| +and deleteDocument calls could circumvent synchronization on the subreaders.<br />(Chuck Williams via Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-556">LUCENE-556</a>: Added empty extractTerms() implementation to MatchAllDocsQuery and |
| +ConstantScoreQuery in order to allow their use with a MultiSearcher.<br />(Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-546">LUCENE-546</a>: Removed 2GB file size limitations for RAMDirectory.<br />(Peter Royal, Michael Chan, Yonik Seeley) </li> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-485">LUCENE-485</a>: Don't hold commit lock while removing obsolete index |
| +files.<br />(Luc Vanlerberghe via cutting) </li> |
| + </ol> |
| + </li> |
| +</ul> |
| +<h3><a href="javascript:toggleList('1.9.1')">Release 1.9.1 [2006-03-02]</a></h3> |
| +<ul id="1.9.1" style="display:none"> |
| + <li><a href="javascript:toggleList('1.9.1.bug_fixes')">Bug fixes</a> |
| + (1) <ol id="1.9.1.bug_fixes" style="display:none"> |
| + <li><a href="http://issues.apache.org/jira/browse/LUCENE-511">LUCENE-511</a>: Fix a bug in the BufferedIndexOutput optimization |
| +introduced in 1.9-final.<br />(Shay Banon & Steven Tamm via cutting) </li> |
| + </ol> |
| + </li> |
| +</ul> |
| +<h3><a href="javascript:toggleList('1.9_final')">Release 1.9 final [2006-02-27]</a></h3> |
| + <ul id="1.9_final" style="display:none"> |
| + <li>Note that this release is mostly but not 100% source compatible with |
| +the previous release of Lucene (1.4.3). In other words, you should |
| +make sure your application compiles with this version of Lucene before |
| +you replace the old Lucene JAR with the new one. Many methods have |
| +been deprecated in anticipation of release 2.0, so deprecation |
| +warnings are to be expected when upgrading from 1.4.3 to 1.9. |
| + </li> |
| + </ul> |
| + <ol id="1.9_final.bug_fixes" style="display:none"> |
| + <li>The fix that made IndexWriter.setMaxBufferedDocs(1) work had negative |
| +effects on indexing performance and has thus been reverted. The |
| +argument for setMaxBufferedDocs(int) must now at least be 2, otherwise |
| +an exception is thrown.<br />(Daniel Naber) </li> |
| + </ol> |
| + <ol id="1.9_final.optimizations" style="display:none"> |
| + <li>Optimized BufferedIndexOutput.writeBytes() to use |
| +System.arraycopy() in more cases, rather than copying byte-by-byte.<br />(Lukas Zapletal via Cutting) </li> |
| + </ol> |
| +<h3><a href="javascript:toggleList('1.9_rc1')">Release 1.9 RC1 [2006-02-21]</a></h3> |
| +<ul id="1.9_rc1" style="display:none"> |
| + <li><a href="javascript:toggleList('1.9_rc1.requirements')">Requirements</a> |
| + (1) <ol id="1.9_rc1.requirements" style="display:none"> |
| + <li>To compile and use Lucene you now need Java 1.4 or later. |
| + </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('1.9_rc1.changes_in_runtime_behavior')">Changes in runtime behavior</a> |
| + (9) <ol id="1.9_rc1.changes_in_runtime_behavior" style="display:none"> |
| + <li>FuzzyQuery can no longer throw a TooManyClauses exception. If a |
| +FuzzyQuery expands to more than BooleanQuery.maxClauseCount |
| +terms only the BooleanQuery.maxClauseCount most similar terms |
| +go into the rewritten query and thus the exception is avoided.<br />(Christoph) </li> |
| + <li>Changed system property from "org.apache.lucene.lockdir" to |
| +"org.apache.lucene.lockDir", so that its casing follows the existing |
| +pattern used in other Lucene system properties.<br />(Bernhard) </li> |
| + <li>The terms of RangeQueries and FuzzyQueries are now converted to |
| +lowercase by default (as it has been the case for PrefixQueries |
| +and WildcardQueries before). Use setLowercaseExpandedTerms(false) |
| +to disable that behavior but note that this also affects |
| +PrefixQueries and WildcardQueries.<br />(Daniel Naber) </li> |
| + <li>Document frequency that is computed when MultiSearcher is used is now |
| +computed correctly and "globally" across subsearchers and indices, while |
| +before it used to be computed locally to each index, which caused |
| +ranking across multiple indices not to be equivalent.<br />(Chuck Williams, Wolf Siberski via Otis, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=31841">bug #31841</a>) </li> |
| + <li>When opening an IndexWriter with create=true, Lucene now only deletes |
| +its own files from the index directory (looking at the file name suffixes |
| +to decide if a file belongs to Lucene). The old behavior was to delete |
| +all files.<br />(Daniel Naber and Bernhard Messer, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34695">bug #34695</a>) </li> |
| + <li>The version of an IndexReader, as returned by getCurrentVersion() |
| +and getVersion() doesn't start at 0 anymore for new indexes. Instead, it |
| +is now initialized by the system time in milliseconds.<br />(Bernhard Messer via Daniel Naber) </li> |
| + <li>Several default values cannot be set via system properties anymore, as |
| +this has been considered inappropriate for a library like Lucene. For |
| +most properties there are set/get methods available in IndexWriter which |
| +you should use instead. This affects the following properties: |
| +See IndexWriter for getter/setter methods: |
| + org.apache.lucene.writeLockTimeout, org.apache.lucene.commitLockTimeout, |
| + org.apache.lucene.minMergeDocs, org.apache.lucene.maxMergeDocs, |
| + org.apache.lucene.maxFieldLength, org.apache.lucene.termIndexInterval, |
| + org.apache.lucene.mergeFactor, |
| +See BooleanQuery for getter/setter methods: |
| + org.apache.lucene.maxClauseCount |
| +See FSDirectory for getter/setter methods: |
| + disableLuceneLocks<br />(Daniel Naber) </li> |
| + <li>Fixed FieldCacheImpl to use user-provided IntParser and FloatParser, |
| +instead of using Integer and Float classes for parsing.<br />(Yonik Seeley via Otis Gospodnetic) </li> |
| + <li>Expert level search routines returning TopDocs and TopFieldDocs |
| +no longer normalize scores. This also fixes bugs related to |
| +MultiSearchers and score sorting/normalization.<br />(Luc Vanlerberghe via Yonik Seeley, <a href="http://issues.apache.org/jira/browse/LUCENE-469">LUCENE-469</a>) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('1.9_rc1.new_features')">New features</a> |
| + (33) <ol id="1.9_rc1.new_features" style="display:none"> |
| + <li>Added support for stored compressed fields (<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=31149">patch #31149</a>)<br />(Bernhard Messer via Christoph) </li> |
| + <li>Added support for binary stored fields (<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=29370">patch #29370</a>)<br />(Drew Farris and Bernhard Messer via Christoph) </li> |
| + <li>Added support for position and offset information in term vectors |
| +(<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=18927">patch #18927</a>).<br />(Grant Ingersoll & Christoph) </li> |
| + <li>A new class DateTools has been added. It allows you to format dates |
| +in a readable format adequate for indexing. Unlike the existing |
| +DateField class DateTools can cope with dates before 1970 and it |
| +forces you to specify the desired date resolution (e.g. month, day, |
| +second, ...) which can make RangeQuerys on those fields more efficient.<br />(Daniel Naber) </li> |
| + <li>QueryParser now correctly works with Analyzers that can return more |
| +than one token per position. For example, a query "+fast +car" |
| +would be parsed as "+fast +(car automobile)" if the Analyzer |
| +returns "car" and "automobile" at the same position whenever it |
| +finds "car" (<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=23307">Patch #23307</a>).<br />(Pierrick Brihaye, Daniel Naber) </li> |
| + <li>Permit unbuffered Directory implementations (e.g., using mmap). |
| +InputStream is replaced by the new classes IndexInput and |
| +BufferedIndexInput. OutputStream is replaced by the new classes |
| +IndexOutput and BufferedIndexOutput. InputStream and OutputStream |
| +are now deprecated and FSDirectory is now subclassable.<br />(cutting) </li> |
| + <li>Add native Directory and TermDocs implementations that work under |
| +GCJ. These require GCC 3.4.0 or later and have only been tested |
| +on Linux. Use 'ant gcj' to build demo applications.<br />(cutting) </li> |
| + <li>Add MMapDirectory, which uses nio to mmap input files. This is |
| +still somewhat slower than FSDirectory. However it uses less |
| +memory per query term, since a new buffer is not allocated per |
| +term, which may help applications which use, e.g., wildcard |
| +queries. It may also someday be faster.<br />(cutting & Paul Elschot) </li> |
| + <li>Added javadocs-internal to build.xml - <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=30360">bug #30360</a><br />(Paul Elschot via Otis) </li> |
| + <li>Added RangeFilter, a more generically useful filter than DateFilter.<br />(Chris M Hostetter via Erik) </li> |
| + <li>Added NumberTools, a utility class indexing numeric fields.<br />(adapted from code contributed by Matt Quail; committed by Erik) </li> |
| + <li>Added public static IndexReader.main(String[] args) method. |
| +IndexReader can now be used directly at command line level |
| +to list and optionally extract the individual files from an existing |
| +compound index file.<br />(adapted from code contributed by Garrett Rooney; committed by Bernhard) </li> |
| + <li>Add IndexWriter.setTermIndexInterval() method. See javadocs.<br />(Doug Cutting) </li> |
| + <li>Added LucenePackage, whose static get() method returns java.util.Package, |
| +which lets the caller get the Lucene version information specified in |
| +the Lucene Jar.<br />(Doug Cutting via Otis) </li> |
| + <li>Added Hits.iterator() method and corresponding HitIterator and Hit objects. |
| +This provides standard java.util.Iterator iteration over Hits. |
| +Each call to the iterator's next() method returns a Hit object.<br />(Jeremy Rayner via Erik) </li> |
| + <li>Add ParallelReader, an IndexReader that combines separate indexes |
| +over different fields into a single virtual index.<br />(Doug Cutting) </li> |
| + <li>Add IntParser and FloatParser interfaces to FieldCache, so that |
| +fields in arbitrarily formats can be cached as ints and floats.<br />(Doug Cutting) </li> |
| + <li>Added class org.apache.lucene.index.IndexModifier which combines |
| +IndexWriter and IndexReader, so you can add and delete documents without |
| +worrying about synchronization/locking issues.<br />(Daniel Naber) </li> |
| + <li>Lucene can now be used inside an unsigned applet, as Lucene's access |
| +to system properties will not cause a SecurityException anymore.<br />(Jon Schuster via Daniel Naber, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34359">bug #34359</a>) </li> |
| + <li>Added a new class MatchAllDocsQuery that matches all documents.<br />(John Wang via Daniel Naber, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34946">bug #34946</a>) </li> |
| + <li>Added ability to omit norms on a per field basis to decrease |
| +index size and memory consumption when there are many indexed fields. |
| +See Field.setOmitNorms()<br />(Yonik Seeley, <a href="http://issues.apache.org/jira/browse/LUCENE-448">LUCENE-448</a>) </li> |
| + <li>Added NullFragmenter to contrib/highlighter, which is useful for |
| +highlighting entire documents or fields.<br />(Erik Hatcher) </li> |
| + <li>Added regular expression queries, RegexQuery and SpanRegexQuery. |
| +Note the same term enumeration caveats apply with these queries as |
| +apply to WildcardQuery and other term expanding queries. |
| +These two new queries are not currently supported via QueryParser.<br />(Erik Hatcher) </li> |
| + <li>Added ConstantScoreQuery which wraps a filter and produces a score |
| +equal to the query boost for every matching document.<br />(Yonik Seeley, <a href="http://issues.apache.org/jira/browse/LUCENE-383">LUCENE-383</a>) </li> |
| + <li>Added ConstantScoreRangeQuery which produces a constant score for |
| +every document in the range. One advantage over a normal RangeQuery |
| +is that it doesn't expand to a BooleanQuery and thus doesn't have a maximum |
| +number of terms the range can cover. Both endpoints may also be open.<br />(Yonik Seeley, <a href="http://issues.apache.org/jira/browse/LUCENE-383">LUCENE-383</a>) </li> |
| + <li>Added ability to specify a minimum number of optional clauses that |
| +must match in a BooleanQuery. See BooleanQuery.setMinimumNumberShouldMatch().<br />(Paul Elschot, Chris Hostetter via Yonik Seeley, <a href="http://issues.apache.org/jira/browse/LUCENE-395">LUCENE-395</a>) </li> |
| + <li>Added DisjunctionMaxQuery which provides the maximum score across its clauses. |
| +It's very useful for searching across multiple fields.<br />(Chuck Williams via Yonik Seeley, <a href="http://issues.apache.org/jira/browse/LUCENE-323">LUCENE-323</a>) </li> |
| + <li>New class ISOLatin1AccentFilter that replaces accented characters in the ISO |
| +Latin 1 character set by their unaccented equivalent.<br />(Sven Duzont via Erik Hatcher) </li> |
| + <li>New class KeywordAnalyzer. "Tokenizes" the entire stream as a single token. |
| +This is useful for data like zip codes, ids, and some product names.<br />(Erik Hatcher) </li> |
| + <li>Copied LengthFilter from contrib area to core. Removes words that are too |
| +long and too short from the stream.<br />(David Spencer via Otis and Daniel) </li> |
| + <li>Added getPositionIncrementGap(String fieldName) to Analyzer. This allows |
| +custom analyzers to put gaps between Field instances with the same field |
| +name, preventing phrase or span queries crossing these boundaries. The |
| +default implementation issues a gap of 0, allowing the default token |
| +position increment of 1 to put the next field's first token into a |
| +successive position.<br />(Erik Hatcher, with advice from Yonik) </li> |
| + <li>StopFilter can now ignore case when checking for stop words.<br />(Grant Ingersoll via Yonik, <a href="http://issues.apache.org/jira/browse/LUCENE-248">LUCENE-248</a>) </li> |
| + <li>Add TopDocCollector and TopFieldDocCollector. These simplify the |
| +implementation of hit collectors that collect only the |
| +top-scoring or top-sorting hits. |
| + </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('1.9_rc1.api_changes')">API Changes</a> |
| + (5) <ol id="1.9_rc1.api_changes" style="display:none"> |
| + <li>Several methods and fields have been deprecated. The API documentation |
| +contains information about the recommended replacements. It is planned |
| +that most of the deprecated methods and fields will be removed in |
| +Lucene 2.0.<br />(Daniel Naber) </li> |
| + <li>The Russian and the German analyzers have been moved to contrib/analyzers. |
| +Also, the WordlistLoader class has been moved one level up in the |
| +hierarchy and is now org.apache.lucene.analysis.WordlistLoader<br />(Daniel Naber) </li> |
| + <li>The API contained methods that declared to throw an IOException |
| +but that never did this. These declarations have been removed. If |
| +your code tries to catch these exceptions you might need to remove |
| +those catch clauses to avoid compile errors.<br />(Daniel Naber) </li> |
| + <li>Add a serializable Parameter Class to standardize parameter enum |
| +classes in BooleanClause and Field.<br />(Christoph) </li> |
| + <li>Added rewrite methods to all SpanQuery subclasses that nest other SpanQuerys. |
| +This allows custom SpanQuery subclasses that rewrite (for term expansion, for |
| +example) to nest within the built-in SpanQuery classes successfully. |
| + </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('1.9_rc1.bug_fixes')">Bug fixes</a> |
| + (24) <ol id="1.9_rc1.bug_fixes" style="display:none"> |
| + <li>The JSP demo page (src/jsp/results.jsp) now properly closes the |
| +IndexSearcher it opens.<br />(Daniel Naber) </li> |
| + <li>Fixed a bug in IndexWriter.addIndexes(IndexReader[] readers) that |
| +prevented deletion of obsolete segments.<br />(Christoph Goller) </li> |
| + <li>Fix in FieldInfos to avoid the return of an extra blank field in |
| +IndexReader.getFieldNames() (<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19058">Patch #19058</a>).<br />(Mark Harwood via Bernhard) </li> |
| + <li>Some combinations of BooleanQuery and MultiPhraseQuery (formerly |
| +PhrasePrefixQuery) could provoke UnsupportedOperationException |
| +(<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=33161">bug #33161</a>).<br />(Rhett Sutphin via Daniel Naber) </li> |
| + <li>Small bug in skipTo of ConjunctionScorer that caused NullPointerException |
| +if skipTo() was called without prior call to next() fixed.<br />(Christoph) </li> |
| + <li>Disable Similiarty.coord() in the scoring of most automatically |
| +generated boolean queries. The coord() score factor is |
| +appropriate when clauses are independently specified by a user, |
| +but is usually not appropriate when clauses are generated |
| +automatically, e.g., by a fuzzy, wildcard or range query. Matches |
| +on such automatically generated queries are no longer penalized |
| +for not matching all terms.<br />(Doug Cutting, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=33472">Patch #33472</a>) </li> |
| + <li>Getting a lock file with Lock.obtain(long) was supposed to wait for |
| +a given amount of milliseconds, but this didn't work.<br />(John Wang via Daniel Naber, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=33799">Bug #33799</a>) </li> |
| + <li>Fix FSDirectory.createOutput() to always create new files. |
| +Previously, existing files were overwritten, and an index could be |
| +corrupted when the old version of a file was longer than the new. |
| +Now any existing file is first removed.<br />(Doug Cutting) </li> |
| + <li>Fix BooleanQuery containing nested SpanTermQuery's, which previously |
| +could return an incorrect number of hits.<br />(Reece Wilton via Erik Hatcher, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=35157">Bug #35157</a>) </li> |
| + <li>Fix NullPointerException that could occur with a MultiPhraseQuery |
| +inside a BooleanQuery.<br />(Hans Hjelm and Scotty Allen via Daniel Naber, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=35626">Bug #35626</a>) </li> |
| + <li>Fixed SnowballFilter to pass through the position increment from |
| +the original token.<br />(Yonik Seeley via Erik Hatcher, <a href="http://issues.apache.org/jira/browse/LUCENE-437">LUCENE-437</a>) </li> |
| + <li>Added Unicode range of Korean characters to StandardTokenizer, |
| +grouping contiguous characters into a token rather than one token |
| +per character. This change also changes the token type to "<CJ>" |
| +for Chinese and Japanese character tokens (previously it was "<CJK>").<br />(Cheolgoo Kang via Otis and Erik, <a href="http://issues.apache.org/jira/browse/LUCENE-444">LUCENE-444</a> and <a href="http://issues.apache.org/jira/browse/LUCENE-461">LUCENE-461</a>) </li> |
| + <li>FieldsReader now looks at FieldInfo.storeOffsetWithTermVector and |
| +FieldInfo.storePositionWithTermVector and creates the Field with |
| +correct TermVector parameter.<br />(Frank Steinmann via Bernhard, <a href="http://issues.apache.org/jira/browse/LUCENE-455">LUCENE-455</a>) </li> |
| + <li>Fixed WildcardQuery to prevent "cat" matching "ca??".<br />(Xiaozheng Ma via Bernhard, <a href="http://issues.apache.org/jira/browse/LUCENE-306">LUCENE-306</a>) </li> |
| + <li>Fixed a bug where MultiSearcher and ParallelMultiSearcher could |
| +change the sort order when sorting by string for documents without |
| +a value for the sort field.<br />(Luc Vanlerberghe via Yonik, <a href="http://issues.apache.org/jira/browse/LUCENE-453">LUCENE-453</a>) </li> |
| + <li>Fixed a sorting problem with MultiSearchers that can lead to |
| +missing or duplicate docs due to equal docs sorting in an arbitrary order.<br />(Yonik Seeley, <a href="http://issues.apache.org/jira/browse/LUCENE-456">LUCENE-456</a>) </li> |
| + <li>A single hit using the expert level sorted search methods |
| +resulted in the score not being normalized.<br />(Yonik Seeley, <a href="http://issues.apache.org/jira/browse/LUCENE-462">LUCENE-462</a>) </li> |
| + <li>Fixed inefficient memory usage when loading an index into RAMDirectory.<br />(Volodymyr Bychkoviak via Bernhard, <a href="http://issues.apache.org/jira/browse/LUCENE-475">LUCENE-475</a>) </li> |
| + <li>Corrected term offsets returned by ChineseTokenizer.<br />(Ray Tsang via Erik Hatcher, <a href="http://issues.apache.org/jira/browse/LUCENE-324">LUCENE-324</a>) </li> |
| + <li>Fixed MultiReader.undeleteAll() to correctly update numDocs.<br />(Robert Kirchgessner via Doug Cutting, <a href="http://issues.apache.org/jira/browse/LUCENE-479">LUCENE-479</a>) </li> |
| + <li>Race condition in IndexReader.getCurrentVersion() and isCurrent() |
| +fixed by acquiring the commit lock.<br />(Luc Vanlerberghe via Yonik Seeley, <a href="http://issues.apache.org/jira/browse/LUCENE-481">LUCENE-481</a>) </li> |
| + <li>IndexWriter.setMaxBufferedDocs(1) didn't have the expected effect, |
| +this has now been fixed.<br />(Daniel Naber) </li> |
| + <li>Fixed QueryParser when called with a date in local form like |
| +"[1/16/2000 TO 1/18/2000]". This query did not include the documents |
| +of 1/18/2000, i.e. the last day was not included.<br />(Daniel Naber) </li> |
| + <li>Removed sorting constraint that threw an exception if there were |
| +not yet any values for the sort field<br />(Yonik Seeley, <a href="http://issues.apache.org/jira/browse/LUCENE-374">LUCENE-374</a>) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('1.9_rc1.optimizations')">Optimizations</a> |
| + (11) <ol id="1.9_rc1.optimizations" style="display:none"> |
| + <li>Disk usage (peak requirements during indexing and optimization) |
| +in case of compound file format has been improved.<br />(Bernhard, Dmitry, and Christoph) </li> |
| + <li>Optimize the performance of certain uses of BooleanScorer, |
| +TermScorer and IndexSearcher. In particular, a BooleanQuery |
| +composed of TermQuery, with not all terms required, that returns a |
| +TopDocs (e.g., through a Hits with no Sort specified) runs much |
| +faster.<br />(cutting) </li> |
| + <li>Removed synchronization from reading of term vectors with an |
| +IndexReader (<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=30736">Patch #30736</a>).<br />(Bernhard Messer via Christoph) </li> |
| + <li>Optimize term-dictionary lookup to allocate far fewer terms when |
| +scanning for the matching term. This speeds searches involving |
| +low-frequency terms, where the cost of dictionary lookup can be |
| +significant.<br />(cutting) </li> |
| + <li>Optimize fuzzy queries so the standard fuzzy queries with a prefix |
| +of 0 now run 20-50% faster (<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=31882">Patch #31882</a>).<br />(Jonathan Hager via Daniel Naber) </li> |
| + <li>A Version of BooleanScorer (BooleanScorer2) added that delivers |
| +documents in increasing order and implements skipTo. For queries |
| +with required or forbidden clauses it may be faster than the old |
| +BooleanScorer, for BooleanQueries consisting only of optional |
| +clauses it is probably slower. The new BooleanScorer is now the |
| +default.<br />(<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=31785">Patch 31785</a> by Paul Elschot via Christoph) </li> |
| + <li>Use uncached access to norms when merging to reduce RAM usage. |
| +(<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=32847">Bug #32847</a>).<br />(Doug Cutting) </li> |
| + <li>Don't read term index when random-access is not required. This |
| +reduces time to open IndexReaders and they use less memory when |
| +random access is not required, e.g., when merging segments. The |
| +term index is now read into memory lazily at the first |
| +random-access.<br />(Doug Cutting) </li> |
| + <li>Optimize IndexWriter.addIndexes(Directory[]) when the number of |
| +added indexes is larger than mergeFactor. Previously this could |
| +result in quadratic performance. Now performance is n log(n).<br />(Doug Cutting) </li> |
| + <li>Speed up the creation of TermEnum for indices with multiple |
| +segments and deleted documents, and thus speed up PrefixQuery, |
| +RangeQuery, WildcardQuery, FuzzyQuery, RangeFilter, DateFilter, |
| +and sorting the first time on a field.<br />(Yonik Seeley, <a href="http://issues.apache.org/jira/browse/LUCENE-454">LUCENE-454</a>) </li> |
| + <li>Optimized and generalized 32 bit floating point to byte |
| +(custom 8 bit floating point) conversions. Increased the speed of |
| +Similarity.encodeNorm() anywhere from 10% to 250%, depending on the JVM.<br />(Yonik Seeley, <a href="http://issues.apache.org/jira/browse/LUCENE-467">LUCENE-467</a>) </li> |
| + </ol> |
| + </li> |
| + <li><a href="javascript:toggleList('1.9_rc1.infrastructure')">Infrastructure</a> |
| + (2) <ol id="1.9_rc1.infrastructure" style="display:none"> |
| + <li>Lucene's source code repository has converted from CVS to |
| +Subversion. The new repository is at |
| +http://svn.apache.org/repos/asf/lucene/java/trunk |
| + </li> |
| + <li>Lucene's issue tracker has migrated from Bugzilla to JIRA. |
| +Lucene's JIRA is at http://issues.apache.org/jira/browse/LUCENE |
| +The old issues are still available at |
| +http://issues.apache.org/bugzilla/show_bug.cgi?id=xxxx<br />(use the bug number instead of xxxx) </li> |
| + </ol> |
| + </li> |
| +</ul> |
| +<h3><a href="javascript:toggleList('1.4.3')">Release 1.4.3 [2004-12-07]</a></h3> |
| + <ol id="1.4.3" style="display:none"> |
| + <li>The JSP demo page (src/jsp/results.jsp) now properly escapes error |
| +messages which might contain user input (e.g. error messages about |
| +query parsing). If you used that page as a starting point for your |
| +own code please make sure your code also properly escapes HTML |
| +characters from user input in order to avoid so-called cross site |
| +scripting attacks.<br />(Daniel Naber) </li> |
| + <li>QueryParser changes in 1.4.2 broke the QueryParser API. Now the old |
| +API is supported again.<br />(Christoph) </li> |
| + </ol> |
| +<h3><a href="javascript:toggleList('1.4.2')">Release 1.4.2 [2004-10-01]</a></h3> |
| + <ol id="1.4.2" style="display:none"> |
| + <li>Fixed <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=31241">bug #31241</a>: Sorting could lead to incorrect results (documents |
| +missing, others duplicated) if the sort keys were not unique and there |
| +were more than 100 matches.<br />(Daniel Naber) </li> |
| + <li>Memory leak in Sort code (<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=31240">bug #31240</a>) eliminated.<br />(Rafal Krzewski via Christoph and Daniel) </li> |
| + <li>FuzzyQuery now takes an additional parameter that specifies the |
| +minimum similarity that is required for a term to match the query. |
| +The QueryParser syntax for this is term~x, where x is a floating |
| +point number >= 0 and < 1 (a bigger number means that a higher |
| +similarity is required). Furthermore, a prefix can be specified |
| +for FuzzyQuerys so that only those terms are considered similar that |
| +start with this prefix. This can speed up FuzzyQuery greatly.<br />(Daniel Naber, Christoph Goller) </li> |
| + <li>PhraseQuery and PhrasePrefixQuery now allow the explicit specification |
| +of relative positions.<br />(Christoph Goller) </li> |
| + <li>QueryParser changes: Fix for ArrayIndexOutOfBoundsExceptions |
| +(<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=9110">patch #9110</a>); some unused method parameters removed; The ability |
| +to specify a minimum similarity for FuzzyQuery has been added.<br />(Christoph Goller) </li> |
| + <li>IndexSearcher optimization: a new ScoreDoc is no longer allocated |
| +for every non-zero-scoring hit. This makes 'OR' queries that |
| +contain common terms substantially faster.<br />(cutting) </li> |
| + </ol> |
| +<h3><a href="javascript:toggleList('1.4.1')">Release 1.4.1 [2004-08-02]</a></h3> |
| + <ol id="1.4.1" style="display:none"> |
| + <li>Fixed a performance bug in hit sorting code, where values were not |
| +correctly cached.<br />(Aviran via cutting) </li> |
| + <li>Fixed errors in file format documentation.<br />(Daniel Naber) </li> |
| + </ol> |
| +<h3><a href="javascript:toggleList('1.4_final')">Release 1.4 final [2004-07-01]</a></h3> |
| + <ol id="1.4_final" style="display:none"> |
| + <li>Added "an" to the list of stop words in StopAnalyzer, to complement |
| +the existing "a" there. Fix for <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=28960">bug 28960</a> |
| + (http://issues.apache.org/bugzilla/show_bug.cgi?id=28960).<br />(Otis) </li> |
| + <li>Added new class FieldCache to manage in-memory caches of field term |
| +values.<br />(Tim Jones) </li> |
| + <li>Added overloaded getFieldQuery method to QueryParser which |
| +accepts the slop factor specified for the phrase (or the default |
| +phrase slop for the QueryParser instance). This allows overriding |
| +methods to replace a PhraseQuery with a SpanNearQuery instead, |
| +keeping the proper slop factor.<br />(Erik Hatcher) </li> |
| + <li>Changed the encoding of GermanAnalyzer.java and GermanStemmer.java to |
| +UTF-8 and changed the build encoding to UTF-8, to make changed files |
| +compile.<br />(Otis Gospodnetic) </li> |
| + <li>Removed synchronization from term lookup under IndexReader methods |
| +termFreq(), termDocs() or termPositions() to improve |
| +multi-threaded performance.<br />(cutting) </li> |
| + <li>Fix a bug where obsolete segment files were not deleted on Win32. |
| + </li> |
| + </ol> |
| +<h3><a href="javascript:toggleList('1.4_rc3')">Release 1.4 RC3 [2004-05-11]</a></h3> |
| + <ol id="1.4_rc3" style="display:none"> |
| + <li>Fixed several search bugs introduced by the skipTo() changes in |
| +release 1.4RC1. The index file format was changed a bit, so |
| +collections must be re-indexed to take advantage of the skipTo() |
| +optimizations.<br />(Christoph Goller) </li> |
| + <li>Added new Document methods, removeField() and removeFields().<br />(Christoph Goller) </li> |
| + <li>Fixed inconsistencies with index closing. Indexes and directories |
| +are now only closed automatically by Lucene when Lucene opened |
| +them automatically.<br />(Christoph Goller) </li> |
| + <li>Added new class: FilteredQuery.<br />(Tim Jones) </li> |
| + <li>Added a new SortField type for custom comparators.<br />(Tim Jones) </li> |
| + <li>Lock obtain timed out message now displays the full path to the lock |
| +file.<br />(Daniel Naber via Erik) </li> |
| + <li>Fixed a bug in SpanNearQuery when ordered.<br />(Paul Elschot via cutting) </li> |
| + <li>Fixed so that FSDirectory's locks still work when the |
| +java.io.tmpdir system property is null.<br />(cutting) </li> |
| + <li>Changed FilteredTermEnum's constructor to take no parameters, |
| +as the parameters were ignored anyway<br />(<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=28858">bug #28858</a>) </li> |
| + </ol> |
| +<h3><a href="javascript:toggleList('1.4_rc2')">Release 1.4 RC2 [2004-03-30]</a></h3> |
| + <ol id="1.4_rc2" style="display:none"> |
| + <li>GermanAnalyzer now throws an exception if the stopword file |
| +cannot be found (<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=27987">bug #27987</a>). It now uses LowerCaseFilter |
| +(<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=18410">bug #18410</a>)<br />(Daniel Naber via Otis, Erik) </li> |
| + <li>Fixed a few bugs in the file format documentation.<br />(cutting) </li> |
| + </ol> |
| +<h3><a href="javascript:toggleList('1.4_rc1')">Release 1.4 RC1 [2004-03-29]</a></h3> |
| + <ol id="1.4_rc1" style="display:none"> |
| + <li>Changed the format of the .tis file, so that: |
| +<p/> |
| +- it has a format version number, which makes it easier to |
| + back-compatibly change file formats in the future. |
| +<p/> |
| +- the term count is now stored as a long. This was the one aspect |
| + of the Lucene's file formats which limited index size. |
| +<p/> |
| +- a few internal index parameters are now stored in the index, so |
| + that they can (in theory) now be changed from index to index, |
| + although there is not yet an API to do so. |
| +<p/> |
| +These changes are back compatible. The new code can read old |
| +indexes. But old code will not be able read new indexes.<br />(cutting) </li> |
| + <li>Added an optimized implementation of TermDocs.skipTo(). A skip |
| +table is now stored for each term in the .frq file. This only |
| +adds a percent or two to overall index size, but can substantially |
| +speedup many searches.<br />(cutting) </li> |
| + <li>Restructured the Scorer API and all Scorer implementations to take |
| +advantage of an optimized TermDocs.skipTo() implementation. In |
| +particular, PhraseQuerys and conjunctive BooleanQuerys are |
| +faster when one clause has substantially fewer matches than the |
| +others. (A conjunctive BooleanQuery is a BooleanQuery where all |
| +clauses are required.)<br />(cutting) </li> |
| + <li>Added new class ParallelMultiSearcher. Combined with |
| +RemoteSearchable this makes it easy to implement distributed |
| +search systems.<br />(Jean-Francois Halleux via cutting) </li> |
| + <li>Added support for hit sorting. Results may now be sorted by any |
| +indexed field. For details see the javadoc for |
| +Searcher#search(Query, Sort).<br />(Tim Jones via Cutting) </li> |
| + <li>Changed FSDirectory to auto-create a full directory tree that it |
| +needs by using mkdirs() instead of mkdir().<br />(Mladen Turk via Otis) </li> |
| + <li>Added a new span-based query API. This implements, among other |
| +things, nested phrases. See javadocs for details.<br />(Doug Cutting) </li> |
| + <li>Added new method Query.getSimilarity(Searcher), and changed |
| +scorers to use it. This permits one to subclass a Query class so |
| +that it can specify its own Similarity implementation, perhaps |
| +one that delegates through that of the Searcher.<br />(Julien Nioche |
| +via Cutting) </li> |
| + <li>Added MultiReader, an IndexReader that combines multiple other |
| +IndexReaders.<br />(Cutting) </li> |
| + <li>Added support for term vectors. See Field#isTermVectorStored().<br />(Grant Ingersoll, Cutting & Dmitry) </li> |
| + <li>Fixed the old bug with escaping of special characters in query |
| +strings: http://issues.apache.org/bugzilla/show_bug.cgi?id=24665<br />(Jean-Francois Halleux via Otis) </li> |
| + <li>Added support for overriding default values for the following, |
| +using system properties: |
| + - default commit lock timeout |
| + - default maxFieldLength |
| + - default maxMergeDocs |
| + - default mergeFactor |
| + - default minMergeDocs |
| + - default write lock timeout<br />(Otis) </li> |
| + <li>Changed QueryParser.jj to allow '-' and '+' within tokens: |
| +http://issues.apache.org/bugzilla/show_bug.cgi?id=27491<br />(Morus Walter via Otis) </li> |
| + <li>Changed so that the compound index format is used by default. |
| +This makes indexing a bit slower, but vastly reduces the chances |
| +of file handle problems.<br />(Cutting) </li> |
| + </ol> |
| +<h3><a href="javascript:toggleList('1.3_final')">Release 1.3 final [2003-12-26]</a></h3> |
| + <ol id="1.3_final" style="display:none"> |
| + <li>Added catch of BooleanQuery$TooManyClauses in QueryParser to |
| +throw ParseException instead.<br />(Erik Hatcher) </li> |
| + <li>Fixed a NullPointerException in Query.explain().<br />(Doug Cutting) </li> |
| + <li>Added a new method IndexReader.setNorm(), that permits one to |
| +alter the boosting of fields after an index is created. |
| + </li> |
| + <li>Distinguish between the final position and length when indexing a |
| +field. The length is now defined as the total number of tokens, |
| +instead of the final position, as it was previously. Length is |
| +used for score normalization (Similarity.lengthNorm()) and for |
| +controlling memory usage (IndexWriter.maxFieldLength). In both of |
| +these cases, the total number of tokens is a better value to use |
| +than the final token position. Position is used in phrase |
| +searching (see PhraseQuery and Token.setPositionIncrement()). |
| + </li> |
| + <li>Fix StandardTokenizer's handling of CJK characters (Chinese, |
| +Japanese and Korean ideograms). Previously contiguous sequences |
| +were combined in a single token, which is not very useful. Now |
| +each ideogram generates a separate token, which is more useful. |
| + </li> |
| + </ol> |
| +<h3><a href="javascript:toggleList('1.3_rc3')">Release 1.3 RC3 [2003-11-25]</a></h3> |
| + <ol id="1.3_rc3" style="display:none"> |
| + <li>Added minMergeDocs in IndexWriter. This can be raised to speed |
| +indexing without altering the number of files, but only using more |
| +memory.<br />(Julien Nioche via Otis) </li> |
| + <li>Fix <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24786">bug #24786</a>, in query rewriting.<br />(bschneeman via Cutting) </li> |
| + <li>Fix <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=16952">bug #16952</a>, in demo HTML parser, skip comments in |
| +javascript.<br />(Christoph Goller) </li> |
| + <li>Fix <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19253">bug #19253</a>, in demo HTML parser, add whitespace as needed to |
| +output<br />(Daniel Naber via Christoph Goller) </li> |
| + <li>Fix <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24301">bug #24301</a>, in demo HTML parser, long titles no longer |
| +hang things.<br />(Christoph Goller) </li> |
| + <li>Fix <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=23534">bug #23534</a>, Replace use of file timestamp of segments file |
| +with an index version number stored in the segments file. This |
| +resolves problems when running on file systems with low-resolution |
| +timestamps, e.g., HFS under MacOS X.<br />(Christoph Goller) </li> |
| + <li>Fix QueryParser so that TokenMgrError is not thrown, only |
| +ParseException.<br />(Erik Hatcher) </li> |
| + <li>Fix some bugs introduced by change 11 of RC2.<br />(Christoph Goller) </li> |
| + <li>Fixed a problem compiling TestRussianStem.<br />(Christoph Goller) </li> |
| + <li>Cleaned up some build stuff.<br />(Erik Hatcher) </li> |
| + </ol> |
| +<h3><a href="javascript:toggleList('1.3_rc2')">Release 1.3 RC2 [2003-10-22]</a></h3> |
| + <ol id="1.3_rc2" style="display:none"> |
| + <li>Added getFieldNames(boolean) to IndexReader, SegmentReader, and |
| +SegmentsReader.<br />(Julien Nioche via otis) </li> |
| + <li>Changed file locking to place lock files in |
| +System.getProperty("java.io.tmpdir"), where all users are |
| +permitted to write files. This way folks can open and correctly |
| +lock indexes which are read-only to them. |
| + </li> |
| + <li>IndexWriter: added a new method, addDocument(Document, Analyzer), |
| +permitting one to easily use different analyzers for different |
| +documents in the same index. |
| + </li> |
| + <li>Minor enhancements to FuzzyTermEnum.<br />(Christoph Goller via Otis) </li> |
| + <li>PriorityQueue: added insert(Object) method and adjusted IndexSearcher |
| +and MultiIndexSearcher to use it.<br />(Christoph Goller via Otis) </li> |
| + <li>Fixed a bug in IndexWriter that returned incorrect docCount().<br />(Christoph Goller via Otis) </li> |
| + <li>Fixed SegmentsReader to eliminate the confusing and slightly different |
| +behaviour of TermEnum when dealing with an enumeration of all terms, |
| +versus an enumeration starting from a specific term. |
| +This patch also fixes incorrect term document frequencies when the same term |
| +is present in multiple segments.<br />(Christoph Goller via Otis) </li> |
| + <li>Added CachingWrapperFilter and PerFieldAnalyzerWrapper.<br />(Erik Hatcher) </li> |
| + <li>Added support for the new "compound file" index format<br />(Dmitry |
| +Serebrennikov) </li> |
| + <li>Added Locale setting to QueryParser, for use by date range parsing. |
| + </li> |
| + <li>Changed IndexReader so that it can be subclassed by classes |
| +outside of its package. Previously it had package-private |
| +abstract methods. Also modified the index merging code so that it |
| +can work on an arbitrary IndexReader implementation, and added a |
| +new method, IndexWriter.addIndexes(IndexReader[]), to take |
| +advantage of this.<br />(cutting) </li> |
| + <li>Added a limit to the number of clauses which may be added to a |
| +BooleanQuery. The default limit is 1024 clauses. This should |
| +stop most OutOfMemoryExceptions by prefix, wildcard and fuzzy |
| +queries which run amok.<br />(cutting) </li> |
| + <li>Add new method: IndexReader.undeleteAll(). This undeletes all |
| +deleted documents which still remain in the index.<br />(cutting) </li> |
| + </ol> |
| +<h3><a href="javascript:toggleList('1.3_rc1')">Release 1.3 RC1 [2003-03-24]</a></h3> |
| + <ol id="1.3_rc1" style="display:none"> |
| + <li>Fixed PriorityQueue's clear() method. |
| +Fix for <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=9454">bug 9454</a>, http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9454<br />(Matthijs Bomhoff via otis) </li> |
| + <li>Changed StandardTokenizer.jj grammar for EMAIL tokens. |
| +Fix for <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=9015">bug 9015</a>, http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9015<br />(Dale Anson via otis) </li> |
| + <li>Added the ability to disable lock creation by using disableLuceneLocks |
| +system property. This is useful for read-only media, such as CD-ROMs.<br />(otis) </li> |
| + <li>Added id method to Hits to be able to access the index global id. |
| +Required for sorting options.<br />(carlson) </li> |
| + <li>Added support for new range query syntax to QueryParser.jj.<br />(briangoetz) </li> |
| + <li>Added the ability to retrieve HTML documents' META tag values to |
| +HTMLParser.jj.<br />(Mark Harwood via otis) </li> |
| + <li>Modified QueryParser to make it possible to programmatically specify the |
| +default Boolean operator (OR or AND).<br />(Péter Halácsy via otis) </li> |
| + <li>Made many search methods and classes non-final, per requests. |
| +This includes IndexWriter and IndexSearcher, among others.<br />(cutting) </li> |
| + <li>Added class RemoteSearchable, providing support for remote |
| +searching via RMI. The test class RemoteSearchableTest.java |
| +provides an example of how this can be used.<br />(cutting) </li> |
| + <li>Added PhrasePrefixQuery (and supporting MultipleTermPositions). The |
| +test class TestPhrasePrefixQuery provides the usage example.<br />(Anders Nielsen via otis) </li> |
| + <li>Changed the German stemming algorithm to ignore case while |
| +stripping. The new algorithm is faster and produces more equal |
| +stems from nouns and verbs derived from the same word.<br />(gschwarz) </li> |
| + <li>Added support for boosting the score of documents and fields via |
| +the new methods Document.setBoost(float) and Field.setBoost(float). |
| +<p/> |
| +Note: This changes the encoding of an indexed value. Indexes |
| +should be re-created from scratch in order for search scores to |
| +be correct. With the new code and an old index, searches will |
| +yield very large scores for shorter fields, and very small scores |
| +for longer fields. Once the index is re-created, scores will be |
| +as before.<br />(cutting) </li> |
| + <li>Added new method Token.setPositionIncrement(). |
| +<p/> |
| +This permits, for the purpose of phrase searching, placing |
| +multiple terms in a single position. This is useful with |
| +stemmers that produce multiple possible stems for a word. |
| +<p/> |
| +This also permits the introduction of gaps between terms, so that |
| +terms which are adjacent in a token stream will not be matched by |
| +and exact phrase query. This makes it possible, e.g., to build |
| +an analyzer where phrases are not matched over stop words which |
| +have been removed. |
| +<p/> |
| +Finally, repeating a token with an increment of zero can also be |
| +used to boost scores of matches on that token.<br />(cutting) </li> |
| + <li>Added new Filter class, QueryFilter. This constrains search |
| +results to only match those which also match a provided query. |
| +Results are cached, so that searches after the first on the same |
| +index using this filter are very fast. |
| +<p/> |
| +This could be used, for example, with a RangeQuery on a formatted |
| +date field to implement date filtering. One could re-use a |
| +single QueryFilter that matches, e.g., only documents modified |
| +within the last week. The QueryFilter and RangeQuery would only |
| +need to be reconstructed once per day.<br />(cutting) </li> |
| + <li>Added a new IndexWriter method, getAnalyzer(). This returns the |
| +analyzer used when adding documents to this index.<br />(cutting) </li> |
| + <li>Fixed a bug with IndexReader.lastModified(). Before, document |
| +deletion did not update this. Now it does.<br />(cutting) </li> |
| + <li>Added Russian Analyzer.<br />(Boris Okner via otis) </li> |
| + <li>Added a public, extensible scoring API. For details, see the |
| +javadoc for org.apache.lucene.search.Similarity. |
| + </li> |
| + <li>Fixed return of Hits.id() from float to int. (Terry Steichen via Peter). |
| + </li> |
| + <li>Added getFieldNames() to IndexReader and Segment(s)Reader classes.<br />(Peter Mularien via otis) </li> |
| + <li>Added getFields(String) and getValues(String) methods. |
| +Contributed by Rasik Pandey on 2002-10-09<br />(Rasik Pandey via otis) </li> |
| + <li>Revised internal search APIs. Changes include: |
| +<p/> |
| + a. Queries are no longer modified during a search. This makes |
| + it possible, e.g., to reuse the same query instance with |
| + multiple indexes from multiple threads. |
| +<p/> |
| + b. Term-expanding queries (e.g. PrefixQuery, WildcardQuery, |
| + etc.) now work correctly with MultiSearcher, fixing bugs 12619 |
| + and 12667. |
| +<p/> |
| + c. Boosting BooleanQuery's now works, and is supported by the |
| + query parser (problem reported by Lee Mallabone). Thus a query |
| + like "(+foo +bar)^2 +baz" is now supported and equivalent to |
| + "(+foo^2 +bar^2) +baz". |
| +<p/> |
| + d. New method: Query.rewrite(IndexReader). This permits a |
| + query to re-write itself as an alternate, more primitive query. |
| + Most of the term-expanding query classes (PrefixQuery, |
| + WildcardQuery, etc.) are now implemented using this method. |
| +<p/> |
| + e. New method: Searchable.explain(Query q, int doc). This |
| + returns an Explanation instance that describes how a particular |
| + document is scored against a query. An explanation can be |
| + displayed as either plain text, with the toString() method, or |
| + as HTML, with the toHtml() method. Note that computing an |
| + explanation is as expensive as executing the query over the |
| + entire index. This is intended to be used in developing |
| + Similarity implementations, and, for good performance, should |
| + not be displayed with every hit. |
| +<p/> |
| + f. Scorer and Weight are public, not package protected. It now |
| + possible for someone to write a Scorer implementation that is |
| + not in the org.apache.lucene.search package. This is still |
| + fairly advanced programming, and I don't expect anyone to do |
| + this anytime soon, but at least now it is possible. |
| +<p/> |
| + g. Added public accessors to the primitive query classes |
| + (TermQuery, PhraseQuery and BooleanQuery), permitting access to |
| + their terms and clauses. |
| +<p/> |
| +Caution: These are extensive changes and they have not yet been |
| +tested extensively. Bug reports are appreciated.<br />(cutting) </li> |
| + <li>Added convenience RAMDirectory constructors taking File and String |
| +arguments, for easy FSDirectory to RAMDirectory conversion.<br />(otis) </li> |
| + <li>Added code for manual renaming of files in FSDirectory, since it |
| +has been reported that java.io.File's renameTo(File) method sometimes |
| +fails on Windows JVMs.<br />(Matt Tucker via otis) </li> |
| + <li>Refactored QueryParser to make it easier for people to extend it. |
| +Added the ability to automatically lower-case Wildcard terms in |
| +the QueryParser.<br />(Tatu Saloranta via otis) </li> |
| + </ol> |
| +<h3><a href="javascript:toggleList('1.2_rc6')">Release 1.2 RC6 [2002-06-13]</a></h3> |
| + <ol id="1.2_rc6" style="display:none"> |
| + <li>Changed QueryParser.jj to have "?" be a special character which |
| +allowed it to be used as a wildcard term. Updated TestWildcard |
| +unit test also.<br />(Ralf Hettesheimer via carlson) </li> |
| + </ol> |
| +<h3><a href="javascript:toggleList('1.2_rc5')">Release 1.2 RC5 [2002-05-14]</a></h3> |
| + <ol id="1.2_rc5" style="display:none"> |
| + <li>Renamed build.properties to default.properties and updated |
| +the BUILD.txt document to describe how to override the |
| +default.property settings without having to edit the file. This |
| +brings the build process closer to Scarab's build process.<br />(jon) </li> |
| + <li>Added MultiFieldQueryParser class.<br />(Kelvin Tan, via otis) </li> |
| + <li>Updated "powered by" links.<br />(otis) </li> |
| + <li>Fixed instruction for setting up JavaCC - <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=7017">Bug #7017</a><br />(otis) </li> |
| + <li>Added throwing exception if FSDirectory could not create directory |
| +- <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=6914">Bug #6914</a><br />(Eugene Gluzberg via otis) </li> |
| + <li>Update MultiSearcher, MultiFieldParse, Constants, DateFilter, |
| +LowerCaseTokenizer javadoc<br />(otis) </li> |
| + <li>Added fix to avoid NullPointerException in results.jsp<br />(Mark Hayes via otis) </li> |
| + <li>Changed Wildcard search to find 0 or more char instead of 1 or more<br />(Lee Mallobone, via otis) </li> |
| + <li>Fixed error in offset issue in GermanStemFilter - <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=7412">Bug #7412</a><br />(Rodrigo Reyes, via otis) </li> |
| + <li>Added unit tests for wildcard search and DateFilter<br />(otis) </li> |
| + <li>Allow co-existence of indexed and non-indexed fields with the same name<br />(cutting/casper, via otis) </li> |
| + <li>Add escape character to query parser.<br />(briangoetz) </li> |
| + <li>Applied a patch that ensures that searches that use DateFilter |
| +don't throw an exception when no matches are found.<br />(David Smiley, via |
| +otis) </li> |
| + <li>Fixed bugs in DateFilter and wildcardquery unit tests.<br />(cutting, otis, carlson) </li> |
| + </ol> |
| +<h3><a href="javascript:toggleList('1.2_rc4')">Release 1.2 RC4 [2002-02-14]</a></h3> |
| + <ol id="1.2_rc4" style="display:none"> |
| + <li>Updated contributions section of website. |
| +Add XML Document #3 implementation to Document Section. |
| +Also added Term Highlighting to Misc Section.<br />(carlson) </li> |
| + <li>Fixed NullPointerException for phrase searches containing |
| +unindexed terms, introduced in 1.2RC3.<br />(cutting) </li> |
| + <li>Changed document deletion code to obtain the index write lock, |
| +enforcing the fact that document addition and deletion cannot be |
| +performed concurrently.<br />(cutting) </li> |
| + <li>Various documentation cleanups.<br />(otis, acoliver) </li> |
| + <li>Updated "powered by" links.<br />(cutting, jon) </li> |
| + <li>Fixed a bug in the GermanStemmer.<br />(Bernhard Messer, via otis) </li> |
| + <li>Changed Term and Query to implement Serializable.<br />(scottganyo) </li> |
| + <li>Fixed to never delete indexes added with IndexWriter.addIndexes().<br />(cutting) </li> |
| + <li>Upgraded to JUnit 3.7.<br />(otis) </li> |
| + </ol> |
| +<h3><a href="javascript:toggleList('1.2_rc3')">Release 1.2 RC3 [2002-01-27]</a></h3> |
| + <ol id="1.2_rc3" style="display:none"> |
| + <li>IndexWriter: fixed a bug where adding an optimized index to an |
| +empty index failed. This was encountered using addIndexes to copy |
| +a RAMDirectory index to an FSDirectory. |
| + </li> |
| + <li>RAMDirectory: fixed a bug where RAMInputStream could not read |
| +across more than across a single buffer boundary. |
| + </li> |
| + <li>Fix query parser so it accepts queries with unicode characters.<br />(briangoetz) </li> |
| + <li>Fix query parser so that PrefixQuery is used in preference to |
| +WildcardQuery when there's only an asterisk at the end of the |
| +term. Previously PrefixQuery would never be used. |
| + </li> |
| + <li>Fix tests so they compile; fix ant file so it compiles tests |
| +properly. Added test cases for Analyzers and PriorityQueue. |
| + </li> |
| + <li>Updated demos, added Getting Started documentation.<br />(acoliver) </li> |
| + <li>Added 'contributions' section to website & docs.<br />(carlson) </li> |
| + <li>Removed JavaCC from source distribution for copyright reasons. |
| +Folks must now download this separately from metamata in order to |
| +compile Lucene.<br />(cutting) </li> |
| + <li>Substantially improved the performance of DateFilter by adding the |
| +ability to reuse TermDocs objects.<br />(cutting) </li> |
| + <li>Added IndexReader methods: |
| + public static boolean indexExists(String directory); |
| + public static boolean indexExists(File directory); |
| + public static boolean indexExists(Directory directory); |
| + public static boolean isLocked(Directory directory); |
| + public static void unlock(Directory directory);<br />(cutting, otis) </li> |
| + <li>Fixed bugs in GermanAnalyzer<br />(gschwarz) </li> |
| + </ol> |
| +<h3><a href="javascript:toggleList('1.2_rc2')">Release 1.2 RC2 [2001-10-19]</a></h3> |
| + <ul id="1.2_rc2" style="display:none"> |
| + <li>added sources to distribution |
| + </li> |
| + <li>removed broken build scripts and libraries from distribution |
| + </li> |
| + <li>SegmentsReader: fixed potential race condition |
| + </li> |
| + <li>FSDirectory: fixed so that getDirectory(xxx,true) correctly |
| +erases the directory contents, even when the directory |
| +has already been accessed in this JVM. |
| + </li> |
| + <li>RangeQuery: Fix issue where an inclusive range query would |
| +include the nearest term in the index above a non-existant |
| +specified upper term. |
| + </li> |
| + <li>SegmentTermEnum: Fix NullPointerException in clone() method |
| +when the Term is null. |
| + </li> |
| + <li>JDK 1.1 compatibility fix: disabled lock files for JDK 1.1, |
| +since they rely on a feature added in JDK 1.2. |
| + </li> |
| + </ul> |
| +<h3><a href="javascript:toggleList('1.2_rc1')">Release 1.2 RC1 (first Apache release) [2001-10-02]</a></h3> |
| + <ul id="1.2_rc1" style="display:none"> |
| + <li>packages renamed from com.lucene to org.apache.lucene |
| + </li> |
| + <li>license switched from LGPL to Apache |
| + </li> |
| + <li>ant-only build -- no more makefiles |
| + </li> |
| + <li>addition of lock files--now fully thread & process safe |
| + </li> |
| + <li>addition of German stemmer |
| + </li> |
| + <li>MultiSearcher now supports low-level search API |
| + </li> |
| + <li>added RangeQuery, for term-range searching |
| + </li> |
| + <li>Analyzers can choose tokenizer based on field name |
| + </li> |
| + <li>misc bug fixes. |
| + </li> |
| + </ul> |
| +<h3><a href="javascript:toggleList('1.01b')">Release 1.01b (last Sourceforge release) [2001-07-02]</a></h3> |
| + <ul id="1.01b" style="display:none"> |
| + <li>a few bug fixes |
| + </li> |
| + <li>new Query Parser |
| + </li> |
| + <li>new prefix query (search for "foo*" matches "food") |
| + </li> |
| + </ul> |
| +<h3><a href="javascript:toggleList('1.0')">Release 1.0 [2000-10-04]</a></h3> |
| + <ul id="1.0" style="display:none"> |
| + <li>This release fixes a few serious bugs and also includes some |
| +performance optimizations, a stemmer, and a few other minor |
| +enhancements. |
| + </li> |
| + </ul> |
| +<h3><a href="javascript:toggleList('0.04')">Release 0.04 [2000-04-19]</a></h3> |
| + <ul id="0.04" style="display:none"> |
| + <li>Lucene now includes a grammar-based tokenizer, StandardTokenizer. |
| + </li> |
| + <li>The only tokenizer included in the previous release (LetterTokenizer) |
| +identified terms consisting entirely of alphabetic characters. The |
| +new tokenizer uses a regular-expression grammar to identify more |
| +complex classes of terms, including numbers, acronyms, email |
| +addresses, etc. |
| + </li> |
| + <li>StandardTokenizer serves two purposes: |
| + </li> |
| + <li>1. It is a much better, general purpose tokenizer for use by |
| + applications as is. |
| + </li> |
| + <li>The easiest way for applications to start using |
| +StandardTokenizer is to use StandardAnalyzer. |
| + </li> |
| + <li>2. It provides a good example of grammar-based tokenization. |
| + </li> |
| + <li>If an application has special tokenization requirements, it can |
| +implement a custom tokenizer by copying the directory containing |
| +the new tokenizer into the application and modifying it |
| +accordingly. |
| + </li> |
| + </ul> |
| +<h3><a href="javascript:toggleList('0.01')">Release 0.01 [2000-03-30]</a></h3> |
| + <ul id="0.01" style="display:none"> |
| + <li>First open source release. |
| + </li> |
| + <li>The code has been re-organized into a new package and directory |
| +structure for this release. It builds OK, but has not been tested |
| +beyond that since the re-organization. |
| + </li> |
| + </ul> |
| +</ul> |
| +</body> |
| +</html> |
| |
| Property changes on: Changes.html |
| ___________________________________________________________________ |
| Name: svn:executable |
| + * |
| Name: svn:eol-style |
| + native |
| |