私は、Meetings と MeetingAttendees の 2 つのテーブルを Elasticsearch にインデックス付けしました。1 対多の関係 - 会議には多くの出席者がいる場合があります。
ミーティング
ID: 1
ID: 2
会議出席者
MeetingAttendeeID: 1
MeetingID: 1
名前: "tom"
MeetingAttendeeID: 2
MeetingID: 1
名前: "david"
MeetingAttendeeID: 3
MeetingID: 2
名前: "david"
このような関係を作成しようとしましたが、ES に違いは見られません
client.CreateIndex(ci => ci.Index("testmappingindex")
.AddMapping<Meeting>(m => m.MapFromAttributes())
.AddMapping<MeetingAttendee>(m => m.MapFromAttributes().SetParent<Meeting>()));
次のようにクエリできるようにしたいと思います。
result = client.Search<Meeting>(s => s
.Type("Meeting")
.From(0)
.Size(10)
.Query(q => q.MeetingAttendees(ma => ma.Terms(t => t.Name == "david")))
)
).Documents.ToList();
ただし、マッピングは機能していません。fiddler でリクエストが送信されている様子は見られません。また、このクエリが David を出席者とする会議を返すことが機能したかどうかもわかりません。