Вам нужно установить отображение вашего productId на keyword
, чтобы избежать токенизации. Со стандартным токенизатором "ff134be8-10fc-4461-b620-79s51199c7qb"
создаст ["ff134be8", "10fc", "4461", "b620", "79s51199c7qb"]
как токены.
У вас есть разные варианты:
1 / используйте термин запроса для проверки без анализа содержимого поля
...
{
"term": {
"productId": "ff134be8-10fc-4461-b620-79s51199c7qb"
}
},
...
2 / если вы находитесь в Elasticsearch 6.X, вы можете изменить свой запрос на
...
{
"match": {
"productId.keyword": "ff134be8-10fc-4461-b620-79s51199c7qb"
}
},
...
По мере того, какasticsearch создаст подполе keyword
с типом keyword
для всех строковых полей
Лучший вариант, конечно, первый. Всегда используйте term query
, если вы пытаетесь сопоставить точное содержание.