На wwdc, каком не помню, был доклад по приложению Photos. Если подумать, то в их кейсе, это было достаточно частое дергание CoreData(SQLite), аккурат во время скролла. И узкого места в самой CoreData у них решительно не было.
Azure Search@Apache Lucene умеет в индексацию только таблиц, но тебе нужен аггрегат из трёх таблиц, потому шо кастомеру так нужно. Классический подход для аггрегатов это sql view, но по нему не работает механизм sql change tracker. У тебя есть либо вариант писать кастомные индексаторы в кучу строк кода, либо написать crud триггеры на таблицы на SQL.
Вот тебе реальная ситуация, лично занимался ею в прошлом декабре.