Я пытаюсь реализовать запрос поиска по типу внутри массива.
Это структура документов:
{
"guid": "6f954d53-df57-47e3-ae9e-cb445bd566d3",
"labels":
[
{
"name": "London",
"lang": "en"
},
{
"name": "Llundain",
"lang": "cy"
},
{
"name": "Lunnainn",
"lang": "gd"
}
]
}
и до сих пор это то, с чем я пришел:
{
"query": {
"multi_match": {
"fields": ["labels.name"],
"query": name,
"type": "phrase_prefix"
}
}
, который работает именно так, как запрошено.
Проблема в том, что я хотел бы искать также по языку.
То, что я пробовал, это:
{
"query": {
"bool": {
"must": [
{
"multi_match": {
"fields": ["labels.name"],
"query": "london",
"type": "phrase_prefix"
}
},
{
"term": {
"labels.lang": "gd"
}
}
]
}
}
}
но эти запросы действуют на отдельные значения массива.
Так, например, я хотел бы искать только валлийский язык (cy). Это означает, что мой запрос, который содержит название города, должен соответствовать только значениям, которые имеют «cy» в теге «lang».
Как мне написать такой запрос?