diff --git a/internal/querynodev2/segments/segment.go b/internal/querynodev2/segments/segment.go index 78401e5e73a0c..ac5383164cbc0 100644 --- a/internal/querynodev2/segments/segment.go +++ b/internal/querynodev2/segments/segment.go @@ -1040,7 +1040,11 @@ func (s *LocalSegment) innerLoadIndex(ctx context.Context, return err } updateIndexInfoSpan := tr.RecordSpan() - if !typeutil.IsVectorType(fieldType) || s.HasRawData(indexInfo.GetFieldID()) { + // Skip warnup chunk cache when + // . scalar data + // . index has row data + // . vector was function output + if !typeutil.IsVectorType(fieldType) || s.HasRawData(indexInfo.GetFieldID()) || fieldSchema.IsFunctionOutput { return nil } diff --git a/internal/querynodev2/segments/segment_loader.go b/internal/querynodev2/segments/segment_loader.go index 390f4a460d6ef..554337f12329f 100644 --- a/internal/querynodev2/segments/segment_loader.go +++ b/internal/querynodev2/segments/segment_loader.go @@ -1505,7 +1505,7 @@ func getResourceUsageEstimateOfSegment(schema *schemapb.CollectionSchema, loadIn if !estimateResult.HasRawData && !isVectorType { shouldCalculateDataSize = true } - if !estimateResult.HasRawData && isVectorType { + if !estimateResult.HasRawData && isVectorType && !fieldSchema.IsFunctionOutput { mmapChunkCache := paramtable.Get().QueryNodeCfg.MmapChunkCache.GetAsBool() if mmapChunkCache { segmentDiskSize += binlogSize