2017-01-24 2 views
1

Я знаю, что есть способ, в котором один из родителей Тип может иметь 1 Тип ребенка в упругом поиска с помощью:В elasticsearch может 1 родительский тип иметь тип multipe child?

PUT /company 
{ 
"mappings": { 
"branch": {}, 
"employee": { 
    "_parent": { 
    "type": "branch" 
    } 
    } 
    } 
} 

Как мы можем создать 2 типа Child отношения с типом 1 Parent?

ответ

0

Да, вы можете, нет ограничений на то, что идея 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

+0

Я начинающий эластичный поиск. Можете ли вы объяснить, как именно мы можем сформировать запрос DSL? –

+0

@BharatJain См. Обновление –

Смежные вопросы