Cyrillic symbols and query with prefix

Hello! Help me, please, to solve such problem. I use this query

res = es.search(index='sinki', doc_type='dwg', body={"query":
{
"bool": {
"must": [
{
"match": {"dwgobj": "комплекс оборудования"}
},
{
"prefix": {"dwgnum": "154244"}
}
]
}
}
})

and it works correctly while prefix contains digits and eng symbols, but it doesn't work if there is cyrillic symbols (ex: "Д154244")
In mappings I set
> "dwgnum": {"type": "string", "index": "not_analyzed"}

Can you help me?

I think the issue here is not as much about cyrillic characters as it is about lowercasing? Prefix queries (and multi-term queries in general) expect you to search for terms the way they are encoded in the index. Since the default analysis chain performs lowercasing, you should rather be searching for "д154244" (the first character is u0414, not u0434 as in your example).

Note that we are working on making it a bit less trappy by automatically normalizing text when generating prefix/wildcard/fuzzy queries so that elasticsearch would have done the lowercasing itself in that case: https://issues.apache.org/jira/browse/LUCENE-7355.