В зависимости от вариантов использования, применяем следующие варианты поочередно до успеха либо параллельно:
1. Ищем как есть
2. Пытаемся определить кодировку и язык, нормализуем и снова ищем (преобразуем транслит w и v->в, забыли переключить раскладку bdfyjd -> иванова)
3. Ищем нечеткое совпадение (инанова)
Также не забываем описать правила ранжирования (иван - это все "иваны" или все иван* )