apache / apache/lucene

An Archiving Split Policy For Managing Non-Searchable Documents [LUCENE-2430]

Open
#3,504 0 comments 0 reactions 0 assignees View on GitHub
legacy-jira-priority:Major module:core/index type:enhancement
Dominant language
Java
Stars
3.6k
Forks
1.4k
Avg merge
2d 11h
Merged PRs (30d)
88

Description

(Please note that the feature described in #3499 is required reading for this issue.)

The archiving split policy extends the rotating split policy by archiving sub-indices over-flowing from the split index. This allows for older documents that are "past their prime" to be available outside the context of the split index, even if they are no longer visible therein.

It does so by overriding the RotatingSplitPolicy#maybeExpungeOldestSplit method. In particular, it archives (i.e., makes a copy of) the last sub-index (about to be expunged), just before the rotating policy actually expunges it.

Just like the rotating split policy constrains the number of sub-indices, the archiving split policy too puts a limit on the number of sub-archives (i.e. sub-indices that have been archived and expunged) that the split index will maintain at any given point in time.

---
Migrated from [LUCENE-2430](https://issues.apache.org/jira/browse/LUCENE-2430) by Karthick Sankarachary, updated May 04 2010
Attachments: [LUCENE-2430.patch](https://apache.github.io/lucene-jira-archive/attachments/LUCENE-2430/LUCENE-2430.patch)
Linked issues:
- #3499

Contributor guide

Open the contributing guide

Research direction

Read linked issue #3499 first, then review the archived LUCENE-2430.patch for the proposed implementation. Inspect RotatingSplitPolicy#maybeExpungeOldestSplit and determine how archiving should copy the expunged sub-index while enforcing a sub-archive limit; done means older non-searchable documents remain available through bounded archives.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, search
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.