首页 > 解决方案 > 加载父母和孩子

问题描述

再会:

我正在尝试一次性完成加载父母和孩子。我的查询是这样的:

  ISearchResponse<Models.Facilities.Facility> response = await this._elasticClient.SearchAsync<Models.Facilities.Facility>(s =>
            s.Query(q => (q.GeoDistance(g => g.Boost(1.1)
                                     .Field(f => f.BusinessLocation)
                                     .DistanceType(GeoDistanceType.Arc)
                                     .Distance(search.location.distance.ToString() + "m")
                                     .Location((double)search.location.latitude, (double)search.location.longitude)
                       )
                       &&
                       q.HasChild<Models.Facilities.FacilityType>(c => c.Query(qq => qq.MatchAll()).Name("FacilityType")))
                       || 
                       q.GeoDistance(g => g.Boost(1.1)
                            .Field(f => f.ServiceAreas)
                            .DistanceType(GeoDistanceType.Arc)
                             .Distance(search.location.distance.ToString() + "m")
                            .Location((double)search.location.latitude, (double)search.location.longitude))

             )


            .Aggregations(a =>
                         a.Children<Models.Facilities.FacilityType>("Capacity", child => child.Aggregations(ca => ca.Histogram("Capacity",
                             h => h.Field(p => p.Capacity)
                                   .Interval(10)
                                   .Missing(0))))
                         .Histogram("Distance", d => d.Field(f => f.BusinessLocation)
                                                       .Interval(10)
                                                       .Order(HistogramOrder.CountDescending)))
              .Sort(g => g.GeoDistance(g => g.Field(f => f.BusinessLocation)
              .DistanceType(GeoDistanceType.Arc)
              .Order(SortOrder.Descending)
              .Unit(DistanceUnit.Miles)).GeoDistance(g => g.Field(f => f.ServiceAreas)
                .DistanceType(GeoDistanceType.Arc)
                .Order(SortOrder.Descending))));

FacilityFacilityType从父Document扩展。我正在尝试加载 parentFacility及其 children FacilityType。本质上,如果我能实现这样的目标facilityObj.facilityTypes。让我知道这是否可能。

标签: elasticsearchnest

解决方案


InnerHits 适用于嵌套关系和父/子关系。


推荐阅读