Hi miles, thank you again for the help! I am using Julia version 1.7.1, and ITensors v0.2.12
Yes, the DMRG calculation is finished. And then I use my own function to do some correlator measurement. Here I do not use the built-in correlation_matrix because my site type is customized, and correlation_matrix can not work
In case you want to check my measurement function. I attach my code below:
   
                sites = [
                    if mod(n,3) == 2
                        Index([QN()=>2]; tags="S=1/2, Site, n=$n")
                    else
                        siteind("Fermion", n; conserve_qns=true)
                    end
                    for n = 1:3*ns
                        ]
                state = [
                    if mod(n,3) == 2
                        "Up"
                    else
                        (mod(n,fl*3) == 1 || mod(n,fl*3) == 0) ? "Occ" : "Emp"
                    end
                    for n = 1:3*ns
                        ]
            
                psii = randomMPS(sites, state)
            
                # Sz-Sz
                function szz(psi::MPS)
                    szz = zeros(ns,ns)
                    ts = ITensor(1.)
                    i1 = 0
                    for i in 1:3*ns
                        if mod(i,3) == 2
                            i1 += 1
                            j1 = i1
                            orthogonalize!(psi, i)
                            szz[i1,i1] = scalar(ts*psi[i]*op(szo,sites,i)*prime(op(szo,sites,i))*dag(prime(prime(psi[i],"Site"),"Site")))
                            lind = linkind(psi,i)
                            tsi = ts*psi[i]*op(szo,sites,i)*dag(prime(prime(psi[i],"Site"),lind))
                            for j = i+1:3*ns
                                tsi *= psi[j]
                                if mod(j,3) == 2 # spin site only
                                    j1 += 1
                                    lind = linkind(psi,j-1)
                                    szz[i1,j1] = scalar(tsi*op(szo,sites,j)*dag(prime(prime(psi[j],"Site"),lind)))
                                    szz[j1,i1] = conj(szz[i1,j1])
                                end
                                tsi *= dag(prime(psi[j],"Link")) # no JW string
                            end
                        end
                    end
                    return szz
                end
                
                # Sz
                function sz(psi::MPS)
                    sz = zeros(ns)
                    ts = ITensor(1.)
                    i1 = 0
                    for i in 1:3*ns
                        if mod(i,3) == 2
                            i1 += 1
                            orthogonalize!(psi,i)
                            sz[i1] = scalar(ts*psi[i]*op(szo,sites,i)*dag(prime(psi[i],"Site")))
                        end
                    end
                    return sz
                end
                # Nf
                function n(psi::MPS)
                    n = zeros(2*ns)
                    ts = ITensor(1.)
                    i1 = 0
                    for i in 1:3*ns
                        if mod(i,3) != 2
                            i1 += 1
                            orthogonalize!(psi, i)
                            n[i1] = scalar(ts*psi[i]*op("N",sites,i)*dag(prime(psi[i],"Site")))
                        end
                    end
                    return n
                end
                # Nf-Nf
                function nn(psi::MPS)
                    nn = zeros(2*ns,2*ns)
                    ts = ITensor(1.)
                    i1 = 0
                    for i in 1:3*ns
                        if mod(i,3) != 2
                            i1 += 1
                            j1 = i1
                            orthogonalize!(psi,i)
                            nn[i1,i1] = scalar(ts*psi[i]*op("N",sites,i)*prime(op("N",sites,i))*dag(prime(prime(psi[i],"Site"),"Site")))
                            lind = linkind(psi,i)
                            tsi = ts*psi[i]*op("N",sites,i)*dag(prime(prime(psi[i],"Site"),lind))
                            for j = i+1:3*ns
                                tsi *= psi[j]
                                if mod(j,3) != 2
                                    j1 += 1
                                    lind = linkind(psi,j-1)
                                    nn[i1,j1] = scalar(tsi*op("N",sites,j)*dag(prime(prime(psi[j],"Site"),lind)))
                                    nn[j1,i1] = conj(nn[i1,j1])
                                    tsi *= dag(prime(psi[j],"Link"))
                                else
                                    tsi *= dag(prime(psi[j],"Link"))
                                end
                            end
                        end
                    end
                    return nn
                end
                # Cdag-C
                function ff(psi::MPS)
                    ff = zeros(2*ns,2*ns)
                    ts = ITensor(1.)
                    i1 = 0
                    for i in 1:3*ns
                        if mod(i,3) != 2
                            i1 += 1
                            j1 = i1
                            orthogonalize!(psi,i)
                            ff[i1,i1] = scalar(ts*psi[i]*op("N",sites,i)*dag(prime(psi[i],"Site")))
                            lind = linkind(psi,i)
                            tsi = ts*psi[i]*op("Cdag",sites,i)*dag(prime(prime(psi[i],"Site"),lind))
                            for j in i+1:3*ns
                                tsi *= psi[j]
                                if mod(j,3) != 2
                                    j1 += 1
                                    lind = linkind(psi, j-1)
                                    ff[i1,j1] = scalar(tsi*op("C",sites,j)*dag(prime(prime(psi[j],"Site"),lind)))
                                    ff[j1,i1] = conj(ff[i1,j1])
                                    # with JW string
                                    tsi *= op("F",sites,j)*dag(prime(psi[j]))
                                else
                                    # no JW string
                                    tsi *= dag(prime(psi[j],"Link"))
                                end
                            end
                        end
                    end
                    return ff
                end
                # Fz
                # fzi = Nli - Nri / 2
                function fz(psi::MPS)
                    fz = zeros(ns)
                    ts = ITensor(1.)
                    i1 = 0
                    for i in 1:3*ns
                        if mod(i,3) == 1
                            i1 += 1
                            orthogonalize!(psi,i)
                            nup = scalar(ts*psi[i]*op("N",sites,i)*dag(prime(psi[i],"Site")))
                            orthogonalize!(psi,i+2)
                            ndn = scalar(ts*psi[i+2]*op("N",sites,i+2)*dag(prime(psi[i+2],"Site")))
                            fz[i1] = (nup-ndn)/2
                        end
                    end
                    return fz
                end
                
                # Fx & Fy
                # sxi = fli fri + fri fli / 2
                # syi = -i fli fri + i fri fli / 2
                function fxfy(psi::MPS)
                    fx = zeros(ns)
                    fy = zeros(ns)
                    ts = ITensor(1.)
                    i1 = 0
                    for i in 1:3*ns
                        if mod(i,3) == 1
                            i1 += 1
                            orthogonalize!(psi,i)
                            lind1 = linkind(psi,i)
                            lind2 = linkind(psi,i+1)
                            tsi = ts*psi[i]*op("Cdag",sites,i)*dag(prime(prime(psi[i],"Site"),lind1))
                            tsi *= psi[i+1]*dag(prime(psi[i+1],"Link"))
                            tsi *= psi[i+2]*op("C",sites,i+2)*dag(prime(prime(psi[i+2],"Site"),lind2))
                            lri = scalar(tsi)
                            tsi = ts*psi[i]*op("C",sites,i)*dag(prime(prime(psi[i],"Site"),lind1))
                            tsi *= psi[i+1]*dag(prime(psi[i+1],"Link"))
                            tsi *= psi[i+2]*op("Cdag",sites,i+2)*dag(prime(prime(psi[i+2],"Site"),lind2))
                            rli = scalar(tsi)
                            fy[i1] = (-lri+rli)/2
                            fx[i1] = (lri+rli)/2
                        end
                    end
                    return fx,fy
                end
                # Cdga-Sz-C
                function rungTunneling(psi::MPS)
                    rungTunneling = zeros(ns)
                    ts = ITensor(1.)
                    i1 = 0
                    for i in 1:3*ns
                        if mod(i,3) == 1
                            i1 += 1
                            orthogonalize!(psi,i)
                            lind1 = linkind(psi,i)
                            lind2 = linkind(psi,i+1)
                            tsi = ts*psi[i]*op("Cdag",sites,i)*dag(prime(prime(psi[i],"Site"),lind1))
                            tsi *= psi[i+1]*op(szo,sites,i+1)*dag(prime(psi[i+1]))
                            tsi *= psi[i+2]*op("C",sites,i+2)*dag(prime(prime(psi[i+2],"Site"),lind2))
                            rungTunneling[i1] = scalar(tsi)
                        end
                    end
                    return rungTunneling
                end