Да, вы можете, нет ограничений на то, что идея child/parent о маршрутизации означает, что родитель и ребенок должны быть сохранены в пределах одного осколка.
Но есть ограничение, что 1 ребенок может иметь только 1 родителя.
Так технически вы можете иметь материнскую компанию с несколькими детьми, такими как подрядчики, работники.
POST /city/company/_search
{
"query": {
"bool": {
"should": [
{
"has_child": {
"type": "contractors",
"score_mode": "max",
"query": {
"match": {
"name": "Alice Smith"
}
}
}
},
{
"has_child": {
"type": "employee",
"score_mode": "max",
"query": {
"match": {
"name": "Alice Smith"
}
}
}
}
],
"minimum_should_match": 1
}
}
}
Так что этот запрос будет искать в индексе города для компаний, которые имеют документ работника типа или подрядчика, который согласовывает имя Alice Smith
Больше об отношениях read here
Я начинающий эластичный поиск. Можете ли вы объяснить, как именно мы можем сформировать запрос DSL? –
@BharatJain См. Обновление –