ElasticSearch NEST查询

Niv*_*ved 5 elasticsearch sense nest elasticsearch-net

我正在尝试使用C#中的NEST模仿我在Sense(chrome插件)中编写的查询.我无法弄清楚这两个查询之间的区别是什么.Sense查询返回记录,而嵌套查询则不返回.查询如下:

var searchResults = client.Search<File>(s => s.Query(q => q.Term(p => p.fileContents, "int")));
Run Code Online (Sandbox Code Playgroud)

{
"query": {
    "term": {
       "fileContents": {
          "value": "int"
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

这两个查询有什么区别?为什么一个人会返回记录而另一个没有?

小智 6

您可以使用以下代码找出NEST使用的查询:

var json = System.Text.Encoding.UTF8.GetString(searchResults.RequestInformation.Request);
Run Code Online (Sandbox Code Playgroud)

然后你可以比较输出.

  • 这对当前版本的NEST不起作用 (2认同)

Adr*_*arr 6

我更喜欢这个稍微简单的版本,我通常只在.NET立即窗口中输入:

searchResults.ConnectionStatus;
Run Code Online (Sandbox Code Playgroud)

除了更短,它还提供了网址,这可能是非常有帮助的.

? searchResults.ConnectionStatus;
{StatusCode: 200, 
    Method: POST, 
    Url: http://localhost:9200/_all/filecontent/_search, 
    Request: {
  "query": {
    "term": {
      "fileContents": {
        "value": "int"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)