0

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"
    }
   }
  }
 }
}

ただし、ドキュメントを個別にクエリすると、正しい結果が返されました。どうしてこんなことに?親ルーティングは、親フィールドを使用して子を使用して結果を識別できるようになっているのではないですか?

4

1 に答える 1

0

子にインデックスを付ける場合、その「_parent」フィールドには親のIDが含まれている必要があります(あなたの場合のように親のタイプではありません)。

于 2013-01-02T11:16:05.630 に答える