使用 NEST 客户端在 elasticsearch 中的搜索查询中添加过滤器
adding filters into the search query in elasticsearch using NEST client
这是我对过滤器查询的获取请求
GET demosearch/_search
{
"query": {
"filtered": {
"query": {
"match_phrase": {
"material": "shirt"
}
},
"filter": {
"term": {
"colorId":"31"
}
}
}
}
}
现在我需要使用 Nest 客户端在 C# 中编写此查询我已经尝试过类似的方法,但它对我不起作用
var res1=client.Search<nextDocument>(s=>s.Analyzer("automplete")
.From(0).Size(20)
.Query(f=>f.Filtered(c=>c
.Query(v=>v.MatchAll())
.Filter(b=>b.
Term(l=>l.CategoryId)))));
请帮助我提前谢谢!
使用MatchPhrase
方法
.Query(q =>
q.MatchPhrase(m =>
m.OnField(f => f.Material)
.Lenient()
.Query("shirt"))
&& q.Term(t => t.ColorId, 31)));
此外,您可以使用 QueryRaw
方法
运行 作为字符串进行查询
QueryRaw(queryString);
这是我对过滤器查询的获取请求
GET demosearch/_search
{
"query": {
"filtered": {
"query": {
"match_phrase": {
"material": "shirt"
}
},
"filter": {
"term": {
"colorId":"31"
}
}
}
}
}
现在我需要使用 Nest 客户端在 C# 中编写此查询我已经尝试过类似的方法,但它对我不起作用
var res1=client.Search<nextDocument>(s=>s.Analyzer("automplete")
.From(0).Size(20)
.Query(f=>f.Filtered(c=>c
.Query(v=>v.MatchAll())
.Filter(b=>b.
Term(l=>l.CategoryId)))));
请帮助我提前谢谢!
使用MatchPhrase
方法
.Query(q =>
q.MatchPhrase(m =>
m.OnField(f => f.Material)
.Lenient()
.Query("shirt"))
&& q.Term(t => t.ColorId, 31)));
此外,您可以使用 QueryRaw
方法
QueryRaw(queryString);