Я должен выбрать определенный тип внутри массива, вложенного в эластичный, но невозможно получить только специальный тип, я извлек весь тип внутри массива.
Вторая проблема, у меня есть дубликаты, как удалитьдубликаты?
Я много пробовал типа аггрегации и фильтра ...
Отображение:
"metas" : {
"type" : "nested",
"include_in_root" : true,
"properties" : {
"suggest" : {
"type" : "completion",
"analyzer" : "suggest_analyzer",
"preserve_separators" : true,
"preserve_position_increments" : true,
"max_input_length" : 50,
"contexts" : [
{
"name" : "rev",
"type" : "CATEGORY",
"path" : "rev"
},
{
"name" : "type",
"type" : "CATEGORY",
"path" : "metas.type"
}
]
},
"type" : {
"type" : "keyword"
},
"value" : {
"type" : "text",
"fields" : {
"raw" : {
"type" : "keyword"
}
},
"copy_to" : [
"full_text"
],
Запрос:
GET myindex/_search
{
"from": 0,
"size": 1,
"_source": [ "metas" ],
"query": {
"bool": {
"must": [
{
"nested": {
"query": {
"bool": {
"must": [
{
"terms": {
"metas.type": [
"specificType",
],
"boost": 1
}
},
],
"adjust_pure_negative": true,
"boost": 1
}
},
"path": "metas",
"ignore_unmapped": false,
"score_mode": "avg",
"boost": 1
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
},
"aggs" : {
"all_products" : {
"global" : {},
"aggregations": {
"byValue": {
"nested": {
"path": "metas"
},
"aggs": {
"TYPE": {
"terms": {
"field": "metas.type",
"include": [
"specificType"
]
},
"aggs": {
"VALUE": {
"terms": {
"field": "metas.value.raw"
}
}
}
}
}
}
}
}
}
}
Iожидайте вывод только с моим конкретным типом со значением, а не со всеми ключевыми значениями метасов и, если возможно, без дубликатов.