Hello guys I'm new in elastic and here comes the doubt.
When querying a json index, I need to find in an array of complex objects a string only in some array items.
In example:
considering the following info I need to query a text value on "partes.Nome" field, only in items with 78 value in field partes.IdTipoParticipacao and with the values 44 and 1 on IdAreaAtuacao field.
My problem is that when i query for a text contained on partes.IdTipoParticipacao with the value 14 it still returns me a value.
Can I limit the search on sub items based on other fields of subitems?
If I search Benício Lucca Caleb Alves it still return though partes.IdTipoParticipacao equals 14
POST indicedocs/_doc/17C9CA74-1E3D-4A63-A7B3-FA8FD3FF70BF
{
"Id" : "17C9CA74-1E3D-4A63-A7B3-FA8FD3FF70BF",
"NivelSigilo" : 0,
"Numero" : "040700000052022",
"IdAreaAtuacao" : 7,
"NumeroFormatado" : "0407.0000005/2022",
"observacao" : "A teoria da irredutibilidade garante a contribuição de um grupo importante na determinação do processo de comunicação como um todo. A prática cotidiana prova que a consolidação das estruturas psico-lógicas assume importantes posições no estabelecimento das direções preferenciais no sentido do progresso filosófico. Nunca é demais lembrar o peso e o significado destes problemas, uma vez que o conceito de diáthesis e os princípios fundamentais de rhytmos e arrythmiston facilita a criação do sistema de formação de quadros que corresponde às necessidades lógico-estruturais.",
"partes" : [
{
"IdTipoParticipacao" : 14,
"TipoParte" : 0,
"Participacao" : "Interessado",
"Policial" : "Não",
"CPF" : "23315018154",
"CPFFormatado" : "233.150.181-54",
"Nome" : "Benício Lucca Caleb Alves",
"Nacionalidade" : "Brasileira"
},
{
"IdTipoParticipacao" : 78,
"TipoParte" : 0,
"Nome" : "Emilly e Diogo Financeira Ltda",
"CNPJ" : "72217026000105",
"CNPJFormatado" : "72.217.026/0001-05"
}
]
}
------------------------------------------------
GET indicedocs/_search
{
"size":1001,
"query": {
"bool": {
"must": [
{
"terms":{
"partes.IdTipoParticipacao":[
78
]
}
},
{
"query_string":{
"query":"\"Benício Lucca Caleb Alves\"",
"fields":[
"partes.Nome"
]
}
}
],
"must_not": [
{
"terms":{
"IdAreaAtuacao":[
44,
1
]
}
}
]
}
}
}
------------------------------------------------
"mappings" : {
"properties" : {
"Id" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"IdAreaAtuacao" : {
"type" : "long"
},
"NivelSigilo" : {
"type" : "long"
},
"Numero" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"NumeroFormatado" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"observacao" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"partes" : {
"properties" : {
"CNPJ" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"CNPJFormatado" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"CPF" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"CPFFormatado" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"IdTipoParticipacao" : {
"type" : "long"
},
"Nacionalidade" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"Nome" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"Participacao" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"Policial" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"TipoParte" : {
"type" : "long"
}
}
}
}
}