我使用Mpdreamz / NEST作为.net客户端来搜索elasticsearch。
我使用result.Hits.Total
获取搜索结果的结果计数。但我想知道如何从结果中显示字段的值。
答案 0 :(得分:0)
查看NEST源代码,您似乎可以执行以下操作:
foreach (var item in result.Documents.ToList())
{
string msg = "Name: " + item.Name + " | Value: " + item.Text;
alert(msg);
}
答案 1 :(得分:0)
var result = client.Search(....)
将返回一个QueryResult<dynamic>
Documents
属性IEnumerable<dynamic>
的属性您可以这样循环:
foreach(var d in result.Documents)
{
Console.WriteLine(d.title);
}
这里的重要事项d.Title
将导致RuntimeBinderException。除非你的elasticsearch字段实际上与'Title`
您也可以映射到POCO的
public class MyResult
{
public string Title { get; set; }
}
...
var result = client.Search<MyResult>(....)
现在Documents
是IEnumerable<MyResult>
,它将为您提供编译时保证属性存在。
除非您正在处理用户输入,否则您不必访问.Fields["field"]
。
result.Total
也优先于result.Hits.Total