From 3e85dbc14d2ffc4bc6cec4a0ddef1f3c6dafeafd Mon Sep 17 00:00:00 2001 From: Rahul Rampure Date: Fri, 26 Dec 2025 18:04:25 +0530 Subject: [PATCH 1/2] new interface --- index.go | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/index.go b/index.go index 12d907e..209aee4 100644 --- a/index.go +++ b/index.go @@ -353,6 +353,21 @@ type ThesaurusReader interface { ThesaurusKeysPrefix(name string, termPrefix []byte) (ThesaurusKeys, error) } +// EligibleDocumentIterator provides an interface to iterate over eligible document IDs. +type EligibleDocumentIterator interface { + // Next returns the next document ID and whether it exists. + // When ok is false, iteration is complete. + Next() (id uint64, ok bool) +} + +// EligibleDocumentList represents a list of eligible document IDs for filtering. +type EligibleDocumentList interface { + // Iterator returns an iterator for the eligible document IDs. + Iterator() EligibleDocumentIterator + // Count returns the number of eligible document IDs. + Count() int +} + // EligibleDocumentSelector filters documents based on specific eligibility criteria. // It can be extended with additional methods for filtering and retrieval. type EligibleDocumentSelector interface { @@ -360,10 +375,8 @@ type EligibleDocumentSelector interface { // id is the internal identifier of the document to be added. AddEligibleDocumentMatch(id IndexInternalID) error - // SegmentEligibleDocs returns a list of eligible document IDs within a given segment. - // segmentID identifies the segment for which eligible documents are retrieved. - // This must be called after all eligible documents have been added. - SegmentEligibleDocs(segmentID int) []uint64 + // SegmentEligibleDocuments returns an EligibleDocumentList for the specified segment. + SegmentEligibleDocuments(segmentID int) EligibleDocumentList } // ----------------------------------------------------------------------------- From e378e68a3c31882eeab38ca7181ac8a0e53a1c03 Mon Sep 17 00:00:00 2001 From: Rahul Rampure Date: Wed, 7 Jan 2026 16:28:40 +0530 Subject: [PATCH 2/2] code review --- index.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.go b/index.go index 209aee4..981730b 100644 --- a/index.go +++ b/index.go @@ -365,7 +365,7 @@ type EligibleDocumentList interface { // Iterator returns an iterator for the eligible document IDs. Iterator() EligibleDocumentIterator // Count returns the number of eligible document IDs. - Count() int + Count() uint64 } // EligibleDocumentSelector filters documents based on specific eligibility criteria. @@ -376,6 +376,7 @@ type EligibleDocumentSelector interface { AddEligibleDocumentMatch(id IndexInternalID) error // SegmentEligibleDocuments returns an EligibleDocumentList for the specified segment. + // This must be called after all eligible documents have been added via AddEligibleDocumentMatch. SegmentEligibleDocuments(segmentID int) EligibleDocumentList }