Синонимы и подстроки

Для того чтобы понять, почему это не работает, вам надо разобраться с тем, как работают фильтры в анализаторе. Я бы посоветовал начать с прочтения Dealing with Human Language в руководстве.

Вкратце, для того что бы искать и по подстроке и по корням слов, не надо сваливать все в один анализатор. Надо создать два анализатора, проиндексировать слова каждым в отдельные поля (multi-fields), и искать сразу по нескольким полям с boost-ом.