Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将ElasticSearch多索引查询转换为嵌套查询时出现问题_C#_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nest - Fatal编程技术网 elasticsearch,nest,C#,elasticsearch,Nest" /> elasticsearch,nest,C#,elasticsearch,Nest" />

C# 将ElasticSearch多索引查询转换为嵌套查询时出现问题

C# 将ElasticSearch多索引查询转换为嵌套查询时出现问题,c#,elasticsearch,nest,C#,elasticsearch,Nest,从某种意义上说,下面的查询返回我正在查找的结果,但是当我将其转换为嵌套查询时,我总是收到0个结果。我哪里做错了 GET /event,meeting,executive,list,call/_search { "query": { "filtered": { "query": { "bool": { "should": [ { "match": { "n

从某种意义上说,下面的查询返回我正在查找的结果,但是当我将其转换为嵌套查询时,我总是收到0个结果。我哪里做错了

GET /event,meeting,executive,list,call/_search
{
  "query": {
    "filtered": {
      "query": {
        "bool": {
          "should": [
            {
              "match": {
                "name": "sample query"
              }
            },
            {
              "match": {
                "agenda": "sample query"
              }
            }
          ]
        }
      },
      "filter": {
        "query": {
          "match": {
            "symbol": "SAMPLESYMBOL"
          }
        }
      }
    }
  }
}
这是我使用的嵌套搜索描述符,它总是返回0个结果

return arg.Indices(new[] { "event", "meeting", "executive", "list", "call" })
    .Size(size)
    .Filter(f => f.Query(qu => qu.Match(m => m.OnField("symbol").Query("SAMPLESYMBOL"))))
    .Query(q => q
        .Bool(b => b
            .Should(
                s => s.Match(m => m.Query(query).OnField("name")),
                s => s.Match(m => m.Query(query).OnField("agenda")))));

从某种意义上讲,有效的查询是一个查询,而在嵌套中,除了过滤器之外,您还执行一个查询。这可能就是问题所在

尝试此操作,它将生成与您正在运行的查询在某种意义上等价的JSON:

.Indices(new[] { "event", "meeting", "executive", "list", "call" })
.Size(size)
.Query(q => q
  .Filtered(f => f
    .Query(qq => qq
      .Bool(b => b
        .Should(s => s.Match(m => m.OnField("name").Query(query)))
        .Should(s => s.Match(m => m.OnField("agenda").Query(query)))
      )
    )
    .Filter(ff => ff
      .Query(qf => qf
        .Match(m => m.OnField("symbol").Query("SAMPLESYMBOL"))
      )
    )
  )
);