Elasticsearchで子ドキュメントのインデックスを次のように作成しました。
{
_parent: chow-demo
_index: prototype_2013.01.02
_type: chow-clfg
_id: l7jvEgD-SrG-Ws_9ab52IA
_score: 11.600378
_source: {
chow-clfg: {
@type: chow-clfg
clfg: Cg5iUlAvU9IIAAAA8Rg
@timestamp: 2013-01-02T10:15:00.000Z
count: 1
}
}
}
親には、次のように共通識別子としてclfgを持つレコードが少なくとも2つあります。
{
_index: "prototype_2013.01.02",
_type: chow-demo,
clfg: Cg5iUlAvU9IIAAAA8Rg,
obid: 97066795
}
ただし、「has_child」クエリを使用してクエリを実行すると、結果が得られません。
curl -XGET "localhost:9200:/prototype_2013.01.02/chow-demo/_search"
{
"query": {
"has_child": {
"type": "chow-clfg",
"query": {
"term": {
"clfg": "Cg5iUlAvU9IIAAAA8Rg"
}
}
}
}
}
ただし、ドキュメントを個別にクエリすると、正しい結果が返されました。どうしてこんなことに?親ルーティングは、親フィールドを使用して子を使用して結果を識別できるようになっているのではないですか?