apache / apache/lucene

Search on IndexWriter's RAM Buffer [LUCENE-2312]

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

Description

In order to offer user's near realtime search, without incurring
an indexing performance penalty, we can implement search on
IndexWriter's RAM buffer. This is the buffer that is filled in
RAM as documents are indexed. Currently the RAM buffer is
flushed to the underlying directory (usually disk) before being
made searchable.

Todays Lucene based NRT systems must incur the cost of merging
segments, which can slow indexing.

Michael Busch has good suggestions regarding how to handle deletes using max doc ids.
https://issues.apache.org/jira/browse/LUCENE-2293?focusedCommentId=12841923&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12841923

The area that isn't fully fleshed out is the terms dictionary,
which needs to be sorted prior to queries executing. Currently
IW implements a specialized hash table. Michael B has a
suggestion here:
https://issues.apache.org/jira/browse/LUCENE-2293?focusedCommentId=12841915&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12841915

---
Migrated from [LUCENE-2312](https://issues.apache.org/jira/browse/LUCENE-2312) by Jason Rutherglen, updated Sep 09 2011
Attachments: [LUCENE-2312.patch](https://apache.github.io/lucene-jira-archive/attachments/LUCENE-2312/LUCENE-2312.patch) (versions: 3), [LUCENE-2312-FC.patch](https://apache.github.io/lucene-jira-archive/attachments/LUCENE-2312/LUCENE-2312-FC.patch)
Linked issues:
- #3400
- #3649
- #4272
- #4472
- #3422
- [CASSANDRA-2915](https://issues.apache.org/jira/browse/CASSANDRA-2915)

Contributor guide

Open the contributing guide

Research direction

Start with IndexWriter's RAM buffer and review the linked LUCENE-2293 discussion for the proposed handling of deletes and the terms dictionary. The attached LUCENE-2312 patches and linked issues provide historical context. Done means documents in the RAM buffer can be searched before the buffer is flushed without the described indexing penalty.

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
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.