У еластика есть набор фильтров в анализаторе, привязанный в мапинге, которые разделяют слова на термы и их преобразуют к какому-то одному виду. Например, из слова "IBM-xStation" делают два терма "ibm" и "xstation". И если вы ищете по термам, то нужно учитывать то, как сами слова разбиты на них.
Если же вас не устраивает стандартное термообразование, то его всегда можно поменять, например отменив приведение к нижнему регистру и считая тире частью слова.
В общем, кидейте сюда свой мапинг, и то, что хотите получить в результате, будем посмотреть.
Ну и самому почитать -
https://www.elastic.co/guide/en/elasticsearch/refe...