elasticsearch NEST获取嵌套文档

时间:2018-05-24 08:48:16

标签: c# elasticsearch elasticsearch-net

情况就是这样。我有弹性的一组。这些组中的每一个都有一个嵌套的项目列表。 组和项都有一个名为serial的属性,它们是唯一的。 我得到了该组的序列号和一个项目的序列号,并且我应该返回这两个项目。

目前我正在采取以下方式:

public item findItem(string groupSerial, string itemSerial)
    {
        var searchResponse = _elasticClient.Search<Group>(s => s
            .Index(_config.groupIndexName)
            .Query(q => q
                .ConstantScore(cs => cs
                    .Filter(f => f
                        .Term(t => t
                            .Field(fi => fi.serial)
                            .Value(groupSerial)
                        )
                    )
                )
            ).Query(q => q
                .Nested(c => c
                    .InnerHits(i => i.Explain())
                    .Path(p => p.items)
                    .Query(nq => nq.Term(t => t
                        .Field(field => field.items.First().serial)
                        .Value(itemSerial)))))
        );

        var result = searchResponse.Documents.FirstOrDefault();

        return result?.items.Find(item => item.serial == itemSerial);
    }

我觉得应该有一种更有效的方式。就像从弹性搜索中直接获取项目一样。有谁知道怎么做?

0 个答案:

没有答案