Я хочу найти все документы, где role_id равен 8, а status.id равен 5. У меня есть индекс ниже моих данных.
Я пытался получить данные только по role_id, равному 8, с запросом ниже
{
"query": {
"bool": {
"filter": [
{ "match" : {"role.role_id" : 8} }
]
}
}
}
Возвращает "хитов": [] не уверен, что здесь не так.
Я новичок в поиске elasti c, и я видел много документов где они упомянули вложенный тип для объектов. Это обязательно? мне нужно изменить индекс?
{
"contacts": {
"aliases": {},
"mappings": {
"properties": {
"roles": {
"properties": {
"role_id": {
"type": "long"
},
"role_name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"status": {
"properties": {
"id": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
}
}
}