Lucene 5.1.0 发布,此版本现已提供在:http://www.apache.org/dyn/closer.cgi/lucene/java/5.1.0。
更新内容如下: 新特性 (9) LUCENE-6066: Added DiversifiedTopDocsCollector to misc for collecting no more
than a given number of results under a choice of key. Introduces new remove
method to core's PriorityQueue. (Mark Harwood) LUCENE-6191: New spatial 2D heatmap faceting for PrefixTreeStrategy. (David Smiley) LUCENE-6227: Added BooleanClause.Occur.FILTER to filter documents without
participating in scoring (on the contrary to MUST). (Adrien Grand) LUCENE-6294: Added oal.search.CollectorManager to allow for parallelization
of the document collection process on IndexSearcher. (Adrien Grand) LUCENE-6303: Added filter caching baked into IndexSearcher, disabled by
default. (Adrien Grand) LUCENE-6304: Added a new MatchNoDocsQuery that matches no documents. (Lee Hinman via Adrien Grand) LUCENE-6341: Add a -fast option to CheckIndex. (Robert Muir) LUCENE-6355: IndexWriter's infoStream now also logs time to write FieldInfos
during merge (Lee Hinman via Mike McCandless) LUCENE-6339: Added Near-real time Document Suggester via custom postings format (Areek Zillur, Mike McCandless, Simon Willnauer)
Bug 修复 (10) LUCENE-6368: FST.save can truncate output (BufferedOutputStream may be closed
after the underlying stream). (Ippei Matsushima via Dawid Weiss) LUCENE-6249: StandardQueryParser doesn't support pure negative clauses. (Dawid Weiss) LUCENE-6190: Spatial pointsOnly flag on PrefixTreeStrategy shouldn't switch all predicates to
Intersects. (David Smiley) LUCENE-6242: Ram usage estimation was incorrect for SparseFixedBitSet when
object alignment was different from 8. (Uwe Schindler, Adrien Grand) LUCENE-6293: Fixed TimSorter bug. (Adrien Grand) LUCENE-6001: DrillSideways hits NullPointerException for certain
BooleanQuery searches. (Dragan Jotannovic, jane chang via Mike
McCandless) LUCENE-6311: Fix NIOFSDirectory and SimpleFSDirectory so that the
toString method of IndexInputs confess when they are from a compound
file. (Robert Muir, Mike McCandless) LUCENE-6381: Add defensive wait time limit in
DocumentsWriterStallControl to prevent hangs during indexing if we
miss a .notify/All somewhere (Mike McCandless) LUCENE-6386: Correct IndexWriter.forceMerge documentation to state
that up to 3X (X = current index size) spare disk space may be needed
to complete forceMerge(1). (Robert Muir, Shai Erera, Mike McCandless) LUCENE-6395: Seeking by term ordinal was failing to set the term's
bytes in MemoryIndex (Mike McCandless)
优化(16) LUCENE-6183, LUCENE-5647: Avoid recompressing stored fields
and term vectors when merging segments without deletions.
Lucene50Codec's BEST_COMPRESSION mode uses a higher deflate
level for more compact storage. (Robert Muir) LUCENE-6184: Make BooleanScorer only score windows that contain
matches. (Adrien Grand) LUCENE-6161: Speed up resolving of deleted terms to docIDs by doing
a combined merge sort between deleted terms and segment terms
instead of a separate merge sort for each segment. In delete-heavy
use cases this can be a sizable speedup. (Mike McCandless) LUCENE-6201: BooleanScorer can now deal with values of minShouldMatch that
are greater than one and is used when queries produce dense result sets. (Adrien Grand) LUCENE-6218: Don't decode frequencies or match all positions when scoring
is not needed. (Robert Muir) LUCENE-6233 Speed up CheckIndex when the index has term vectors (Robert Muir, Mike McCandless) LUCENE-6198: Added the TwoPhaseIterator API, exposed on scorers which
is for now only used on phrase queries and conjunctions in order to check
positions lazily if the phrase query is in a conjunction with other queries. (Robert Muir, Adrien Grand, David Smiley) LUCENE-6244, LUCENE-6251: All boolean queries but those that have a
minShouldMatch > 1 now either propagate or take advantage of the two-phase
iteration capabilities added in LUCENE-6198. (Adrien Grand, Robert Muir) LUCENE-6241: FSDirectory.listAll() doesnt filter out subdirectories anymore,
for faster performance. Subdirectories don't matter to Lucene. If you need to
filter out non-index files with some custom usage, you may want to look at
the IndexFileNames class. (Robert Muir) LUCENE-6262: ConstantScoreQuery does not wrap the inner weight anymore when
scores are not required. (Adrien Grand) LUCENE-6263: MultiCollector automatically caches scores when several
collectors need them. (Adrien Grand) LUCENE-6275: SloppyPhraseScorer now uses the same logic as ConjunctionScorer
in order to advance doc IDs, which takes advantage of the cost() API. (Adrien Grand) LUCENE-6290: QueryWrapperFilter propagates approximations and FilteredQuery
rewrites to a BooleanQuery when the filter is a QueryWrapperFilter in order
to leverage approximations. (Adrien Grand) LUCENE-6318: Reduce RAM usage of FieldInfos when there are many fields. (Mike McCandless, Robert Muir) LUCENE-6320: Speed up CheckIndex. (Robert Muir) LUCENE-4942: Optimized the encoding of PrefixTreeStrategy indexes for
non-point data: 33% smaller index, 68% faster indexing, and 44% faster
searching. YMMV (David Smiley)
API 改进 (21) LUCENE-6204, LUCENE-6208: Simplify CompoundFormat: remove files()
and remove files parameter to write(). (Robert Muir) LUCENE-6217: Add IndexWriter.isOpen and getTragicException. (Simon
Willnauer, Mike McCandless) LUCENE-6218, LUCENE-6220: Add Collector.needsScores() and needsScores
parameter to Query.createWeight(). (Robert Muir, Adrien Grand) LUCENE-4524, LUCENE-6246, LUCENE-6256, LUCENE-6271: Merge DocsEnum and DocsAndPositionsEnum
into a single PostingsEnum iterator. TermsEnum.docs() and TermsEnum.docsAndPositions()
are replaced by TermsEnum.postings(). (Alan Woodward, Simon Willnauer, Robert Muir, Ryan Ernst) LUCENE-6222: Removed TermFilter, use a QueryWrapperFilter(TermQuery)
instead. This will be as efficient now that queries can opt out from
scoring. (Adrien Grand) LUCENE-6269: Removed BooleanFilter, use a QueryWrapperFilter(BooleanQuery)
instead. (Adrien Grand) LUCENE-6270: Replaced TermsFilter with TermsQuery, use a
QueryWrapperFilter(TermsQuery) instead. (Adrien Grand) LUCENE-6223: Move BooleanQuery.BooleanWeight to BooleanWeight. (Robert Muir) LUCENE-1518: Make Filter extend Query and return 0 as score. (Uwe Schindler, Adrien Grand) LUCENE-6245: Force Filter subclasses to implement toString API from Query. (Ryan Ernst) LUCENE-6268: Replace FieldValueFilter and DocValuesRangeFilter with equivalent
queries that support approximations. (Adrien Grand) LUCENE-6289: Replace DocValuesRangeFilter with DocValuesRangeQuery which
supports approximations. (Adrien Grand) LUCENE-6266: Remove unnecessary Directory params from SegmentInfo.toString,
SegmentInfos.files/toString, and SegmentCommitInfo.toString. (Robert Muir) LUCENE-6272: Scorer extends DocSetIdIterator rather than DocsEnum (Alan
Woodward) LUCENE-6281: Removed support for slow collations from lucene/sandbox. Better
performance would be achieved through CollationKeyAnalyzer or
ICUCollationKeyAnalyzer. (Adrien Grand) LUCENE-6286: Removed IndexSearcher methods that take a Filter object.
A BooleanQuery with a filter clause must be used instead. (Adrien Grand) LUCENE-6300: PrefixFilter, TermRangeFilter and NumericRangeFilter have been
removed. Use PrefixQuery, TermRangeQuery and NumericRangeQuery instead. (Adrien Grand) LUCENE-6303: Replaced FilterCache with QueryCache and CachingWrapperFilter
with CachingWrapperQuery. (Adrien Grand) LUCENE-6317: Deprecate DataOutput.writeStringSet and writeStringStringMap.
Use writeSetOfStrings/Maps instead. (Mike McCandless, Robert Muir) LUCENE-6307: Rename SegmentInfo.getDocCount -> .maxDoc,
SegmentInfos.totalDocCount -> .totalMaxDoc, MergeInfo.totalDocCount.totalMaxDoc (Adrien Grand, Robert Muir, Mike McCandless) LUCENE-6367: PrefixQuery now subclasses AutomatonQuery, removing the
specialized PrefixTermsEnum. (Robert Muir, Mike McCandless)
其他 (6) LUCENE-6248: Remove unused odd constants from StandardSyntaxParser.jj (Dawid Weiss) LUCENE-6193: Collapse identical catch branches in try-catch statements. (shalin) LUCENE-6239: Removed RAMUsageEstimator's sun.misc.Unsafe calls. (Robert Muir, Dawid Weiss, Uwe Schindler) LUCENE-6292: Seed StringHelper better. (Robert Muir) LUCENE-6333: Refactored queries to delegate their equals and hashcode
impls to the super class. (Lee Hinman via Adrien Grand) LUCENE-6343: DefaultSimilarity javadocs had the wrong float value to
demonstrate precision of encoded norms (András Péteri via Mike McCandless)
更多详细内容请看更新日志。
Lucene
是apache软件基金会一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。
Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。 Lucene
最初是由Doug
Cutting所撰写的,是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎的主要开发者,后来在Excite担任高级系统架构设计师,目前从事
于一些INTERNET底层架构的研究。他贡献出Lucene的目标是为各种中小型应用程式加入全文检索功能。 OSChina 使用 Lucene 实现全文搜索。 在线Javadoc:http://tool.oschina.net/apidocs/apidoc?api=lucene-3.6.0 |