Lucene Benchmark Contrib Change Log The Benchmark contrib package contains code for benchmarking Lucene in a variety of ways. $Id:$ 1/11/2010 LUCENE-2181: Add a benchmark for collation. This adds NewLocaleTask, which sets a Locale in the run data for collation to use, and can be used in the future for benchmarking localized range queries and sorts. Also add NewCollationAnalyzerTask, which works with both JDK and ICU Collator implementations. Fix ReadTokensTask to not tokenize fields unless they should be tokenized according to DocMaker config. The easiest way to run the benchmark is to run 'ant collation' (Steven Rowe via Robert Muir) 12/22/2009 LUCENE-2178: Allow multiple locations to add to the class path with -Dbenchmark.ext.classpath=... when running "ant run-task" (Steven Rowe via Mike McCandless) 12/17/2009 LUCENE-2168: Allow negative relative thread priority for BG tasks (Mike McCandless) 12/07/2009 LUCENE-2106: ReadTask does not close its Reader when OpenReader/CloseReader are not used. (Mark Miller) 11/17/2009 LUCENE-2079: Allow specifying delta thread priority after the "&"; added log.time.step.msec to print per-time-period counts; fixed NearRealTimeTask to print reopen times (in msec) of each reopen, at the end. (Mike McCandless) 11/13/2009 LUCENE-2050: Added ability to run tasks within a serial sequence in the background, by appending "&". The tasks are stopped & joined at the end of the sequence. Also added Wait and RollbackIndex tasks. Genericized NearRealTimeReaderTask to only reopen the reader (previously it spawned its own thread, and also did searching). Also changed the API of PerfRunData.getIndexReader: it now returns a reference, and it's your job to decRef the reader when you're done using it. (Mike McCandless) 11/12/2009 LUCENE-2059: allow TrecContentSource not to change the docname. Previously, it would always append the iteration # to the docname. With the new option content.source.excludeIteration, you can disable this. The resulting index can then be used with the quality package to measure relevance. (Robert Muir) 11/12/2009 LUCENE-2058: specify trec_eval submission output from the command line. Previously, 4 arguments were required, but the third was unused. The third argument is now the desired location of submission.txt (Robert Muir) 11/08/2009 LUCENE-2044: Added delete.percent.rand.seed to seed the Random instance used by DeleteByPercentTask. (Mike McCandless) 11/07/2009 LUCENE-2043: Fix CommitIndexTask to also commit pending IndexReader changes (Mike McCandless) 11/07/2009 LUCENE-2042: Added print.hits.field, to print each hit from the Search* tasks. (Mike McCandless) 11/04/2009 LUCENE-2029: Added doc.body.stored and doc.body.tokenized; each falls back to the non-body variant as its default. (Mike McCandless) 10/28/2009 LUCENE-1994: Fix thread safety of EnwikiContentSource and DocMaker when doc.reuse.fields is false. Also made docs.reuse.fields=true thread safe. (Mark Miller, Shai Erera, Mike McCandless) 8/4/2009 LUCENE-1770: Add EnwikiQueryMaker (Mark Miller) 8/04/2009 LUCENE-1773: Add FastVectorHighlighter tasks. This change is a non-backwards compatible change in how subclasses of ReadTask define a highlighter. The methods doHighlight, isMergeContiguousFragments, maxNumFragments and getHighlighter are no longer used and have been mark deprecated and package protected private so there's a compile time error. Instead, the new getBenchmarkHighlighter method should return an appropriate highlighter for the task. The configuration of the highlighter tasks (maxFrags, mergeContiguous, etc.) is now accepted as params to the task. (Koji Sekiguchi via Mike McCandless) 8/03/2009 LUCENE-1778: Add support for log.step setting per task type. Perviously, if you included a log.step line in the .alg file, it had been applied to all tasks. Now, you can include a log.step.AddDoc, or log.step.DeleteDoc (for example) to control logging for just these tasks. If you want to ommit logging for any other task, include log.step=-1. The syntax is "log.step." together with the Task's 'short' name (i.e., without the 'Task' part). (Shai Erera via Mark Miller) 7/24/2009 LUCENE-1595: Deprecate LineDocMaker and EnwikiDocMaker in favor of using DocMaker directly, with content.source = LineDocSource or EnwikiContentSource. NOTE: with this change, the "id" field from the Wikipedia XML export is now indexed as the "docname" field (previously it was indexed as "docid"). Additionaly, the SearchWithSort task now accepts all types that SortField can accept and no longer falls back to SortField.AUTO, which has been deprecated. (Mike McCandless) 7/20/2009 LUCENE-1755: Fix WriteLineDocTask to output a document if it contains either a title or body (or both). (Shai Erera via Mark Miller) 7/14/2009 LUCENE-1725: Fix the example Sort algorithm - auto is now deprecated and no longer works with Benchmark. Benchmark will now throw an exception if you specify sort fields without a type. The example sort algorithm is now typed. (Mark Miller) 7/6/2009 LUCENE-1730: Fix TrecContentSource to use ISO-8859-1 when reading the TREC files, unless a different encoding is specified. Additionally, ContentSource now supports a content.source.encoding parameter in the configuration file. (Shai Erera via Mark Miller) 6/26/2009 LUCENE-1716: Added the following support: doc.tokenized.norms: specifies whether to store norms doc.body.tokenized.norms: special attribute for the body field doc.index.props: specifies whether DocMaker should index the properties set on DocData writer.info.stream: specifies the info stream to set on IndexWriter (supported values are: SystemOut, SystemErr and a file name). (Shai Erera via Mike McCandless) 6/23/09 LUCENE-1714: WriteLineDocTask incorrectly normalized text, by replacing only occurrences of "\t" with a space. It now replaces "\r\n" in addition to that, so that LineDocMaker won't fail. (Shai Erera via Michael McCandless) 6/17/09 LUCENE-1595: This issue breaks previous external algorithms. DocMaker has been replaced with a concrete class which accepts a ContentSource for iterating over a content source's documents. Most of the old DocMakers were changed to a ContentSource implementation, and DocMaker is now a default document creation impl that provides an easy way for reusing fields. When [doc.maker] is not defined in an algorithm, the new DocMaker is the default. If you have .alg files which specify a DocMaker (like ReutersDocMaker), you should change the [doc.maker] line to: [content.source=org.apache.lucene.benchmark.byTask.feeds.ReutersContentSource] i.e. doc.maker=org.apache.lucene.benchmark.byTask.feeds.ReutersDocMaker becomes content.source=org.apache.lucene.benchmark.byTask.feeds.ReutersContentSource doc.maker=org.apache.lucene.benchmark.byTask.feeds.SimpleDocMaker becomes content.source=org.apache.lucene.benchmark.byTask.feeds.SingleDocSource Also, PerfTask now logs a message in tearDown() rather than each Task doing its own logging. A new setting called [log.step] is consulted to determine how often to log. [doc.add.log.step] is no longer a valid setting. For easy migration of current .alg files, rename [doc.add.log.step] to [log.step] and [doc.delete.log.step] to [delete.log.step]. Additionally, [doc.maker.forever] should be changed to [content.source.forever]. (Shai Erera via Mark Miller) 6/12/09 LUCENE-1539: Added DeleteByPercentTask which enables deleting a percentage of documents and searching on them. Changed CommitIndex to optionally accept a label (recorded as userData=