mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-06 17:18:35 +08:00
fix: Move FinishLoad before text index creation to ensure raw data availability (#45334)
Related to #45333 Fix segment loading failure when adding fields with text match enabled. The issue occurred because text indexes were being loaded before FinishLoad() was called, meaning raw data was not properly available when text index creation attempted to access it, resulting in "failed to create text index, neither raw data nor index are found" errors. Solution is to move the FinishLoad() call to execute after raw data loading but before text index loading. This ensures that: 1. Raw data is properly loaded and available in memory 2. Text indexes can access the raw data they need during creation 3. The segment is in the correct state before any index operations Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
This commit is contained in:
parent
59c64bee07
commit
e284733399
@ -377,10 +377,6 @@ func (loader *segmentLoader) Load(ctx context.Context,
|
|||||||
segment.SetBloomFilter(bfs)
|
segment.SetBloomFilter(bfs)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = segment.FinishLoad(); err != nil {
|
|
||||||
return errors.Wrap(err, "At FinishLoad")
|
|
||||||
}
|
|
||||||
|
|
||||||
if segment.Level() != datapb.SegmentLevel_L0 {
|
if segment.Level() != datapb.SegmentLevel_L0 {
|
||||||
loader.manager.Segment.Put(ctx, segmentType, segment)
|
loader.manager.Segment.Put(ctx, segmentType, segment)
|
||||||
}
|
}
|
||||||
@ -963,6 +959,10 @@ func (loader *segmentLoader) loadSealedSegment(ctx context.Context, loadInfo *qu
|
|||||||
}
|
}
|
||||||
loadRawDataSpan := tr.RecordSpan()
|
loadRawDataSpan := tr.RecordSpan()
|
||||||
|
|
||||||
|
if err = segment.FinishLoad(); err != nil {
|
||||||
|
return errors.Wrap(err, "At FinishLoad")
|
||||||
|
}
|
||||||
|
|
||||||
// load text indexes.
|
// load text indexes.
|
||||||
for _, info := range textIndexes {
|
for _, info := range textIndexes {
|
||||||
if err := segment.LoadTextIndex(ctx, info, schemaHelper); err != nil {
|
if err := segment.LoadTextIndex(ctx, info, schemaHelper); err != nil {
|
||||||
@ -1043,6 +1043,9 @@ func (loader *segmentLoader) LoadSegment(ctx context.Context,
|
|||||||
if err := segment.LoadMultiFieldData(ctx); err != nil {
|
if err := segment.LoadMultiFieldData(ctx); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err := segment.FinishLoad(); err != nil {
|
||||||
|
return errors.Wrap(err, "At FinishLoad")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// load statslog if it's growing segment
|
// load statslog if it's growing segment
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user