Filter ElasticSearch возвращает пустой массив

пытаюсь отфильтровать запрос ElasticSearch, мне нужно что бы в выборке были только статьи со именем схемы HelpArticle, но как только я добавляю любой фильтр возвращается пустой массив:

{
"query":{
    "bool":{
        "must":{
            "multi_match":{
                    "query":"Статья",
                    "fields": [ "fields.title^2",
                                "fields.text",
                                "fields.name^2"]       
            }
        }, "filter": {
            "term":{
                "schema.name":"Help_Article"
            }
        }
    }
}

При этом если идти от обратного с использованием must_not все работает:

{
"query":{
    "bool":{
        "must":{
            "multi_match":{
                    "query":"Статья",
                    "fields": [ "fields.title^2",
                                "fields.text",
                                "fields.name^2"]       
            }
        }, "must_not": {
            "match_phrase":{
                "schema.name":"Help_Category"
            }
        }
    }
}

}

Маппинг:

"schema": {
                "properties": {
                    "name": {
                        "type": "text",
                        "fields": {
                            "raw": {
                                "type": "keyword"
                            }
                        },
                        "analyzer": "trigrams"
                    },
                    "uuid": {
                        "type": "keyword"
                    },
                    "version": {
                        "type": "keyword"
                    }
                }
            }

Ответы (1 шт):

Автор решения: Сергей Храмов

Раз фильтр по точному совпадению, то нужно использовать поле в котором тип keyword:

{
"query":{
    "bool":{
        "must":{
            "multi_match":{
                    "query":"Статья",
                    "fields": [ "fields.title^2",
                                "fields.text",
                                "fields.name^2"]       
            }
        }, "filter": {
            "term":{
                "schema.name.raw":"Help_Article"
            }
        }
    }
}

Либо если не нужно точное совпадение попробовать вместо term - simple_query_string https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-simple-query-string-query.html

→ Ссылка