Я знаю, что это старая проблема, но я наткнулся на нее в моих исследованиях. Итак, вот мой ответ.
Во-первых, переход на запрос TERM не помог. Узнав больше о том, как работает ElasticSearch по умолчанию, я понимаю, почему.
По умолчанию ElasticSearch: не чувствителен к регистру. Когда документы индексируются, анализатор по умолчанию уменьшает все строковые значения и сохраняет значения нижнего регистра для будущих поисков. Это не влияет на значения, хранящиеся в самих документах, но нижняя шкала влияет на поиск.
Если вы используете анализатор по умолчанию, то ваши условия поиска для строковых значений должны быть строчными.
Прежде чем я узнал, как это сработало, я потратил немало времени на изучение значения поля смешанного случая в индексированном документе, а затем выполнил поиск с термином запроса, который использовал одно и то же значение смешанного случая. Нулевые результаты. Только после того, как я заставил значение, которое мой запрос использовал для всех строчных букв, я начал получать результаты.
Вы можете прочитать больше о ElasticSearch анализаторы здесь: ElasticSearch - Analysis
Некоторые кода на том, что вы пытались бы помочь сделать старт. –