当使用Elastic.APM.NetCoreAll进行查询时,Nested()方法用于指定要查询的嵌套字段。例如,如果您有一个名为“nestedField”的嵌套字段,您可以使用以下代码指定它:

var searchResponse = await _elasticClient.SearchAsync<MyDocument>(s => s
    .Query(q => q
        .Nested(n => n
            .Path(p => p.NestedField)
            .Query(qq => qq
                .Match(m => m
                    .Field(f => f.NestedField.First().NestedField2)
                    .Query("search term")
                )
            )
        )
    )
);

在上面的示例中,我们使用了Nested()方法来指定要查询的嵌套字段“NestedField”。然后,我们使用Match()方法来指定要匹配的字段“NestedField2”的搜索词“search term”。

如果您想要匹配一个数组字段与另一个数组字段全匹配,您可以使用以下代码:

var searchResponse = await _elasticClient.SearchAsync<MyDocument>(s => s
    .Query(q => q
        .Nested(n => n
            .Path(p => p.NestedField)
            .Query(qq => qq
                .Bool(b => b
                    .Must(mu => mu
                        .Terms(t => t
                            .Field(f => f.NestedField.First().ArrayField1)
                            .Terms(new[] { "value1", "value2" })
                        ),
                        mu => mu
                        .Terms(t => t
                            .Field(f => f.NestedField.First().ArrayField2)
                            .Terms(new[] { "value3", "value4" })
                        )
                    )
                )
            )
        )
    )
);

在上面的示例中,我们使用了Nested()方法来指定要查询的嵌套字段“NestedField”。然后,我们使用Bool()方法来指定两个Must()子句,每个子句都使用Terms()方法来匹配一个数组字段的多个值。这将返回一个结果,其中“ArrayField1”和“ArrayField2”都匹配给定的值

ElasticAPMNetCoreAll的在查询的时候Nested方法怎么使用?给我个例子要一个数组字段与另外一个数组字段全匹配

原文地址: https://www.cveoy.top/t/topic/dOJ1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录