apache / apache/lucene

Support Filtering Segments During Merge [LUCENE-4560]

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

Description

Spun off from #5623

It is desirable to be able to filter segments during merge.
Most often, full reindex of content is not possible.
Merging segments can sometimes have negative consequences when fields are have different options (most restrictive option is forced during merge)
Being able to filter segments during merges will allow gradually migrating indexed data to new index settings, support pruning/enhancing existing data gradually

Use Cases:
- Migrate IndexOptions for fields (See LUCENE-4557)
- Gradually Remove index fields no longer used
- Migrate indexed sort fields to DocValues
- Support converting data types for indexed data
- and so on

patch will be forthcoming

---
Migrated from [LUCENE-4560](https://issues.apache.org/jira/browse/LUCENE-4560) by Tim Smith, updated Dec 20 2012
Attachments: [LUCENE-4560.patch](https://apache.github.io/lucene-jira-archive/attachments/LUCENE-4560/LUCENE-4560.patch), [LUCENE-4560-simple.patch](https://apache.github.io/lucene-jira-archive/attachments/LUCENE-4560/LUCENE-4560-simple.patch)

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the issue discussion and the attached LUCENE-4560.patch and LUCENE-4560-simple.patch, then trace the existing segment-merge entry points they target. Determine how filtering should support the listed migration and pruning use cases, and verify that selected segments can be merged incrementally without requiring a full reindex.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
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.