Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.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# 使用Mpdreamz/NEST循环elasticsearch queryresult_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# 使用Mpdreamz/NEST循环elasticsearch queryresult

C# 使用Mpdreamz/NEST循环elasticsearch queryresult,c#,elasticsearch,nest,C#,elasticsearch,Nest,Iam使用Mpdreamz/NEST作为.net客户端搜索elasticsearch 我使用result.Hits.Total获取搜索结果的结果计数。但我想知道如何从结果中显示字段的值。查看NEST源代码,您似乎可以执行以下操作: foreach (var item in result.Documents.ToList()) { string msg = "Name: " + item.Name + " | Value: " + item.Text; alert(msg); }

Iam使用Mpdreamz/NEST作为.net客户端搜索elasticsearch


我使用
result.Hits.Total
获取搜索结果的结果计数。但我想知道如何从结果中显示字段的值。

查看NEST源代码,您似乎可以执行以下操作:

foreach (var item in result.Documents.ToList())
{
    string msg = "Name: " + item.Name + " | Value: " + item.Text;
    alert(msg);
}

var result=client.Search(..)

将返回一个类型为
IEnumerable
Documents
属性的
QueryResult
。您可以这样循环:

foreach(var d in result.Documents)
{
    Console.WriteLine(d.title);
}
此处的大小写问题
d.Title
将导致RuntimeBinderException。除非您的elasticsearch字段实际上与您的标题完全匹配`

您还可以映射到POCO的

public class MyResult
{
    public string Title { get; set; }
}


var result=client.Search(..)

现在,
Documents
是一个
IEnumerable
,它将为您提供编译时保证属性存在

除非处理用户输入,否则不应访问
.Fields[“field”]


result.Total
也优于
result.Hits.Total

谢谢您的快速回复。。我试过了,但我想显示结果中单个字段的值,比如“title”。var result=client.Search(s=>s.Index(“algotest”)….MatchAll());这是我的搜索查询。异常:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:无法在System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](调用站点,T0 arg0,T1 arg1)的CallSite.Target(闭包,调用站点,对象,字符串)上对空引用执行运行时绑定使用字符串Title=res.Fields[“Title”]时出现此异常;似乎
res
对象是
null
。你能提供你的应用程序的更多代码吗?在第二个循环中也得到了同样的异常:(我的标题显示代码附在gist中,请检查。还有一件事,搜索结果返回了总共32个点击数,然后res如何变为null!!!是的,它工作:)非常感谢Yannick为你提供的巨大帮助请给出答案