C# Elasticsearch 多条件查询示例:使用 Nest 库
在 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 对象的列表。
原文地址: https://www.cveoy.top/t/topic/nf6y 著作权归作者所有。请勿转载和采集!