Мне нужно индексировать 3 уровня (или более) дочернего родителя. Например, уровни могут быть автором, книгой и персонажами из этой книги.Elasticsearch более глубокий уровень Родительские отношения (внук)
Однако при индексировании более двух уровней возникает проблема с has_child и has_parent запросами и фильтрами. Если у меня есть 5 осколков, я получаю около одной пятой результатов при запуске запроса «has_parent» на самом низком уровне (символы) или запрос has_child на втором уровне (книги).
Я полагаю, что книга индексируется осколком по его родительскому идентификатору и поэтому будет находиться вместе со своим родителем (автором), но персонаж будет проиндексирован на осколок, основанный на хеше идентификатора книги, что делает не обязательно соответствует фактическому осколку, на который была проиндексирована книга.
Итак, это означает, что весь персонаж книг того же автора не обязательно должен находиться в одном и том же осколке (на самом деле он порочит все преимущества родителя-родителя).
Я что-то не так? Как я могу это разрешить, так как мне действительно нужны сложные запросы, например, «что авторы писали с женскими персонажами».
Я безумная суть показывает проблему, по адресу: https://gist.github.com/eranid/5299628
Суть в том, что если у меня есть отображение:
"author" : {
"properties" : {
"name" : {
"type" : "string"
}
}
},
"book" : {
"_parent" : {
"type" : "author"
},
"properties" : {
"title" : {
"type" : "string"
}
}
},
"character" : {
"_parent" : {
"type" : "book"
},
"properties" : {
"name" : {
"type" : "string"
}
}
}
и индекс 5 Осколков, я не могу делать запросы с " has_child»и "has_parent"
запрос:
curl -XPOST 'http://localhost:9200/index1/character/_search?pretty=true' -d '{
"query": {
"bool": {
"must": [
{
"has_parent": {
"parent_type": "book",
"query": {
"match_all": {}
}
}
}
]
}
}
}'
возвращает только пятую (приблизительно) символов.
прохладный. Как я могу это указать? – eran
с использованием параметра маршрутизации по URL. См. Раздел маршрутизации здесь - http://www.elasticsearch.org/guide/reference/api/index_/ – imotov
Спасибо. Могу ли я также указать это в пост-данных? специально для bulk_index, где я хочу указать маршрутизацию для каждого документа? – eran