А почему логика проверка что можно искать, а что нет, где-то сбоку, почему, например searcher не делает этого при попытке поиска?

И если он не может искать по какому-то полю, он бы райзил ошибку.