【问题标题】:adding filters into the search query in elasticsearch using NEST client使用 NEST 客户端在 elasticsearch 中的搜索查询中添加过滤器
【发布时间】:2016-02-23 19:04:13
【问题描述】:

这是我对过滤器查询的获取请求

GET  demosearch/_search
{
   "query": {
       "filtered": {
          "query": {
          "match_phrase": {
             "material": "shirt"
          }
          },
          "filter": {
              "term": {
                 "colorId":"31"
              }
          }
       } 
   }
}

现在我需要使用嵌套客户端在 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)))));

请帮助我提前谢谢!

【问题讨论】:

    标签: c# elasticsearch nest


    【解决方案1】:

    使用MatchPhrase方法

    .Query(q => 
        q.MatchPhrase(m =>
            m.OnField(f => f.Material)
                .Lenient()
                .Query("shirt"))  
        && q.Term(t => t.ColorId, 31)));
    

    此外,您可以使用QueryRaw 方法将查询作为字符串运行

    QueryRaw(queryString);
    

    【讨论】:

    • 现在如果我想实现多个过滤器@Valentin 如何实现?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    • 2021-08-27
    相关资源
    最近更新 更多