C# Elastic search 根据字段多条件查询
在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/bQwn 著作权归作者所有。请勿转载和采集!