在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# Elastic search 根据字段多条件查询

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

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