Çocuk-ebeveynden 3 seviyeyi (veya daha fazlasını) indekslemeliyim. Örneğin, seviyeler bir yazar, bir kitap ve bu kitaptaki karakterler olabilir. Ancak, iki düzeyden fazla indekslenirken, has_child ve has_parent sorguları ve filtreleriyle ilgili bir sorun var demektir. 5 tane kırıcıma sahip olursam, en düşük düzeyde (karakter) bir "has_parent" sorgusu çalıştırırken sonuçların beşte birini veya ikinci düzeydeki (kitaplar) bir has_child sorgusunu alırım.Elasticsearch deeper level Ebeveyn-çocuk ilişkileri (torun)
Tahminimce bir kitap, ebeveyn kimliğiyle bir parçaya endekslenir ve böylece ebeveyniyle (yazar) birlikte bulunur, ancak bir karakter, kitap kimliğinin karmasına dayalı olarak bir dizgeye endekslenir. zorunlu olarak kitap endeksli gerçek ile uyumlu değildir. Bu, aynı yazarın tüm kitaplarının mutlaka aynı parçada yer alması anlamına gelmediği anlamına gelir (tüm çocuk-ebeveyn avantajını sakatlamak gibi).
Yanlış bir şey yapıyorum? Örneğin, "yazarların kadın karakterleri olan kitapları yazdığı" gibi karmaşık sorgular için gerçekten ihtiyacım olduğu için bunu nasıl çözebilirim?
deli de, sorunu gösteren bir özü:"author" : {
"properties" : {
"name" : {
"type" : "string"
}
}
},
"book" : {
"_parent" : {
"type" : "author"
},
"properties" : {
"title" : {
"type" : "string"
}
}
},
"character" : {
"_parent" : {
"type" : "book"
},
"properties" : {
"name" : {
"type" : "string"
}
}
}
ve 5 kırıkları endeksi, ben "sorguları yapamaz: Ben bir eşleme varsa o, https://gist.github.com/eranid/5299628
Alt çizgidir has_child" ve "has_parent"
sorgusu:
curl -XPOST 'http://localhost:9200/index1/character/_search?pretty=true' -d '{
"query": {
"bool": {
"must": [
{
"has_parent": {
"parent_type": "book",
"query": {
"match_all": {}
}
}
}
]
}
}
}'
, karakterlerin yalnızca beşte birini (yaklaşık) döndürür.
cool. Bunu nasıl belirleyebilirim? URL'de yönlendirme parametresini kullanarak – eran
. Yönlendirme bölümünü buradan görebilirsiniz - http://www.elasticsearch.org/guide/reference/api/index_/ – imotov
Teşekkürler. Bunu bir şekilde veri sonrası bir şekilde de belirleyebilir miyim? Özellikle her bir doküman için yönlendirme belirtmek istediğim bulk_index için? – eran