在 C# 中使用 Elasticsearch 进行多条件查询,需要使用 Elasticsearch.NET 和 Nest 库。以下是一个示例代码,查询条件为两个匹配和一个范围查询:

var settings = new ConnectionSettings(new Uri("http://localhost:9200"))
    .DefaultIndex("my_index");

var client = new ElasticClient(settings);

var response = client.Search<MyDocument>(s => s
    .Query(q => q
        .Bool(b => b
            .Must(m => m
                .Match(t => t.Field(f => f.Field1).Query('value1')),
                m => m
                .Match(t => t.Field(f => f.Field2).Query('value2')),
                m => m
                .Range(r => r.Field(f => f.Field3).GreaterThan(10).LessThan(20))
            )
        )
    )
);

在上面的代码中,我们首先创建了一个 ConnectionSettings 对象,指定了 Elasticsearch 的地址和默认索引。然后我们创建了一个 ElasticClient 对象,并使用 Search 方法查询索引。

在查询中,我们使用了 Bool 查询,它可以包含多个子查询。我们使用了三个子查询,分别为两个 Match 查询和一个 Range 查询。Match 查询用于匹配指定字段的值,Range 查询用于查询指定字段在指定范围内的文档。

此外,我们还指定了要查询的 MyDocument 类型。这将使 Elasticsearch 将查询结果转换为 MyDocument 对象的列表。

C# Elasticsearch 多条件查询示例:使用 Nest 库

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

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