Elasticsearch DSL查询.Net NEST

时间:2017-03-17 11:12:58

标签: elasticsearch nest elasticsearch-dsl

我正在尝试将以下弹性搜索DSL转换为NEST查询,我使用的是弹性搜索的5.2版本

GET articles/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "multi_match": {
            "query": "FIY",
            "fields": [
              "title"
            ]
          }
        },
        {
          "nested": {
            "path": "tags",
            "query": {
              "terms": {
                "tags.tagName": [
                  "competition"
                ]
              }
            }
          }
        }
      ]
    }
  }
}

到目前为止,我已经得到了以下内容,我知道过滤器部分不应该在那里,但我似乎无法在没有它的情况下添加嵌套部分

var result = client.Search<Article>(x => x
                .Query(q => q
                    .Bool(b => b
                        .Must(m => m 
                            .MultiMatch(mp => mp
                                .Query(query)
                                    .Fields(f => f
                                        .Fields(f1 => f1.Title, f2 => f2.Content, f3 => f3.Tags))))

                        .Filter(f => f
                            .Nested(n => n
                                .Path("tags")
                                .Query(q1 => q1
                                    .Terms(t1 => t1.Field(f2 => f2.Tags).Terms(tags))
                                         ))))));

1 个答案:

答案 0 :(得分:2)

您不需要使用Filter.Just将Nested添加到Must Query

(public_path("images\") . $filename);