Вы хотите соответствовать точному значению, для которого вы используете термин запрос. Как отметил Амит в комментарии, термин запрос не использует анализатор и, следовательно, он будет соответствовать документам, которые содержат точно такие же токены, которые необходимо изменить для отображения Thing.Name, как показано ниже:
{
"Thing": {
"properties": {
"Name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
}
}
Если сопоставление генерируется автоматически с помощью упругости, тогда оно будет иметь те же свойства для поля имени, что и выше. Если это уже так, вам не нужно вносить никаких изменений в отображение. Обновите свой запрос, чтобы использовать Thing.Name.keyword
вместо Thing.Name
, поскольку поле типа keyword
не анализирует значение и не генерирует один токен, который является самим входным значением.
Итак, запрос будет:
{
"query": {
"bool": {
"must": [
{
"term": {
"Thing.Name.keyword": {
"value": "(item) test",
"boost": 1
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
}
}