Nhờ mọi người tối ưu query search này giúp mình với ạ. Data test từ chục tới trăm ngàn row là search cả phút

orders = orders.Where(o => o.Note.ToLower().Contains(search)
|| o.Addresses.Any(p => p.City.ToLower().Contains(search)
|| p.State.ToLower().Contains(search)
|| p.Address.ToLower().Contains(search)
|| p.TaxID.ToLower().Contains(search)
|| p.Zip.ToLower().Equals(search))
|| string.Concat(o.Buyers.FirstOrDefault().Name.First , " " + o.Buyers.FirstOrDefault().Name.Last).ToLower().Con tains(search)
|| string.Concat(o.Sellers.FirstOrDefault().Name.Firs t, " ", o.Sellers.FirstOrDefault().Name.Last).ToLower().Co ntains(search)
|| o.Products.Any(l => l.ProductNumber.ToLower().Contains(search)));