Я делаю систему подписки на уведомления, используя тип собственности Elasticsearch 7.x. Проблема в том, что я не могу сделать запрос на фильтрацию с определенными типами полей.
Это пример индексированных данных. Как вы можете видеть, у меня есть индексированный запрос, чтобы можно было выполнить отдельный запрос. Разница, которую я хотел бы упомянуть, - это имя поля в запросе, которое может быть state
или created_by.full_name.raw
{
"_index": "widgets_2020",
"_type": "widget",
"_score": 1.0,
"_source": {
"created_at": "2020-01-09T21:58:14.123Z",
"query": {
"bool": {
"must": [],
"filter": [
{
"terms": {
"created_by.full_name.raw": [
"Ivan Ledner"
]
}
}
]
}
}
}
},
{
"_index": "widgets_2020",
"_type": "widget",
"_score": 1.0,
"_source": {
"created_at": "2020-01-09T22:02:24.133Z",
"query": {
"bool": {
"must": [],
"filter": [
{
"terms": {
"state": [
"done"
]
}
}
]
}
}
}
}
Когда я делаю что-то подобное, Elasticsearch возвращает ожидаемые документы.
widgets_2020/_search
{
"query" : {
"percolate" : {
"field" : "query",
"document" : {
"state": ["created"]
}
}
}
}
Но когда я ищу это, ничего не возвращается.
widgets_2020/_search
{
"query" : {
"percolate" : {
"field" : "query",
"document" : {
"created_by.full_name.raw": ["Ivan Ledner"]
}
}
}
}
Есть ли другой способ работы с этими типами имен? Заранее спасибо!